daily_stock_analysis 接入兼容模型 API
最后更新:
这个项目适合每天自动生成股票研究简报。锁定版本允许用一个命名渠道分别配置 Base URL、Key、模型列表与 OpenAI 协议;项目自身调用已得到非空回复,但这不等于行情、新闻、通知和报告事实都已验收。
结论:先跑一只股票,再开启每日自动任务
每日自动股票分析、报告与通知。它的优势不是替你判断买卖,而是把定时触发、数据获取、模型分析、报告保存和通知串成一条可重复流程。 当前 verified 只覆盖项目正式 LiteLLM 渠道通过兼容端点返回非空内容。完整 Web 界面、所有市场数据源与通知渠道没有在本轮一起运行,所以第一次配置应锁定一只股票和一个历史日期,逐层检查证据。
官方界面展示任务状态和报告入口
截图来自项目锁定 commit 的官方文档。界面能帮助排查任务是否启动、是否完成以及报告在哪里,但页面显示“完成”仍不代表报告中的每个数字都能追溯到原始数据。

四条链路必须分别验收
模型链负责总结与推理;行情和新闻链提供事实;任务链负责定时与重试;通知链只负责交付结果。把它们拆开,才能避免“消息发出来了”被误认为分析正确。
配置自定义 LiteLLM 渠道
项目按 `LLM_CHANNELS` 加载命名渠道。`my_proxy` 只是本地配置名,不是模型厂商;模型 ID 要从当前模型目录复制,Base URL 保留 `/v1`。
LLM_CHANNELS=my_proxy
LLM_MY_PROXY_BASE_URL=https://api.kkaiapi.com/v1
LLM_MY_PROXY_API_KEY=sk-your-key
LLM_MY_PROXY_MODELS=从模型页复制模型ID
LLM_MY_PROXY_PROTOCOL=openai
LITELLM_MODEL=openai/从模型页复制模型ID启动前先做最小模型预检
预检只回答 Key、端点和模型 ID 是否能工作。通过后再启动项目,若项目失败就重点检查环境变量命名和配置加载,不要立刻更换数据源。
curl -sS https://api.kkaiapi.com/v1/chat/completions -H "Authorization: Bearer $LLM_MY_PROXY_API_KEY" -H "Content-Type: application/json" -d '{
"model": "从模型页复制模型ID",
"messages": [{"role": "user", "content": "只回复 ok"}],
"max_tokens": 8
}'证据状态与验收范围
模型渠道返回内容,只能证明模型入口可用。Web、行情、新闻、定时和通知仍是独立链路,需要各自留下运行证据。
| 检查对象 | 当前证据 | 不能推出的结论 |
|---|---|---|
| LiteLLM 命名渠道 | 项目自身非空回复 | 不能证明报告事实正确 |
| FastAPI / Web 界面 | 官方截图与源码入口 | 本轮未完整启动 |
| 行情、新闻、搜索 | 项目声明独立依赖 | 未验证全部市场覆盖 |
| 定时与通知 | 正式配置存在 | 未证明每次投递都成功 |
A 股报告要检查时点而不只看文本
行情、新闻、搜索和通知渠道。历史复跑时保存查询截止时间、行情交易日、公告发布时间和新闻发布时间;复权规则、停牌、涨跌停与退市样本也要明确。 如果搜索或行情工具返回空值,报告应暴露缺口。模型基于常识补出的公司事件,即使文字通顺,也不能进入可追溯研究结果。
成本、重试与每日运行边界
一次任务成本 = 输入 token × 输入单价 + 输出 token × 输出单价 + 缓存读写费用 + 外部数据费用。模型价格和实际 token 只从当前模型目录与控制台调用日志读取,不在文章里复制一份会过时的数字。 先用一只股票测出平均调用次数和 token,再扩大清单。401 检查 Key;404 检查模型 ID 与 /v1;429 降低并发并按服务端时间重试;数据超时与模型超时分开记录。定时器重跑必须复用任务 ID,避免同一日期重复生成和重复扣费。
| 现象 | 定位层 | 处理 |
|---|---|---|
| 模型预检失败 | 模型渠道 | 检查 Base URL、Key、模型 ID |
| 预检成功但项目失败 | 配置加载 | 检查命名渠道变量与进程环境 |
| 报告无行情数字 | 数据渠道 | 停止报告并保留空值证据 |
| 同日收到多份报告 | 调度与幂等 | 按标的和交易日去重任务 |
常见问题
daily_stock_analysis 已完整验证了吗?
没有。项目自身的 LiteLLM 模型渠道已获得非空回复;Web、全部数据源、定时任务和通知没有一起验收。
Base URL 应该填到哪里?
填在命名渠道的 LLM_MY_PROXY_BASE_URL,值为 https://api.kkaiapi.com/v1。
为什么 LITELLM_MODEL 前面有 openai/?
这是 LiteLLM 的 provider 前缀,用于走 OpenAI 兼容协议;后面的模型 ID 仍以当前模型页为准。
自动报告能直接当作交易信号吗?
不能。它是研究简报,需要核对行情时点、来源、数据缺失和模型推断。
如何避免每天重复扣费?
用标的、交易日和任务类型构造幂等键,重试复用同一个任务记录,并在通知前检查已有成功结果。