知识库使用最佳实践
1. 背景
在某些特定领域,由于大模型不具备该领域的专业知识、或者是知识过期、模型本身固有特点等原因,模型回复结果可能出现错误、过期、幻觉等问题。这时候可以借助知识库、训练模型等手段,解决大模型“知识不准、不全、不可控”的问题。
大模型实时互动服务支持通过配置话题、意图路由等方式,将特定的用户问题使用知识库、定制化模型来回复,以提升垂类场景的回答质量。
2. 知识库种类
大模型实时互动服务,支持接入3种知识库:内置的轻量级知识库、百度千帆Agent(AppBuilder)和OpenAI规范定制化知识库(模型)。
百度千帆Agent,也称为百度千帆AppBuilder,本文中两者为同一概念。
2.1 轻量级知识库
特点:轻量,延时低,当前只支持纯文本文档,只支持小文件(建议100k以下)。
接入步骤:参考本文第3节。
2.2 百度千帆Agent
特点:支持文本/表格/PDF/网页/音频等多种格式的文件源,支持输入大文件,能力丰富、可高度自定义,支持自定义向量模型和存储资源。
接入步骤:
- 使用百度千帆Agent开发平台创建知识库(Agent开发 -> Agent资产 -> 知识库),并导入文档。
- 使用百度千帆Agent开发平台创建Agent(Agent开发 -> Agent),可以在Agent中配置使用知识库,以自主规划Agent为例,可以在如下路径:配置 -> 知识库,添加知识库。
- 使用百度千帆Agent开发平台,为Agent配置角色指令,控制使用知识库检索结果来总结回复的风格和要求。
- 在大模型实时互动控制台,配置话题模板(意图设置 -> 话题),创建话题配置千帆AppBuilder的应用ID、API Key等信息,再为互动应用绑定话题模板(互动应用 -> 大模型配置 -> 话题),实现应用级别的知识库配置。
2.3 OpenAI规范定制化知识库
特点:训练/微调模型,定制化程度高,满足OpenAI模型规范。
接入步骤:
- 客户通过训练/微调模型等手段,实现定制化的知识库。
- 在大模型实时互动控制台,通过如下路径(意图设置 -> 话题)配置话题模板,创建话题配置Model ID、API Key等信息,再为互动应用绑定话题模板(互动应用 -> 大模型配置 -> 话题),实现应用级别的知识库配置。
3. 轻量级知识库接入
大模型实时互动服务,内置了轻量级知识库,其拥有低延时、和大模型实时互动高契合的特点。
3.1 接入流程
轻量级知识库接入流程如下:
(1)管理知识库。通过服务端API创建知识库后,为知识库导入文档。
(2)意图路由配置。在创建智能体时,可以设置意图路由,配置意图定义、例句和知识库ID,实现将特定的问题使用知识库检索+大模型总结来回复。
3.2 管理知识库
管理知识库,一般步骤为创建知识库 -> 上传文档到知识库 -> 查询知识库详情,当知识库状态正确、文档都被正确处理完成,说明知识库创建成功、文档构建索引成功,可以用于检索。
具体接口参考:知识库管理。
3.3 意图路由配置
创建智能体接口,支持通过配置intentCfg字段来设置意图路由,可以为意图配置serviceType=rag来使用轻量级知识库,实现实例级别知识库。
1{
2 "intentCfg": {
3 "intents": [
4 ...
5 ]
6 }
7}
Intent结构如下:
| 参数名 | 参数类型 | 必要性 | 参数描述 |
|---|---|---|---|
| name | String | 是 | 意图名称 |
| description | String | 是 | 意图描述 |
| examples | List |
是 | 调用例句 |
| serviceType | String | 是 | 取值rag时表示使用轻量级知识库 |
| ragCfg | Object | 是 | 知识库配置 |
| +kbId | String | 是 | 要检索的知识库ID |
| +recall | Object | 否 | 召回配置 |
| ++type | String | 否 | 检索类型,取值hybrid表示混合检索 |
| ++topK | Integer | 否 | 控制召回阶段输出得分最高的k个元素 |
| +rerank | Object | 否 | 重排序配置 |
| ++enable | Boolean | 否 | 是否开启重排序 |
| ++topK | Integer | 否 | 控制重排序阶段输出得分最高的k个元素,需要小于recall.topK |
配置检索轻量级知识库的意图路由示例:
1{
2 "intentCfg": {
3 "intents": [
4 {
5 "name": "中国历史",
6 "description": "中国历史科普,汉朝历史查询,唐朝著名历史人物查询",
7 "examples": [
8 "中国有多少朝代",
9 "汉朝有多少皇帝",
10 "介绍下唐朝李世民"
11 ],
12 "serviceType": "rag",
13 "ragCfg": {
14 "kbId": "kbxxx",
15 "recall": {
16 "type": "hybrid",
17 "topK": 3
18 }
19 }
20 },
21 {
22 "name": "百度",
23 "description": "百度公司简介,百度文化价值观、使命介绍,百度公司发展历程查询",
24 "examples": [
25 "百度文化价值观是什么",
26 "百度使命是什么",
27 "介绍下百度公司"
28 ],
29 "serviceType": "rag",
30 "ragCfg": {
31 "kbId": "kbxxx",
32 "recall": {
33 "type": "hybrid",
34 "topK": 5
35 },
36 "rerank": {
37 "enable": true,
38 "topK": 3
39 }
40 }
41 }
42 ]
43 }
44}
评价此篇文章
