diff --git a/README.md b/README.md
index 9766035..66c0c66 100644
--- a/README.md
+++ b/README.md
@@ -273,7 +273,7 @@ $ python server/llm_api_launch.py
该方式支持启动多个worker,示例启动方式:
```shell
-$ python server/llm_api_launch.py --model-path-addresss model1@host1@port1 model2@host2@port2
+$ python server/llm_api_launch.py --model-path-address model1@host1@port1 model2@host2@port2
```
如果出现server端口占用情况,需手动指定server端口,并同步修改model_config.py下对应模型的base_api_url为指定端口:
@@ -486,6 +486,6 @@ bash shutdown_all.sh
## 项目交流群
-
+
🎉 langchain-ChatGLM 项目微信交流群,如果你也对本项目感兴趣,欢迎加入群聊参与讨论交流。
diff --git a/img/qr_code_53.jpg b/img/qr_code_53.jpg
new file mode 100644
index 0000000..3174ccc
Binary files /dev/null and b/img/qr_code_53.jpg differ
diff --git a/server/knowledge_base/utils.py b/server/knowledge_base/utils.py
index 3ab6560..4f0bad9 100644
--- a/server/knowledge_base/utils.py
+++ b/server/knowledge_base/utils.py
@@ -69,7 +69,7 @@ class KnowledgeFile:
):
self.kb_name = knowledge_base_name
self.filename = filename
- self.ext = os.path.splitext(filename)[-1]
+ self.ext = os.path.splitext(filename)[-1].lower()
if self.ext not in SUPPORTED_EXTS:
raise ValueError(f"暂未支持的文件格式 {self.ext}")
self.filepath = get_file_path(knowledge_base_name, filename)
diff --git a/webui_allinone.py b/webui_allinone.py
index 2992ae5..cea6895 100644
--- a/webui_allinone.py
+++ b/webui_allinone.py
@@ -20,50 +20,51 @@ from webui_pages.utils import *
from streamlit_option_menu import option_menu
from webui_pages import *
import os
-from server.llm_api_launch import string_args,launch_all,controller_args,worker_args,server_args,LOG_PATH
+from server.llm_api_launch import string_args, launch_all, controller_args, worker_args, server_args, LOG_PATH
from server.api_allinone import parser, api_args
import subprocess
-parser.add_argument("--use-remote-api",action="store_true")
-parser.add_argument("--nohup",action="store_true")
-parser.add_argument("--server.port",type=int,default=8501)
-parser.add_argument("--theme.base",type=str,default='"light"')
-parser.add_argument("--theme.primaryColor",type=str,default='"#165dff"')
-parser.add_argument("--theme.secondaryBackgroundColor",type=str,default='"#f5f5f5"')
-parser.add_argument("--theme.textColor",type=str,default='"#000000"')
-web_args = ["server.port","theme.base","theme.primaryColor","theme.secondaryBackgroundColor","theme.textColor"]
+parser.add_argument("--use-remote-api", action="store_true")
+parser.add_argument("--nohup", action="store_true")
+parser.add_argument("--server.port", type=int, default=8501)
+parser.add_argument("--theme.base", type=str, default='"light"')
+parser.add_argument("--theme.primaryColor", type=str, default='"#165dff"')
+parser.add_argument("--theme.secondaryBackgroundColor", type=str, default='"#f5f5f5"')
+parser.add_argument("--theme.textColor", type=str, default='"#000000"')
+web_args = ["server.port", "theme.base", "theme.primaryColor", "theme.secondaryBackgroundColor", "theme.textColor"]
-def launch_api(args,args_list=api_args,log_name=None):
+def launch_api(args, args_list=api_args, log_name=None):
print("Launching api ...")
print("启动API服务...")
if not log_name:
log_name = f"{LOG_PATH}api_{args.api_host}_{args.api_port}"
print(f"logs on api are written in {log_name}")
print(f"API日志位于{log_name}下,如启动异常请查看日志")
- args_str = string_args(args,args_list)
+ args_str = string_args(args, args_list)
api_sh = "python server/{script} {args_str} >{log_name}.log 2>&1 &".format(
- script="api.py",args_str=args_str,log_name=log_name)
+ script="api.py", args_str=args_str, log_name=log_name)
subprocess.run(api_sh, shell=True, check=True)
print("launch api done!")
print("启动API服务完毕.")
-def launch_webui(args,args_list=web_args,log_name=None):
+
+def launch_webui(args, args_list=web_args, log_name=None):
print("Launching webui...")
print("启动webui服务...")
if not log_name:
log_name = f"{LOG_PATH}webui"
- args_str = string_args(args,args_list)
+ args_str = string_args(args, args_list)
if args.nohup:
print(f"logs on api are written in {log_name}")
print(f"webui服务日志位于{log_name}下,如启动异常请查看日志")
webui_sh = "streamlit run webui.py {args_str} >{log_name}.log 2>&1 &".format(
- args_str=args_str,log_name=log_name)
+ args_str=args_str, log_name=log_name)
else:
webui_sh = "streamlit run webui.py {args_str}".format(
- args_str=args_str)
+ args_str=args_str)
subprocess.run(webui_sh, shell=True, check=True)
print("launch webui done!")
print("启动webui服务完毕.")
@@ -74,10 +75,10 @@ if __name__ == "__main__":
print(f"开始启动webui_allinone,启动LLM服务需要约3-10分钟,请耐心等待,如长时间未启动,请到{LOG_PATH}下查看日志...")
args = parser.parse_args()
- print("*"*80)
+ print("*" * 80)
if not args.use_remote_api:
- launch_all(args=args,controller_args=controller_args,worker_args=worker_args,server_args=server_args)
- launch_api(args=args,args_list=api_args)
- launch_webui(args=args,args_list=web_args)
+ launch_all(args=args, controller_args=controller_args, worker_args=worker_args, server_args=server_args)
+ launch_api(args=args, args_list=api_args)
+ launch_webui(args=args, args_list=web_args)
print("Start webui_allinone.py done!")
- print("感谢耐心等待,启动webui_allinone完毕。")
\ No newline at end of file
+ print("感谢耐心等待,启动webui_allinone完毕。")