Skip to content

08. PA 知识库与 RAG:让教练有训练体系

上一章练习参考答案

第一题,训练记忆更适合保存提炼后的训练标签和摘要。原始对话可以留审计,但不应该每次都塞进上下文。

第二题,要把用户可删除的数据和系统审计数据分层。面向训练的记忆要支持删除或失效,审计日志则按合规要求保留。

第三题,实时生成更灵活,但成本高且不稳定;离线汇总更便宜也更稳定,但更新有延迟。训练产品通常可以离线汇总,再在关键复盘时实时补充少量上下文。

新问题:教练不能只靠常识

现在系统能看单笔,也能看长期习惯。但用户继续问:

“你说我不该追突破,那到底什么叫有效突破?怎么训练?”

如果教练只靠模型常识,回答很容易泛泛而谈。它可能说“等待确认”“注意风险”,但讲不出你的训练体系。

所以第八章引入 PA 知识库与 RAG。

KnowledgeBase

伴生工程先用一个简单组件模拟检索结果:

java
@Component
public class KnowledgeBase {

    public List<String> retrieveFor(TradeRecord trade) {
        if (trade.entryReason().contains("突破")) {
            return List.of(
                    "突破训练重点:先定义结构位,再等待突破后的回踩或承接。",
                    "失败样本标签:追在突破当根、止损距离被情绪压缩、没有二次确认。"
            );
        }
        return List.of("复盘时先检查计划、风险和执行一致性。");
    }
}

真实 RAG 会换成:

  • 文档切片。
  • 向量检索。
  • 关键词召回。
  • 重排。
  • 引用片段进入提示词。

但业务意义不变:让教练引用你的训练体系,而不是随便发挥。

RAG 不等于越多越好

PA 复盘的知识库要小而准。不要把一堆交易文章、论坛观点、行情新闻全塞进去。

适合进入知识库的是:

  • 你的训练规则。
  • setup 定义。
  • 失败样本标签。
  • 风险管理原则。
  • 复盘模板。

不适合进入知识库的是:

  • 某个博主今天看多还是看空。
  • 未验证的战法故事。
  • 用户的私人交易隐私原文。

本章效果

响应里会出现:

json
{
  "sections": {
    "knowledge": "突破训练重点:先定义结构位,再等待突破后的回踩或承接。失败样本标签:追在突破当根、止损距离被情绪压缩、没有二次确认。"
  }
}

这段不是为了显得懂术语,而是为了把本次问题映射到训练体系。

和 Spring AI Alibaba 怎么接

等你接真实 RAG 时,可以让检索结果作为 Advisor 或工具结果进入 Agent。工程上要注意两点:

第一,检索结果要短。每次只给和本次交易最相关的 3 到 5 条。

第二,报告要区分“事实证据”和“知识建议”。事实来自交易和 K 线,知识来自训练体系。不要混成一团。

这一章真正解决了什么

RAG 解决的是“教练体系化”。

没有知识库,教练只像一个会说话的人。有了知识库,它才像接受过同一套训练方法的教练。

练习题

  1. 哪些 PA 内容适合放进知识库,哪些不适合?
  2. 检索结果应该原文展示给用户,还是只作为模型生成报告的上下文?
  3. 如果检索不到相关知识,系统应该怎么办?

Built with VitePress. Deployed on Cloudflare Pages.