本文介绍知识平台的RAG引擎功能,包括管理员环境配置、知识库管理、文档导入与解析、检索测试、对话问答和Skill检索的操作说明。每个操作均提供界面操作和API调用两种方式。
功能概览
RAG(Retrieval-Augmented Generation)是知识平台的核心功能,通过将文档内容向量化并存储到知识库,实现基于语义相似度的精准检索,再由大语言模型(LLM)结合检索结果生成回答。
RAG的典型使用流程如下:
管理员配置:配置对象存储(OSS)、文档引擎和AI模型,完成平台初始化。
创建知识库:创建知识库,定义文档集合的组织方式和切片参数。
导入与解析:上传文档并触发解析,系统将文档切分为文本块(Chunk)并生成向量嵌入。
检索与问答:通过检索测试验证召回效果,然后创建对话助手进行知识问答。
Skill检索:通过AI助手内置Skill直接检索知识库,无需手动调用API。
不同角色的操作权限如下:
操作 | 所需角色 |
查询知识库、检索、问答 | VIEWER及以上 |
创建知识库、上传或删除文档、触发解析 | DEVELOPER及以上 |
配置模型、OSS、文档引擎、资源授权 | ADMIN |
管理员配置
以下配置仅需管理员(ADMIN)在平台初次部署后执行一次,已完成的环境可跳过。
配置对象存储(OSS)
RAG引擎使用OSS保存原始文件、解析中间产物和切片图片。
界面操作
在左侧菜单中,选择RAG 引擎 > 服务配置。
在对象存储(OSS)配置面板中,配置以下参数:
参数
说明
示例
Storage Type
存储类型。
OSS、S3、MINIOAccess Key ID
访问密钥ID。
AKxxxxxxxxSecret Key
访问密钥。服务端采用AES-GCM加密存储,已保存时留空则保留原值。
********
Endpoint URL
服务地址。
https://oss-cn-hangzhou.aliyuncs.comRegion
区域。
cn-hangzhouBucket
默认桶名。
my-rag-bucketPrefix Path
存储前缀路径(可选)。
rag/Signature Version
签名版本。
s3、v4Addressing Style
寻址方式。
virtual、path单击测试连接,验证配置是否正确。
单击保存配置。保存后系统将自动重启RAG引擎服务(约10~30秒)。
API调用
保存OSS配置:
POST /api/oss/config Content-Type: application/json { "storage_type": "OSS", "endpoint_url": "https://oss-cn-hangzhou.aliyuncs.com", "region": "cn-hangzhou", "bucket": "my-rag-bucket", "access_key": "AKxxx", "secret_key": "xxxxxxx", "prefix_path": "rag/", "signature_version": "s3", "addressing_style": "virtual" }保存后系统自动重启RAG引擎服务(约10~30秒)。完成后调用测试接口验证连通性:
POST /api/oss/test Content-Type: application/json { "storage_type": "OSS", "endpoint_url": "https://oss-cn-hangzhou.aliyuncs.com", "region": "cn-hangzhou", "bucket": "my-rag-bucket", "access_key": "AKxxx", "secret_key": "xxxxxxx", "prefix_path": "rag/", "signature_version": "s3", "addressing_style": "virtual" }期望返回:
{"code": 0, "connected": true}。
配置文档引擎
文档引擎用于保存切片、向量和全文索引。支持以下两种引擎类型:
场景 | 推荐引擎 |
不想额外部署 | PostgreSQL |
已购买PolarSearch | OpenSearch |
界面操作
在服务配置页面中,滚动至文档引擎配置板块。
在顶部引擎类型中,选择
PostgreSQL或OpenSearch。切换到对应的Tab页,填写连接参数。
PostgreSQL Tab
参数
默认值
说明
Host / Port
localhost/5432PostgreSQL实例地址。
Username / Password
postgres/ 已保存留空数据库用户名和密码,密码加密存储。
Database
_rag_doc_db专用文档库名称。
Pool Size / Max Overflow / Pool Timeout
20 / 10 / 30
连接池参数。
FTS Engine
gin全文索引类型。
FTS Language
chinese分词语言。
Hybrid Mode
weighted_fusion混合检索策略。
FTS TopN / Vector TopN
100 / 100
每路召回上限。
OpenSearch Tab
参数
默认值
说明
Host / Port
opensearch/9201OpenSearch实例地址。
Username / Password
admin/ 已保存留空管理员凭据。
单击测试连接验证连通性,然后单击保存配置。
在引擎类型处单击切换并重启,系统将自动重启RAG引擎服务以切换到新引擎。
切换引擎会使原引擎内的切片数据在已有知识库中不可见。如需全量迁移,需对现有文档重新触发解析。
API调用
保存PostgreSQL配置:
POST /api/doc-engine/pg/config Content-Type: application/json { "host": "localhost", "port": 5432, "database": "_rag_doc_db", "username": "postgres", "password": "your_password" }测试PostgreSQL连通性(可传空body使用已保存配置):
POST /api/doc-engine/pg/test Content-Type: application/json {}切换引擎类型(触发重启):
POST /api/doc-engine/engine-type Content-Type: application/json { "engine_type": "postgresql" }
绑定LLM与Embedding模型
RAG引擎至少需要Embedding模型(向量化切片)和Chat LLM(对话问答)。
界面操作
在左侧菜单中,选择RAG 引擎 > 模型配置。
新增模型厂商:在从预设模型提供商添加区域找到目标厂商(如Tongyi-Qianwen、OpenAI、DeepSeek等),单击添加,填写API Key和Base URL(可选)。
导入自定义模型(可选):单击添加自定义模型,填写模型提供商(Factory)、模型名称、API Key、Base URL和模型类型(
chat、embedding、rerank、image2text),单击验证确认可用后再添加。设置默认模型:在页面顶部租户默认模型区域,分别指定:
LLM:例如
qwen-plus。Embedding:例如
text-embedding-v3。VLM(可选):用于PDF图片理解,例如
qwen-vl-plus。
单击保存。设置立即生效,无需重启。
API调用
绑定模型厂商API Key。
POST /api/ragflow/llm/set_api_key Content-Type: application/json { "llm_factory": "Tongyi-Qianwen", "api_key": "sk-xxxxxxxxxxxxxxxxxxxxxx", "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1" }查看可选厂商:
GET /api/ragflow/llm/factories。设置租户默认模型。
POST /api/ragflow/set_tenant_info Content-Type: application/json { "tenant_id": "<从 GET /api/ragflow/tenant_info 获取>", "llm_id": "qwen-plus@Tongyi-Qianwen", "embd_id": "text-embedding-v3@Tongyi-Qianwen", "asr_id": "", "img2txt_id": "" }(可选)用户级覆盖。
PUT /api/ragflow/defaults Content-Type: application/json { "llm_id": "gpt-4o@OpenAI" }
管理员自检
完成以上配置后,通过以下API验证各组件状态:
GET /api/ragflow/status # RAG引擎服务是否在线
GET /api/ragflow/tenant_info # 默认模型是否已设置
POST /api/oss/test # OSS是否可达(需传入完整OSS配置参数)
POST /api/doc-engine/pg/test # 文档引擎是否可达(可传空body{})四项全部返回connected: true或code: 0,即可开始使用RAG功能。
创建知识库
界面操作
在左侧菜单中,选择RAG 引擎 > 知识库管理。
单击页面右上角的+ 新建知识库,在弹窗中配置以下参数:
参数
建议值
说明
名称
quickstart-kb仅支持英文字母、数字和短横线,便于脚本引用。
描述
一句话业务说明
方便多人协作时辨识。
切片方法
General (Naive)通用文档首选。其他可选值:
manual(长文)、paper(论文)、qa(问答对)、table(表格)。嵌入模型
留空
自动跟随租户默认模型,避免维度不匹配。
权限
me/teamme仅自己可见;team本租户共享。单击创建。列表中每一行的ID列即为后续API和Skill使用的
dataset_id(形如ds-abc123)。
API调用
POST /api/ragflow/datasets
Content-Type: application/json
{
"name": "quickstart-kb",
"description": "第一个知识库",
"chunk_method": "naive",
"permission": "me",
"embedding_model": "text-embedding-v3@Tongyi-Qianwen"
}成功后记下返回体里的data.id(如ds-abc123),后续所有接口都需要使用该ID。
导入文档与解析
上传文件
界面操作
在知识库列表中,单击目标知识库的文件夹图标,进入文档管理页。
单击页面右上角的上传,将文件拖拽到上传框或单击选择文件。支持PDF、Word、Excel、PPT、TXT、Markdown等格式。
上传完成后,关闭上传弹窗。文档列表中新文档的解析状态为待解析。
API调用
curl -X POST "http://<host>/api/ragflow/datasets/<dataset_id>/documents" \
-H "Authorization: Bearer <token>" \
-F "file=@./产品手册.pdf" \
-F "file=@./FAQ.md"上传后文档状态为unprocessed。
触发解析
界面操作
在文档管理页中,勾选需要解析的文档(支持全选)。
单击顶部的开始解析。
说明未配置嵌入模型时,系统会弹出警告提示。单击去配置跳转到知识库配置页补充。
解析过程中,文档列表会自动刷新显示进度。解析状态依次为:待解析 → 解析中 → 已完成(或失败)。
API调用
POST /api/ragflow/datasets/<dataset_id>/documents/parse
Content-Type: application/json
{ "ids": ["doc-xxx", "doc-yyy"] }查看与修正切片
界面操作
在文档管理页中,单击目标文档的文档图标(仅解析完成的文档可操作)。
在右侧Chunk抽屉中,可对每条切片执行以下操作:
单击编辑手工纠错(如OCR错字、段落合并)。
切换启用或禁用开关,临时屏蔽低质切片。
单击新增 chunk手工补录遗漏内容。
API调用
GET /api/ragflow/datasets/<dataset_id>/documents/<doc_id>/chunks?page=1&size=20
POST /api/ragflow/datasets/<dataset_id>/documents/<doc_id>/chunks/switch检索测试
在创建对话助手前,建议先通过检索测试确认文档能被正确召回。
界面操作
在左侧菜单中,选择RAG 引擎 > 内容检索。
在页面顶部的选择知识库下拉框中,选择一个或多个知识库。
在文本框中输入问题,单击检索。
在右侧参数面板中,可按需调整以下检索参数:
参数
默认值
说明
Top K
10
返回的召回切片数量。
相似度阈值
0.2
低于该分数的切片将被过滤。
向量权重
0.3
混合检索中向量占比,剩余部分为关键词匹配。
关键词
关闭
启用后同时进行BM25关键词匹配。
元数据过滤
空
按文档类型或标签收窄检索范围。
查看结果。每条切片展示综合得分、向量得分和关键词得分。
判读标准:
观察
结论
Top-3命中切片都能回答问题
质量合格,可创建对话助手。
Top-3偏离但Top-10有正确结果
调高Top K或启用Rerank。
全部不相关
检查切片质量或调整切片参数。
API调用
POST /api/ragflow/retrieval
Content-Type: application/json
{
"question": "产品退货的条件是什么?",
"dataset_ids": ["<dataset_id>"],
"top_k": 10,
"similarity_threshold": 0.2,
"vector_similarity_weight": 0.3,
"highlight": true
}返回每条切片包含:
similarity:综合得分。vector_similarity/term_similarity:向量与关键词分。content_with_weight:正文(含高亮标记)。docnm_kwd/doc_id:来源文档。
对话助手与问答
创建助手
界面操作
在左侧菜单中,选择RAG 引擎 > 对话助手。
单击+ 新建助手,配置以下参数:
基础信息
参数
说明
名称
助手显示名称。
头像
上传自定义头像或保留默认。
关联知识库
多选:勾选目标知识库。
模型参数
参数
建议值
说明
模型
租户默认
跟随租户默认,或覆盖为指定模型。
Temperature
0.1
越低越严格复现知识库内容。
Top-P
0.3
与Temperature二选一调节。
相似度阈值
0.2
同检索测试。
向量权重
0.3
同检索测试。
Top N
6
输入LLM的最多切片数。
显示引用
开启
在回答中标注来源切片。
空结果回复
自定义文本
检索无结果时的兜底回复,用于防止模型幻觉。
系统提示词:配置系统级Prompt,使用
{{knowledge}}变量引用检索结果。单击创建。
API调用
POST /api/ragflow/chats
Content-Type: application/json
{
"name": "产品客服助手",
"dataset_ids": ["<dataset_id>"],
"llm": { "temperature": 0.1, "top_p": 0.3 },
"prompt": {
"similarity_threshold": 0.2,
"vector_similarity_weight": 0.3,
"top_n": 6,
"show_quote": true,
"empty_response": "抱歉,我没有在知识库中找到相关信息。",
"prompt": "你是产品客服。请只依据 {{knowledge}} 用简洁中文回答用户问题。"
}
}发起对话
界面操作
在助手列表中,单击目标助手卡片,进入对话视图。
在左侧会话列表中,单击+ 新建会话,或选择一个历史会话继续。
在输入框中键入问题,按Enter键发送(Shift+Enter换行)。回答以流式方式实时展示。
每段回答末尾的引用标记可展开查看命中切片与原文链接。
API调用
创建会话。
POST /api/ragflow/chats/<chat_id>/sessions Content-Type: application/json { "name": "首次对话" }流式问答。
POST /api/ragflow/chats/<chat_id>/completions Content-Type: application/json { "session_id": "<session_id>", "question": "退货需要多久?", "stream": true }流式响应每帧格式:
data: {"code":0,"data":{"answer":"一般7个工作日内...","reference":{...},"finish":false}}
通过Skill检索
平台内置了两个预置Skill,可让AI助手直接访问知识库,无需手动调用API。
Skill名称 | 能力 | 适用角色 |
知识库检索智能代理(polardb-kb-search-agent) | 只读:列库、列文档、语义检索 | 普通用户(不会误操作) |
知识库智能代理(polardb-kb-agent) | 读写:管理知识库、上传或删除文档、修改切片、检索 | 管理员、运维 |
导入Skill
管理员在SKILLS管理 > 导入预设中启用对应Skill。
使用方式
启用Skill后,AI助手自动获得调用知识库检索的能力。您只需使用自然语言提问,AI助手会自动触发检索并整合结果生成回答。
命令速查
语义检索:
# 基础检索(使用配置的默认知识库) python3 scripts/search.py "如何配置数据库连接池?" # 指定知识库 + 返回更多结果 python3 scripts/search.py "部署流程" --dataset-ids ds-abc123,ds-xyz --top-k 10 # 含图片(图表/架构图类问题) python3 scripts/search.py "系统架构图" --with-images --json查看知识库:
python3 scripts/datasets.py list --json # 列出所有可见知识库 python3 scripts/datasets.py info ds-abc123 # 查看详情查看文档与解析状态:
python3 scripts/list_documents.py ds-abc123 --run DONE --suffix pdf python3 scripts/parse_status.py ds-abc123 # 聚合解析进度管理型操作(仅polardb-kb-agent):
python3 scripts/datasets.py create --name "new-kb" --chunk-method naive python3 scripts/upload_documents.py ds-abc123 ./docs/*.pdf python3 scripts/parse_documents.py ds-abc123 --all python3 scripts/update_dataset.py ds-abc123 --chunk-method paper说明所有Skill脚本默认读取环境变量
ONTOLOGY_BASE_URL与ONTOLOGY_API_KEY。在AI助手中导入Skill时会自动注入,无需手动设置。
典型场景
研发答疑:将内部设计文档导入知识库,在AI助手中直接查询架构和接口细节。
客服SOP:将FAQ导入知识库,客服人员通过AI助手获取标准话术。
工单定位:将历史故障报告入库,出现故障时通过AI助手检索相似案例。
批量语义分析:使用
--json配合脚本,对一批问题执行检索并导出结果做评估。