1. 更新allinone脚本提示,增加中文提示;2. 新增服务一键停止脚本shutdown_all.sh;3. 更新readme说明;3. 修复命令行bug
This commit is contained in:
parent
17278922dc
commit
8e00f8305b
|
|
@ -351,7 +351,7 @@ $ streamlit run webui.py --server.port 666
|
|||
|
||||
### 6 一键启动
|
||||
|
||||
**!!!注意,一键启动脚本仅适用于linux和mac设备!!!**
|
||||
**!!!注意,一键启动脚本仅适用于linux和mac设备,且加载需要命令行指定模型,不会读取model_config.py配置!!!**
|
||||
|
||||
#### 6.1 api服务一键启动脚本
|
||||
|
||||
|
|
@ -411,6 +411,12 @@ $ python webui_alline.py --model-path-address model@host@port --num-gpus 2 --gpu
|
|||
|
||||
其他参数详见各脚本及fastchat服务说明。
|
||||
|
||||
上述两个一键启动脚本会后台运行多个服务,如要停止所有服务,可使用shutdown_all.sh脚本:
|
||||
|
||||
```shell
|
||||
bash shutdown_all.sh
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
参见 [常见问题](docs/FAQ.md)。
|
||||
|
|
|
|||
|
|
@ -22,9 +22,7 @@ parser.add_argument("--api-host", type=str, default="0.0.0.0")
|
|||
parser.add_argument("--api-port", type=int, default=7861)
|
||||
parser.add_argument("--ssl_keyfile", type=str)
|
||||
parser.add_argument("--ssl_certfile", type=str)
|
||||
# 初始化消息
|
||||
args = parser.parse_args()
|
||||
args_dict = vars(args)
|
||||
|
||||
|
||||
api_args = ["api-host","api-port","ssl_keyfile","ssl_certfile"]
|
||||
|
||||
|
|
@ -43,6 +41,9 @@ def run_api(host, port, **kwargs):
|
|||
if __name__ == "__main__":
|
||||
print("Luanching api_allinone,it would take a while, please be patient...")
|
||||
print("正在启动api_allinone,LLM服务启动约3-10分钟,请耐心等待...")
|
||||
# 初始化消息
|
||||
args = parser.parse_args()
|
||||
args_dict = vars(args)
|
||||
launch_all(args=args,controller_args=controller_args,worker_args=worker_args,server_args=server_args)
|
||||
run_api(
|
||||
host=args.api_host,
|
||||
|
|
|
|||
|
|
@ -159,17 +159,7 @@ server_args = ["server-host", "server-port", "allow-credentials", "api-keys",
|
|||
"controller-address"
|
||||
]
|
||||
|
||||
args = parser.parse_args()
|
||||
# 必须要加http//:,否则InvalidSchema: No connection adapters were found
|
||||
args = argparse.Namespace(**vars(args),
|
||||
**{"controller-address": f"http://{args.controller_host}:{str(args.controller_port)}"})
|
||||
|
||||
if args.gpus:
|
||||
if len(args.gpus.split(",")) < args.num_gpus:
|
||||
raise ValueError(
|
||||
f"Larger --num-gpus ({args.num_gpus}) than --gpus {args.gpus}!"
|
||||
)
|
||||
os.environ["CUDA_VISIBLE_DEVICES"] = args.gpus
|
||||
|
||||
# 0,controller, model_worker, openai_api_server
|
||||
# 1, 命令行选项
|
||||
|
|
@ -211,13 +201,13 @@ def string_args(args, args_list):
|
|||
return args_str
|
||||
|
||||
|
||||
def launch_worker(item,args=args,worker_args=worker_args):
|
||||
def launch_worker(item,args,worker_args=worker_args):
|
||||
log_name = item.split("/")[-1].split("\\")[-1].replace("-", "_").replace("@", "_").replace(".", "_")
|
||||
# 先分割model-path-address,在传到string_args中分析参数
|
||||
args.model_path, args.worker_host, args.worker_port = item.split("@")
|
||||
args.worker_address = f"http://{args.worker_host}:{args.worker_port}"
|
||||
print("*" * 80)
|
||||
print(f"worker启动视设备不同而不同,约需3-10分钟,如长时间未启动,请到{LOG_PATH}/{log_name}下查看日志")
|
||||
print(f"如长时间未启动,请到{LOG_PATH}{log_name}.log下查看日志")
|
||||
worker_str_args = string_args(args, worker_args)
|
||||
print(worker_str_args)
|
||||
worker_sh = base_launch_sh.format("model_worker", worker_str_args, LOG_PATH, f"worker_{log_name}")
|
||||
|
|
@ -226,7 +216,7 @@ def launch_worker(item,args=args,worker_args=worker_args):
|
|||
subprocess.run(worker_check_sh, shell=True, check=True)
|
||||
|
||||
|
||||
def launch_all(args=args,
|
||||
def launch_all(args,
|
||||
controller_args=controller_args,
|
||||
worker_args=worker_args,
|
||||
server_args=server_args
|
||||
|
|
@ -238,7 +228,7 @@ def launch_all(args=args,
|
|||
controller_check_sh = base_check_sh.format(LOG_PATH, "controller", "controller")
|
||||
subprocess.run(controller_sh, shell=True, check=True)
|
||||
subprocess.run(controller_check_sh, shell=True, check=True)
|
||||
|
||||
print(f"worker启动时间视设备不同而不同,约需3-10分钟,请耐心等待...")
|
||||
if isinstance(args.model_path_address, str):
|
||||
launch_worker(args.model_path_address,args=args,worker_args=worker_args)
|
||||
else:
|
||||
|
|
@ -255,4 +245,15 @@ def launch_all(args=args,
|
|||
print("LLM服务启动完毕。")
|
||||
|
||||
if __name__ == "__main__":
|
||||
launch_all()
|
||||
args = parser.parse_args()
|
||||
# 必须要加http//:,否则InvalidSchema: No connection adapters were found
|
||||
args = argparse.Namespace(**vars(args),
|
||||
**{"controller-address": f"http://{args.controller_host}:{str(args.controller_port)}"})
|
||||
|
||||
if args.gpus:
|
||||
if len(args.gpus.split(",")) < args.num_gpus:
|
||||
raise ValueError(
|
||||
f"Larger --num-gpus ({args.num_gpus}) than --gpus {args.gpus}!"
|
||||
)
|
||||
os.environ["CUDA_VISIBLE_DEVICES"] = args.gpus
|
||||
launch_all(args=args)
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
ps -eo pid,user,cmd|grep -P 'server/api.py|webui.py|fastchat.serve'|grep -v grep|awk '{print $1}'|xargs kill -9
|
||||
|
|
@ -34,14 +34,14 @@ parser.add_argument("--theme.secondaryBackgroundColor",type=str,default='"#f5f5f
|
|||
parser.add_argument("--theme.textColor",type=str,default='"#000000"')
|
||||
web_args = ["server.port","theme.base","theme.primaryColor","theme.secondaryBackgroundColor","theme.textColor"]
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
def launch_api(args=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)
|
||||
api_sh = "python server/{script} {args_str} >{log_name}.log 2>&1 &".format(
|
||||
script="api.py",args_str=args_str,log_name=log_name)
|
||||
|
|
@ -49,14 +49,16 @@ def launch_api(args=args,args_list=api_args,log_name=None):
|
|||
print("launch api done!")
|
||||
print("启动API服务完毕.")
|
||||
|
||||
def launch_webui(args=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"
|
||||
print(f"logs on api are written in {log_name}")
|
||||
|
||||
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)
|
||||
else:
|
||||
|
|
@ -70,6 +72,9 @@ def launch_webui(args=args,args_list=web_args,log_name=None):
|
|||
if __name__ == "__main__":
|
||||
print("Starting webui_allineone.py, it would take a while, please be patient....")
|
||||
print(f"开始启动webui_allinone,启动LLM服务需要约3-10分钟,请耐心等待,如长时间未启动,请到{LOG_PATH}下查看日志...")
|
||||
args = parser.parse_args()
|
||||
|
||||
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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue