RAG 问答
基于已上传的知识库文档进行检索增强问答。接口会检索相关文档分块,组装上下文,然后调用指定大语言模型生成回答。
Try It
POST
/search/chat_messagehttps://api-platform.ope.ai认证
使用 Bearer Token 认证。
- Header:
Authorization: Bearer <token> - 示例:
Authorization: Bearer sk-xxxxxx
请求体(application/json)
| 字段 | 类型 | 必填 | 说明 | 默认值 / 范围 |
|---|---|---|---|---|
question | string | 是 | 用户问题,将用于文档检索和回答生成 | - |
llm_model_name | string | 是 | 用于生成回答的大语言模型名称 | - |
embedding_model_name | string | 是 | 用于文本向量化和检索的 Embedding 模型名称 | - |
session_id | string | 是 | 会话 ID,用于关联对话历史 | - |
top_k | integer | 否 | 检索返回的相似文档数量 | 默认 5 |
stream | boolean | 否 | 是否使用 SSE 流式响应 | 默认 true |
return_sources | boolean | 否 | 是否返回相关源文档 | 默认 true |
return_history | boolean | 否 | 是否返回历史对话记录 | 默认 false |
extra_prompt | string | 否 | 附加提示词,用于补充回答约束 | 默认 无 |
example_prompt | string | 否 | 示例提示词,用于约束回答风格 | 默认示例 |
fallback_context | string | 否 | 知识库无相关内容时的备用上下文 | 默认空字符串 |
cosine_radius | number | 否 | 余弦相似度阈值半径 | 默认 0.55 |
请求示例
- 非流式 cURL
- 流式 cURL
- JavaScript
curl -X POST "https://api-platform.ope.ai/search/chat_message" \
-H "Authorization: Bearer $OPEAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"question": "什么是 RAG?",
"llm_model_name": "deepseek-v4-flash",
"embedding_model_name": "bge-m3",
"top_k": 5,
"session_id": "session_1",
"stream": false,
"return_sources": true
}'
curl -N -X POST "https://api-platform.ope.ai/search/chat_message" \
-H "Authorization: Bearer $OPEAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"question": "根据知识库总结产品优势",
"llm_model_name": "deepseek-v4-flash",
"embedding_model_name": "bge-m3",
"session_id": "session_1",
"stream": true,
"return_sources": true
}'
const res = await fetch("https://api-platform.ope.ai/search/chat_message", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.OPEAI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
question: "什么是 RAG?",
llm_model_name: "deepseek-v4-flash",
embedding_model_name: "bge-m3",
top_k: 5,
session_id: "session_1",
stream: false,
return_sources: true,
}),
});
console.log(await res.json());
响应示例
- 非流式
- 流式
{
"message": "RAG 是检索增强生成,会先从知识库中查找相关内容,再结合模型生成回答。",
"sources": [
{
"doc_id": "doc_1",
"chunk_id": "chunk_1",
"content": "RAG combines retrieval with generation."
}
],
"info": {
"top_k": 5
},
"history": []
}
event: message
data: {"content":"RAG 是"}
event: sources
data: [{"doc_id":"doc_1","chunk_id":"chunk_1"}]
event: end
data: {}
错误响应
| 状态码 | 场景 | 说明 |
|---|---|---|
400 | 参数验证错误 | 问题、模型、会话等必要字段缺失或格式不正确 |
401 | 鉴权失败 | API Key 缺失、无效或权限不足 |
422 | 参数校验失败 | 参数结构校验失败 |
500 | 处理失败 | 数据库、检索、模型调用或其他服务端错误 |