自言自语会导致胡乱思考

#47
by Guesiz - opened

发现使用deepseek-reasoner并指定messages一条为assistant时再生成回复(也就是自己回复自己时)会导致生成混乱的reasoning内容:首先输出<|begin▁of▁sentence|>然后输出一段随机的代码或者教程

截屏2025-08-21 15.53.10.png

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["OPENAI_API_KEY"], base_url="https://api.deepseek.com"
)

response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=[
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "read http://example.com"},
        {"role": "assistant", "content": "<xxxx>"},
    ],
    stream=True,
)

for chunk in response:
    if chunk.choices and chunk.choices[0].delta:
        delta = chunk.choices[0].delta
        data = getattr(delta, "reasoning_content", None)
        if not data:
            data = delta.content
        print(data, end="", flush=True)

我在写一个Agent,这个agent在调用工具失败的时候会无法生成工具的消息,导致messages列表最后一条是assitant的消息,像上面的例子一样,实测deepseek-r1-0528不会出现这种状况。

然后再叠加上 #42 提到的问题,即使在assistant message后面加上system message也还是会触发这个bug,所以在调用工具失败时最好在后面加上一条role=user的message提示assistant调用失败

Sign up or log in to comment