跳到主要内容

场景: 检索调试

当 RAG 对话未命中预期内容时,通过检索调试接口定位问题。

场景描述

用户反馈"问了但没有答案"或"答案不相关"时,需要逐步排查:文档是否已索引、检索是否命中、重排是否过滤。

调试流程

curl 示例

# 1. 确认文档状态与切块数
curl -s "$BASE_URL/api/v1/documents/$DOCUMENT_ID" \
-H "Authorization: Bearer $TOKEN" | jq '{status, chunks_count}'

# 2. 直接检索测试
curl -s -X POST "$BASE_URL/api/v1/retrieval/search" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"query": "目标关键词",
"dataset_ids": ["'"$DATASET_ID"'"],
"top_k": 10
}' | jq '.results[] | {score, content: .content[:100]}'

# 3. 查看切块列表(如接口支持)
curl -s "$BASE_URL/api/v1/documents/$DOCUMENT_ID/chunks?limit=5" \
-H "Authorization: Bearer $TOKEN" | jq '.items[] | {id, content: .content[:80]}'

调试检查清单

检查项正常标准异常处理
文档状态completed文档卡住排障
切块数量> 0检查 pipeline 配置
检索结果有相关片段检查 embedding 模型与索引
检索分数合理阈值以上调整 top_k 或分数阈值

预期结果

步骤预期
检索测试返回与查询相关的文档片段及相似度分数
切块列表能看到文档被切分后的内容片段

排障

问题可能原因
检索始终空结果embedding 索引未构建或模型不匹配
分数极低查询与文档语义距离大,或 embedding 模型选择不当
切块内容异常解析或切块配置问题

相关链接