Skip to content

Demo 05:RAG 检索

目标

用本地关键词重叠模拟 RAG 检索链路:先找资料,再回答。

运行:

bash
npm run demo:05

这一章解决什么问题

RAG 的重点不是 embedding 本身,而是“只把相关上下文给模型”。教学版先用简单评分函数理解链路。

mermaid
flowchart TD
  D[课程资料] --> C[切分片段]
  Q[用户问题] --> S[计算重叠分数]
  C --> S
  S --> K[Top K 片段]
  K --> A[生成回答]

关键代码

ts
const chunks = chunkDocuments(courseMaterials)
const hits = retrieve(chunks, 'Mastra Agent 工具调用', 3)

你应该观察

输出里会显示每个命中片段的:

  • 标题。
  • 分数。
  • 摘要。

这可以帮助你判断检索是否真的把相关资料排在前面。

给 AI 的提示词

text
请写一个教学版 RAG 检索 Demo:
- 输入是本地 courseMaterials。
- 先按段落切 chunk。
- 查询时按关键词重叠计算 score。
- 返回 topK。
- 输出每个 chunk 的 title、score、excerpt。
- 标注这不是生产级向量检索。

常见错误

错误说明
把所有文档塞进 prompt成本高且噪声大
不打印检索分数无法调试为什么答错
检索和回答混在一起无法单独替换向量库