\n\n翻译结果为:\n\n例行检查\n* 我已确认目前没有类似问题\n* 我已确认我已升级到最新版本\n* 我已完整查看过项目 README,尤其是常见问题部分\n* 我理解并愿意跟进此问题,协助测试和提供反馈\n* 我理解并认可上述内容,并理解项目维护者精力有限,不遵循规则的问题可能会被无视或直接关闭\n\n问题描述\n使用 stream=true 输出时,model_name=chatglm_turbo 无法正常输出,非stream模式可以。\n\n复现步骤\n
import time
from openai import OpenAI
class OneAPIDemo:
@staticmethod
def completion(mode_name, messages=[]):
"""
完成一次对话
:param mode_name:
:param messages:
:return:
"""
completion = client.chat.completions.create(
model=model_name,
messages=messages
)
return completion
@staticmethod
def completion_stream(model_name, message=[]):
"""
流式对话
:param model_name:
:param message:
:return:
"""
completion = client.chat.completions.create(
model=model_name,
messages=message,
stream=True
)
return completion
if __name__ == '__main__':
base_url = ""
api_key = ""
client = OpenAI(api_key=api_key,
base_url=base_url)
model_name = "chatglm_turbo"
messages = [
{"role": "user", "content": "1+1=?"}
]
start_time = time.time()
# 是否流式输出
stream = True
if stream:
completion_text = ""
response = OneAPIDemo.completion_stream(model_name, messages)
for chunk in response:
if chunk.choices[0].finish_reason == "stop":
# 完成
break
chunk_text = chunk.choices[0].delta.content
if chunk_text is not None:
completion_text += chunk_text
print(f"接收到: {chunk_text}")
print(f"回复:{completion_text}\n本次耗时: {time.time() - start_time:.2f}s")
else:
response = OneAPIDemo.completion(model_name, messages)
res_text = response.choices[0].message.content
print(f"回复: {res_text}\n本次耗时: {time.time() - start_time:.2f}s")
\n\n预期结果\n=2
9条答案
按热度按时间jgzswidk1#
我也遇到了这个问题,当进行流式调用时,只有通义千问能够正常工作,其他模型会返回 JSON 结果,而智谱AI则会直接报错。
关联的问题:#861
piah890a2#
zzoitvuj3#
@songquanpeng 是不是因为这个返回的model名和传入的不一样的问题,导致用了openai的python sdk没用?
rlcwz9us4#
@songquanpeng 是不是因为这个返回的model名和传入的不一样的问题,导致用了openai的python sdk没用?
可以用模型名称重定向功能试一下
wgx48brx5#
@songquanpeng 是不是因为这个返回的model名和传入的不一样的问题,导致用了openai的python sdk没用?
可以用模型名称重定向功能试一下
好像不行哎
yr9zkbsy6#
在我使用Python调用通义千问时,使用流式输出也有类似的问题,提示Accept type just supports "text/event-stream"。
dw1jzc5e7#
我的解决方法是注解掉 ./site-packages/openai/_base_client.py:581 行
其内容为:
"Accept": "application/json",
我用的openai包版本为:1.11.0
lokaqttq8#
我的解决方法是注解掉 ./site-packages/openai/_base_client.py:581 行,其内容为:
我用的 openai 包版本为:1.11.0。@xqbumu 可以采用这个方式,不需要修改 openai 包。在请求内加上
extra_headers
参数可以覆盖 OpenAI 包自带的头部信息。slhcrj9b9#
我的解决方法是注解掉 ./site-packages/openai/_base_client.py:581 行,其内容为:
我用的 openai 包版本为:1.11.0。@xqbumu 可以采用这个方式,不需要修改 openai 包。在请求内加上
extra_headers
参数可以覆盖 OpenAI 包自带的头部信息。感谢,此方法有效。