知识库检索
概述
千帆平台深度整合知识库检索与大模型生成能力。用户可灵活选择 OpenAPI 服务调用或基于千帆平台搭建 Agent 两种接入方式,充分运用检索增强生成(RAG)技术,驱动大模型在知识问答过程中,精准检索并匹配包含指定语义信息的知识库切片。
平台提供命中测试功能,可用于测试检索召回效果,获取最佳知识库配置,辅助知识问答效果的调优。
命中测试
功能说明
支持在命中测试中添加删除知识库、配置文档筛选规则、上传模版配置知识库命中测试范围
操作方法
1. 选定命中测试范围
知识库创建完成后,可以进行命中测试,测试切片召回效果。命中测试可用于以下两个场景:
- 对知识库内容做命中测试:创建知识库后,在知识库详情的左上角,点击“命中测试”,进入命中测试工具。
- 对文件内容做命中测试:
a. 对知识库中多个文件内容做命中测试:进入知识库,在知识库详情中选中所需文件,点击【命中测试】。可在知识库的特定文档切片中进行命中测试与调优。
b. 对单个文件内容做命中测试:进入知识库,点击指定文件的【查看切片】按钮,进入切片详情。点击右上角【命中测试】。可在文档层级的知识切片进行命中测试与调优。
2. 执行命中测试
进入命中测试界面后的操作步骤如下:
- 点击设置按钮,设置检索策略、召回数量、匹配分、拓展上下文信息,便于获取最佳配置。命中测试的策略配置仅在命中测试页面生效,请放心调试。
- 在文本输入框中手动输入query内容,或点击测试历史中某一记录,query内容将自动填充至文本输入框中。
- 点击【命中测试】,将返回对应切片(带图片切片会将图片一起返回)。
- 在右侧查看命中的切片及分值,切片按照分值降序排列,确认展示的切片是否符合预期。
大模型与 RAG 融合实战:高效搭建智能问答应用
结合大模型和检索增强生成(RAG)技术进行智能知识问答主要分为以下三个步骤:
-
步骤1:创建知识库,构建数据索引
- a) 加载不同来源、不同格式文档;
- b) 将文档分割成知识切片(Chunk);
- c) 对切片的数据进行向量化并存储到向量数据库;
-
步骤2:检索-增强(Retrieval-Augmented)
- a) 通过向量相似度检索与问题最相关的K个知识切片;
- b) 检索召回知识附加上下文填充至Prompt;
-
步骤3:生成(Generation)
- a) 检索增强提示输入至 LLM生成请求响应
方法一【更灵活】:调用OpenAPI
在构建大模型应用的过程中,您可通过调用 知识库检索API 精准检索最匹配的知识片段。接着调用 推理服务API ,将知识库检索结果作为输入传递给大模型,大模型基于这些输入信息,运用其语言理解与生成能力对内容进行综合分析处理,从而针对用户问题生成高质量的回答。具体操作步骤如下:
1.获取 API Key
登录本平台,在左侧功能列中找到并点击【API Key】,进入 API Key 管理界面。
点击左上角【创建API Key】按钮,可选择【全部产品权限】和【自定义权限】两种权限配置。
- 全部产品权限:简单快捷授权该API Key的使用者所有资源读写权限。
- 自定义权限:安全可控自定义API Key的使用者资源读写权限。如要使用知识库检索功能,请确保开启知识库的ReadKnowledgeBase权限。
配置好权限后点击确定,即可新建一个API Key。API Key可用于接口的鉴权认证。
2.调用知识库检索API并拼接Prompt
参考知识库检索API文档,调用知识库检索API,输入Query和检索配置,在指定的知识库范围检索与问题最相关的前K个知识切片。
将检索召回的切片内容与原始问题进行组合,构建用于大模型生成回答的 Prompt。以下是一个检索并拼接为 Prompt 的示例:
def augment_prompt(query: str, knowledegbases: list, api_key: str):
import requests
# 配置接口地址、请求头、请求体
API_URL = "https://qianfan.baidubce.com/v2/knowledgebases/query"
HEADERS = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}" # 需替换为你的真实授权 API Key
}
payload = {
"query": query,
"knowledgebase_ids": knowledegbases
}
#获取top3的文本切片并拼接
response = requests.post(url=API_URL, headers=HEADERS, json=payload)
results = response.json()
source_knowledge = "\n".join([x["content"] for x in results["chunks"]])
#将召回结果和query组合, 构建prompt
augmented_prompt = f"""参考以下背景信息,回答问题。
背景信息:{source_knowledge}
问题: {query}"""
return augmented_prompt
3.调用大模型API
使用拼接好的Prompt,调用大模型推理服务API,大模型将根据输入内容进行分析处理,生成完整的回答结果并返回。
方法二【更简单】:搭建Agent应用
您还可以借助千帆平台,通过以下步骤快速搭建 RAG 应用:
1.创建Agent应用
登录到千帆AppBuilder,点击左上角【创建】按钮,选择【自主规划 Agent】。
2.配置问答模型(可选择精调后模型)
在应用配置界面,点击上方的模型下拉框,选择【问答模型】。
若需选用精调后的模型,可点击【自定义模型】。该选项将展示您在本平台训练并发布的全部模型,您可从列表中按需选择已发布的精调模型,确保问答应用使用最合适的模型进行推理。
3.配置知识库
点击知识库右侧的【+】按钮,添加已创建好的知识库。配置完成后,模型在处理用户问题时,会自动检索知识库,结合最相关的信息生成更准确的回答。
4.测试RAG效果
在预览与调试窗口中输入各类问题,验证 RAG 应用的实际效果。同时,您可以查看每个答案的引用来源,便于评估检索召回效果以及回答的准确性。
5.发布应用
确认测试效果满意后,点击【发布 - 发布应用】,将当前测试环境的应用部署到生产环境。发布完成后,您可以在发布界面获取体验链接、查看体验二维码,方便分享给其他用户使用。已发布的应用可在【个人空间 - 应用】中进行查看、编辑和管理。