-
Notifications
You must be signed in to change notification settings - Fork 163
10_Tech_LLM_RAG_Integration
youngcan edited this page Jun 1, 2026
·
3 revisions
系统使用大模型做研判,但不是把原始 K 线数据直接丢给模型。本篇解释为什么,以及 AI 在系统中的三种使用方式。
| 英文术语 | 中文释义 |
|---|---|
| AI | 人工智能,这里主要指大语言模型做语义研判 |
| LLM | 大语言模型,如 Gemini、Claude、OpenAI 兼容模型 |
| Token | 令牌,模型上下文长度和计费的基本单位 |
| Prompt | 提示词,发给模型的任务说明和约束 |
| RAG | 检索增强生成,这里主要用于检索新闻做防雷 |
| Veto | 否决,命中重大负面信息后拦截候选股 |
| Compliance | 合规,限制公开输出里不能出现不合规交易建议 |
量化漏斗(硬过滤)→ 结构化特征切片(喂给 AI)→ AI 研判 → 风控执行
AI 不直接看原始数据,也不直接下单。它夹在"已经过滤好的候选"和"最终风控执行"中间,只负责语义判断。
把几百天的 OHLCV 表格直接丢给模型会有三个问题:
- 浪费 Token(令牌) — 大量无关数据占用上下文
- 数值推理不稳定 — 模型对数字的计算能力有限
- 信号被噪音淹没 — 关键转折点埋在冗长数据里
实际做法是先提取"特征切片":
- 趋势摘要(均线关系、位阶、关键偏离)
- 异动片段(放量、缩量、关键突破 / 回踩)
- 必要上下文(行业状态、大盘水温、风控提示)
- 入口:
core/batch_report.py - 输入:Step2 候选股 + 结构化特征切片
- 输出:三阵营分类(逻辑破产 / 储备营地 / 起跳板)
- 附产物:合规版市场观察简报(脱敏统计,不含个股代码)
- CLI(命令行)/ MCP(模型上下文协议)实现:
agents/chat_tools.py的analyze_stock - Web(网页端)实现:
web/apps/web/src/lib/chat-tools.ts的execAnalyzeStock - 核心诊断:
core/holding_diagnostic.py+core/wyckoff_engine.py - Prompt(提示词):
core/prompts.py - 用途:用户指定一只股票,做深度威科夫结构分析
- 用途:围绕持仓、行情、信号做多轮对话
- Agent 自主决定调用哪些工具、调用多少次
- 工具层定义在
agents/chat_tools.py
RAG(检索增强生成)的作用不是替代模型,而是补充模型没有的实时信息。
流程:
- 对候选股检索近期新闻
- 匹配高风险关键词(立案、财务造假、债务违约、退市风险等)
- 命中 → 一票否决这只候选股
实现位于 integrations/rag_veto.py。当前默认通过 akshare 拉取东方财富个股新闻,并支持可选的 semantic veto(语义否决)配置。即使新闻检索或语义判定失败,系统也会记录错误并跳过该候选的防雷拦截,不会阻断整条研报流水线。
面向公开群发场景,与主研报分离:
- 只使用脱敏统计:大盘水温、广度、量能、行业聚集、触发形态数量
- 不包含任何个股代码、名称或"买入/卖出"等交易动作词
- 输出前做确定性校验,拦截违规内容
- 模型不可用时降级为本地模板
实现位于 core/compliance_report.py。
| AI 负责 | AI 不负责 |
|---|---|
| 语义研判和文本建议 | 资金管理和下单执行 |
| 结构化数据的解读 | 原始数据的计算 |
| 候选股的分类评审 | 实盘风险控制 |
一句话:AI 建议 ≠ 自动下单。执行权永远在风控引擎(Step4)。