外观
知识库问答接口
知识库问答接口
设计
- 支持基本RAG、智能体多跳RAG、混合RAG等实现
- 支持流式与非流式响应
实现
bash
rag # RAG 核心逻辑子模块
|-- agent_rag.py # 基于 Agent 的 RAG 实现
|-- basic_rag.py # 基础版 RAG 实现
|-- controller.py # RAG 接口控制器
|-- hybrid_rag.py # 混合检索 RAG 实现
|-- prompts.py # RAG 提示词模板定义
|-- rag_base.py # RAG 基础抽象类
`-- schema.py # RAG 接口数据模型关键请求参数说明:app\api\v1\module_rag\rag\schema.py

基本RAG使用示例
请求:使用基本RAG、非流式请求
json
{
"model": "deepseek-v3.2",
"query": "热门专业top20中,前3名有哪些?",
"stream": false,
"chain_type": "basic",
"kb_ids": [
1
]
}响应:包含回答,以及相关引用的文档片段、分数等信息
json
{
"code": 200,
"message": "success",
"data": {
"retrieval_time_ms": 6495,
"rerank_time_ms": 0,
"generation_time_ms": 1828,
"total_time_ms": 10609,
"chain_type": "basic",
"model_used": "deepseek-v3.2",
"session_id": null,
"answer": "根据《热门专业top20.md》,前3名依次为: \n1. 电气工程及其自动化 \n2. 软件工程专业 \n3. 英语",
"sources": [
{
"doc_id": "1",
"title": "热门专业top20.md",
"chunk_id": "464156524001365268",
"content": "热门专业top20,排名分先后\n\n1、电气工程及其自动化\n\n电气工程及其自动化专业是就业的专业......",
"score": 0.6972755789756775,
"metadata": null
},
{
"doc_id": "1",
"title": "热门专业top20.md",
"chunk_id": "464156524001365269",
"content": "15、护理学专业\n\n护理学专业就业率高,特别是三甲医院和诊所。虽然工作辛苦,但就业上没有问......",
"score": 0.6294510960578918,
"metadata": null
},
{
"doc_id": "3",
"title": "天坑专业top10.md",
"chunk_id": "464156524001365275",
"content": "10大天坑专业,排名部分先后\n\n1.法学:理想丰满,现实骨感\n\n“维护正义”的初心敌不过行业的残.......",
"score": 0.5588494539260864,
"metadata": null
}
]
}
}智能体RAG使用示例
请求:使用智能体RAG、流式请求
json
{
"model": "deepseek-v3.2",
"query": "热门专业top20中,前3名有哪些?这3个专业,西安交大2024年录取分是多少",
"stream": true,
"chain_type": "agent",
"kb_ids": [
1
]
}响应:控制台日志中能看到推理与引用过程,最后流式返回最终答案

流式响应顺序:
- event: sources - 返回检索到的文档来源信息
- event: token - 逐个返回生成的回答
- event: stats - 返回统计信息
- event: done - 返回完成标志
