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 | 成本高且噪声大 |
| 不打印检索分数 | 无法调试为什么答错 |
| 检索和回答混在一起 | 无法单独替换向量库 |