You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OpenAI官方Python库调用Chat Completions API时大响应截断问题求助

解决思路
  • 调高max_tokens参数:你的代码中设置了max_tokens=512,这直接限制了模型输出的最大token数,当生成内容需要超过512个token时就会被截断。根据需求将该值调高,比如设置为2048,注意不要超过所用GPT-4模型的总token上限(基础版GPT-4为8192,GPT-4-32k为32768)。
  • 修复chunk处理逻辑:原代码中直接使用try-except pass忽略所有异常,且未检查delta.content是否存在——部分流式响应的chunk可能没有content字段(比如响应结束的标记chunk),直接拼接会引发异常导致后续内容丢失。修改为仅当content存在时才进行拼接,并移除宽泛的异常捕获,必要时针对性处理异常。
  • 检查总token占用:确保输入消息(system+user内容)的token数加上设置的max_tokens不超过模型的总token限制,若输入本身占用大量token,需适当减少输入内容或选择更大token上限的模型版本。

修改后的代码示例

response = client.chat.completions.create(
    model="gpt-4",
    messages=[
        {
            "role": "system",
            "content": "You will be provided with some instructions for logic to implement in windows Batch"
                       "Please make it machine readable without explanations"
        },
        {
            "role": "user",
            "content": f'instructions: {instructions}'
        }
    ],
    temperature=0,
    max_tokens=2048,
    top_p=1,
    stream=True
)
command = ''
for chunk in response:
    content = chunk.choices[0].delta.content
    if content:
        command += content
print(command)

内容的提问来源于stack exchange,提问作者Matan Dobrushin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 19:23:22