一文读懂RAG流程中用到的请求参数与返回字段
以下是一篇系统梳理RAG(Retrieval-Augmented Generation)流程中请求与响应参数的中文讲解文章:
RAG(检索增强生成)是一种将知识库检索与大模型问答融合的技术框架。本文以实际项目代码为例,逐步讲解该流程中检索请求、响应字段与大模型调用所涉及的关键参数与含义,帮助开发者高效调试和优化问答系统。
一、search_knowledge 请求参数
该阶段负责“知识检索”,从知识库中找出与问题最相关的文本片段(chunk),支持过滤、排序、上下文补全等功能。
基本参数
参数名 | 类型 | 必填 | 含义 |
---|---|---|---|
project | string | 否 | 所属项目名,默认 "default" |
name | string | 否 | 知识库名称,如 "HLG_AI_Knowledge" |
resource_id | string | 否 | 知识库 ID,若为空则以 name+project 定位 |
query | string | ✅ 是 | 用户输入的问题,例如 "氧动运知识有哪些常见误区?" |
limit | int | 否 | 返回的结果条数,范围 1~200,默认 10 |
检索前处理(pre_processing
)
参数名 | 类型 | 含义 |
---|---|---|
need_instruction | bool | 是否拼接指令提示语,提高语义检索效果 |
return_token_usage | bool | 是否返回 token 用量,用于调试资源消耗 |
rewrite | bool | 是否对 query 进行自动改写(如消歧义) |
messages | json[] | 多轮对话历史,开启 rewrite 时提供上下文 |
检索后处理(post_processing
)
参数名 | 类型 | 含义 |
---|---|---|
get_attachment_link | bool | 是否返回文档中图片等资源的临时访问链接 |
rerank_only_chunk | bool | 重排时只考虑内容,不考虑标题等元信息 |
rerank_switch | bool | 是否开启基于模型的二次排序(如 m3-rerank) |
retrieve_count | int | 进入 rerank 的候选数量,必须 ≥ limit |
chunk_group | bool | 是否聚合文本块,按文档顺序返回 |
chunk_diffusion_count | int | 每个命中块左右返回几片上下文,增强语义理解 |
rerank_model | string | 使用的 rerank 模型,常用如 "m3-v2-rerank" |
其他
参数名 | 类型 | 含义 |
---|---|---|
dense_weight | float | 稠密向量匹配权重,范围 [0.2, 1],0为纯关键词,1为纯语义 |
二、search_knowledge 响应参数
来自知识库的返回数据结构主要包括以下字段:
字段 | 类型 | 说明 |
---|---|---|
code | int | 状态码,0 表示成功 |
data.result_list | list | 检索到的知识点(chunk)列表 |
data.token_usage | dict | token 用量,如 embedding_token_usage 和 rerank_token_usage |
data.result_list[i].content | string | 具体文本内容 |
data.result_list[i].doc_info.doc_name | string | 文档名 |
data.result_list[i].chunk_title | string | 对应的章节/小节名 |
data.result_list[i].chunk_attachment | list | 若开启 get_attachment_link ,返回的图片链接等资源 |
三、生成 Prompt 阶段参数
通过 generate_prompt
方法,会根据每个检索结果构建标准 prompt:
-
拼接
content
(文本片段内容) -
提取
doc_name
(文档名) -
若为多模态模型,插入
<img>
标签标记图片内容
这些内容最终被填充到模板:
<context>文档内容(含图片提示词)
</context>
四、chat_completion 请求参数(调用大模型)
该阶段是基于上述 prompt + query,由大模型生成最终回答。
参数名 | 类型 | 含义 |
---|---|---|
messages | list | 对话结构数组,含 "system" prompt 和 "user" 问题或多模态图片 |
stream | bool | 是否启用流式响应 |
return_token_usage | bool | 是否返回 token 使用信息 |
model | string | 模型名称,如 "Doubao-1-5-thinking-pro" |
model_version | string | 模型版本号 |
temperature | float | 创造性程度(0~1) |
max_tokens | int | 返回最大 token 数量限制 |
api_key | string | 可选,提供访问凭证(如需授权访问) |
五、chat_completion 响应参数
流式接收时每行数据形如:
{"code": 0,"data": {"generated_answer": "...","reasoning_content": "...","usage": {"prompt_tokens": 100,"completion_tokens": 500,"total_tokens": 600}}
}
字段解释如下:
字段 | 含义 |
---|---|
generated_answer | 最终生成的回答文本 |
reasoning_content | 模型的“思考过程”或解释过程 |
usage | token 用量详情,便于评估成本 |
六、总结:RAG流程核心参数梳理表
阶段 | 参数或字段 | 说明 |
---|---|---|
检索请求 | query , name , project , dense_weight , limit | 基础检索条件 |
检索前处理 | need_instruction , rewrite , messages | 提升语义匹配 |
检索后处理 | rerank_switch , rerank_model , chunk_diffusion_count | 精细排序、上下文扩展 |
响应结果 | result_list , token_usage , chunk_attachment | 检索内容与消耗 |
大模型调用 | messages , model , temperature , max_tokens | 构建回答生成任务 |
回答内容 | generated_answer , reasoning_content , usage | 输出结果与解释 |