openai_api 返回为空
lesca opened this issue · comments
环境:
- 使用 one-api 调用
openai_api
- 启动命令
uvicorn chatglm_cpp.openai_api:app --host 0.0.0.0 --port 8000
- 版本:
- 当前的main分支
- prebuild docker image 的 main 版本
- 以上版本都有这个问题
问题
1. one-api 渠道中点击测试失败(发送hi),chatglm_cpp 日志如下(返回为空)
2024-01-01 13:39:43,126 - openai_api - INFO - prompt: "hi", sync response: ""
2. 对话一段时间后,返回结果为空
stream response: ""
返回结果为空
完整对话
有问题的地方看:
INFO: Started server process [16848]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)
INFO: 172.24.0.1:57077 - "POST /v1/chat/completions HTTP/1.1" 200 OK
2024-01-01 13:31:46,896 - openai_api - INFO - prompt: "ChatMessage(role="user", content="天空为什么是蓝色的?", tool_calls=[])", stream response: ""
INFO: 172.24.0.1:57421 - "POST /v1/chat/completions HTTP/1.1" 200 OK
2024-01-01 13:35:27,166 - openai_api - INFO - prompt: "ChatMessage(role="user", content="翻译", tool_calls=[])", stream response: ""
INFO: 172.24.0.1:57432 - "POST /v1/chat/completions HTTP/1.1" 200 OK
2024-01-01 13:35:35,241 - openai_api - INFO - prompt: "ChatMessage(role="user", content="你好", tool_calls=[])", stream response: "
你好👋!我是人工智能助手 ChatGLM3-6B,很高兴见到你,欢迎问我任何问题。"
INFO: 172.24.0.1:57447 - "POST /v1/chat/completions HTTP/1.1" 200 OK
2024-01-01 13:35:46,961 - openai_api - INFO - prompt: "ChatMessage(role="user", content="天空为什么蓝色?", tool_calls=[])", stream response: "
天空为什么呈现蓝色,这是一个非常有趣的问题。实际上,天空呈现蓝色的原因与大气中的气体和光线如何相互作用有关。
当太阳的光线穿过大气时,它会遇到大气中的气体分子和其他微小的粒子。光线中包含" ⚠️备注:这里回答了一半就终止了
INFO: 172.24.0.1:57480 - "POST /v1/chat/completions HTTP/1.1" 200 OK
2024-01-01 13:36:01,128 - openai_api - INFO - prompt: "ChatMessage(role="user", content="继续", tool_calls=[])", stream response: ""
⚠️备注:这里返回为空
找到原因了,是maxtoken。openai_api服务端达到maxtoken后就停止回复。(这个在chatglm项目里并不会这样)
问题1:one-api的maxtoken默认为1,所以一测试就停止
问题2:app设定了上限,调整一下就好了