shy3130
0ee3aa8f1f
fix(ai): 分析类调用放开 max_tokens 限制 — 修复推理模型正文 0 字失败
根因(实测钉死): deepseek-v4-pro 等推理模型把思考 token 计入
max_tokens 预算。个股分析真实调用(62KB prompt, max_tokens=4500):
usage completion=4500 全是 reasoning, finish=length, 正文 0 字,
流"正常"结束 → 前端兜底报「分析未返回内容」→ 表现为"经常失败"
(推理长度随机, 逼近 4500 即失败)。与 180s 超时无关(实际 65s 结束)。
改动:
- ai_provider: generate/stream 的 max_tokens 支持 None=不传该参数,
输出上限交给服务端默认; _openai_kwargs None 时省略; codex 提示词
None 时跳过长度约束行
- 四个分析器(个股/复盘/财务/概念轮动)改传 max_tokens=None;
新增空正文守卫: 流结束但 0 个 delta → 明确报错+日志(原先静默,
backend.log 无痕迹无法排查)。策略标题生成(max_tokens=8)等小任务
保持原限制
对照实测(真实 62KB prompt): 不传 → finish=stop, 推理 3311 token
+正文 2407 字, 59s; max_tokens=16000 → 同样成功但推理撒欢 6239
token/93s — 不限制即最优。
验证: 新增 kwargs/codex 单测, ai_provider 21 通过, 相关 174 通过;
线上接口复测: 修复前 0 delta 直接 done, 修复后 1682 delta/2467 字
正常流式; ruff 相对 HEAD 无新增。
2026-08-17 17:47:46 +08:00
..
2026-07-26 12:19:55 +08:00
2026-06-18 17:18:23 +08:00
2026-08-17 17:47:46 +08:00
2026-07-08 18:10:19 +08:00
2026-07-03 14:11:27 +08:00
2026-08-05 17:56:27 +08:00
2026-07-09 17:38:44 +08:00
2026-08-17 17:47:46 +08:00
2026-08-17 12:18:17 +08:00
2026-08-16 23:39:07 +08:00
2026-07-16 14:34:07 +08:00
2026-08-10 17:53:14 +08:00
2026-07-05 22:57:46 +08:00
2026-08-17 17:47:46 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-07-05 22:57:46 +08:00
2026-07-06 17:00:56 +08:00
2026-07-08 18:10:19 +08:00
2026-08-16 23:39:07 +08:00
2026-08-17 16:49:28 +08:00
2026-07-16 14:34:07 +08:00
2026-08-16 23:39:07 +08:00
2026-07-08 18:10:19 +08:00
2026-08-17 17:47:46 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-08-16 23:39:07 +08:00
2026-06-23 21:47:29 +08:00
2026-08-05 17:57:05 +08:00
2026-08-17 16:49:28 +08:00
2026-08-16 23:39:07 +08:00
2026-08-17 16:49:28 +08:00
2026-07-09 13:47:39 +08:00
2026-08-02 19:18:07 +08:00
2026-07-18 23:37:54 +08:00
2026-08-06 19:28:39 +08:00
2026-08-17 17:47:46 +08:00
2026-07-08 18:10:19 +08:00
2026-07-20 13:01:03 +08:00
2026-08-10 17:53:14 +08:00
2026-07-09 13:33:18 +08:00
2026-07-09 16:35:21 +08:00