bug(acp): 在重复 finish_reason=length 响应后报告 end_turn(0.24.0)
发生了什么事?
使用官方npm包QQQwen-code/[email protected]',一个直接的"Qwen-acp"客户端得到"Stop Reason:"end turn",即使模型的最终响应仍然被其输出-token限制所截断.
如果没有真正的模型服务、证书、IDE或下游Gateway/适应器,这种产品是可以复制的。 本地的 HTTP 固定服务有效 OpenAI 聊天完成 SSE 框架:一个短文本三角形,一个空三角形,上面有 “ 完成” “ 合理性” 和 `[DONE] 。 每一个回收请求都得到相同的长度记录结果。
** Qwen确实试图回收产出。 ** 问题是,在五个模式要求以 " 长度 " 结束所有之后,非加太仍报告正常的回合结束。 同样的结果是,生成Config.max Retries: 0' 和该设置被省去。 正常的停止 ' 控制接受一个模型请求,并正确返回`end-turn'。
- 每一个请求的提供商终端理由 * * * * * * * * * * * * * * * * * * * * * | -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
"停止""停止"""停止""Reason":"结束""结束""结束""结束""结束""结束""结束" 结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束"结束" 结束"结束"结束"结束"结束""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
长度' 0' 5''Stop Reason':end turn'' |
'长度''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
因此,非加太公司消费者无法将这一未解决的产出长度限制与正常完成的回合区分开来,而且可能错误地将部分产出标为已完成。
你想怎样?
当有限度的产出回收没有产生完整的响应,最后提供者的完成理由仍然是长'/MAX TOKENS',返回非加太Stop Reason': " max tokens"(或明确的非成功结果),而不是end turn'。
已经提交的部分案文仍可看到。 如果一项延续实际成功,则通常的 " 结束 " 是适当的。 取消和其他失败结果应当保留自己的语义.
- 复制步骤
使用节点 24并在空目录中安装已发布的软件包 :
嘘 Mkdir Qwen-ac-repro 磁盘 cd Qwen-acc-reprop npm 输入 -y npm 安装 -- save-exact -- ignore-scripts -- no-audit -- no-fund@Qwen-code/[email protected].
将下面的独立脚本保存为`repro.ts',然后运行:
嘘
节点再现./node modules/@Qwen-code/Qwen-code/cli-entry.js.剧本创建了孤立的临时配置和工作空间,开始一个循环回放的合成模型服务器,并直接与Qwen ACP进程交换JSON-RPC. 它只进口节点内置. 没有涉及QwenSDK或应用程序适配器. 它使用假的API密钥,禁用钩/技能/扩展/遥测,拒绝任何许可请求,并删除出站时的临时运行时间目录.
它印出上述三个案件,但未能作出断言,因为收到了 " end-turn " 案,因为 " max-tokens " 案可望结案。 五要数是0.24.0上的观察,不是硬码测试要求.
< 细节> <摘要>单行本复制剧本 </摘要>
//与节点24一起运行:节点重排/绝对/路径/to/Qwen-code/cli-entry.js. . . . . . . .
内容来源: QwenLM/qwen-code