Skip to main content

场景: 上传文档并对话

最小端到端路径:登录 → 上传文档 → 等待处理完成 → 发起 RAG 对话。

场景描述

验证从文档上传到 RAG 对话的完整链路,确认用户上传的内容能被正确检索和引用。

API 调用时序

curl 示例

# 1. 登录
TOKEN=$(curl -s -X POST "$BASE_URL/api/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{"username": "user@example.com", "password": "pass"}' | jq -r '.access_token')

# 2. 上传文档
DOC_ID=$(curl -s -X POST "$BASE_URL/api/v1/documents/upload" \
-H "Authorization: Bearer $TOKEN" \
-F "file=@knowledge.pdf" \
-F "dataset_id=$DATASET_ID" | jq -r '.id')

# 3. 轮询状态
while true; do
STATUS=$(curl -s "$BASE_URL/api/v1/documents/$DOC_ID/status" \
-H "Authorization: Bearer $TOKEN" | jq -r '.status')
echo "Status: $STATUS"
[ "$STATUS" = "completed" ] && break
sleep 5
done

# 4. 发起对话
curl -N "$BASE_URL/api/v1/chat/completions" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "文档中提到了什么?"}],
"dataset_ids": ["'"$DATASET_ID"'"],
"stream": true
}'

预期结果

步骤预期
上传返回 document_id,状态为 pending
处理状态经 processing 最终变为 completed
对话回答内容引用了上传文档的信息

排障

问题参考
上传 415/400文件上传
文档一直 processing文档卡住排障
对话无相关回答知识库问答
流式无输出SSE 流式

相关链接