切换主题
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 解决的是“教练体系化”。
没有知识库,教练只像一个会说话的人。有了知识库,它才像接受过同一套训练方法的教练。
练习题
- 哪些 PA 内容适合放进知识库,哪些不适合?
- 检索结果应该原文展示给用户,还是只作为模型生成报告的上下文?
- 如果检索不到相关知识,系统应该怎么办?