私有知识库使用说明
场景配置
知识库可以进行配置,点击 CubeStudio 右上角的 “AI” 图标,再进入私有知识库,即可配置知识库的场景。基础的大模型,配上自己的先验知识文件,或者不同的提示词模板,可以配置成不同的场景。
提示词模板中提供先验知识
比如下图中,我们就是将规模较大的先验知识库配置成 upload_url,再把召回的相关性最大的小知识库配置成 recall_url,就可以把相关性最大的知识库放到提示词模板中,提高大模型回答问题的准确性。

提示词模板支持三个占位变量(见 myapp/views/view_chat.py:371):{{knowledge}} 为知识库召回内容、{{history}} 为多轮对话历史、{{query}} 为用户问题;若模板中缺少 {{query}},平台会自动补上(view_chat.py:612-613)。平台内置了一套召回服务(chat-embedding),未单独配置时 upload_url / recall_url 默认指向 http://chat-embedding.aihub:80/aihub/chat-embedding/api/upload_files 与 /recall(view_chat.py:474-475)。
多轮对话配置
再比如下图中,我们可以通过在原生大模型中修改提示词模板,传入之前对话的 {{history}} 和 {{query}} 变量,完成多轮对话提示。由于大模型存在提示词长度限制,可通过 session_num 限制保留的上下文轮数;未配置知识库时平台会自动切到多轮对话模式(session_num=10,view_chat.py:596-606)。

接口类型配置
还需要配置「服务类型」(service_type),可选 openai 与 aihub,默认 openai;接口并不一定是 OpenAI,只要符合 HTTP 请求/响应格式即可(见 myapp/views/view_chat.py:339-344、341)。其中 openai 对应大模型对话接口,aihub 用于调用 AIHub 类型接口(文生图 AIGC 等通过该类型调用)。
在构建知识库的过程中,会先配置一个大的先验知识库,然后通过匹配用户的 query,召回一批最为相关的先验知识,再把召回的先验知识放到提示词中,和用户的 query 一起提给大模型,得到答案。如果答案离预期差太远,想要调试召回效果,可以通过知识库配置里的召回地址(recall_url,见 view_chat.py:217)来实现。

微信、钉钉智能聊天
私有知识库模块已经和微信、钉钉打通,如果想要在微信或钉钉中实现智能聊天,可以配置用户自身微信或钉钉的后台 AppID、秘钥、Token 等。

AIGC(文生图)
首先需要在 AIHUB 中部署文生图模型(参见 AIHub模型市场.md)。

在某个场景中配置 AIGC 服务接口。

然后就可以在聊天中进行文生图应用了。

扩展能力(expand 开关)
除基础的知识库问答外,每个场景可在 expand 中按需开启一批增强能力(见 view_chat.py:252-274):
| 开关 | 能力 |
|---|---|
enabled_upload_file |
允许对话中上传文件 |
enabled_safety_detection |
开启安全围栏(输入/输出内容安全检测) |
enabled_ocr |
对上传图片做 OCR 识别 |
enabled_search |
开启联网搜索 |
enabled_thinking |
开启深度思考 |
enable_asr / enable_tts |
语音识别 / 语音合成 |
isPublic / index |
是否公共应用 / 显示顺序 |
安全围栏可通过 safety_detection_config 细调阈值(对接安全服务 /api/v1/safety-check,取值 [0,1],越小越严格):ban_topics_input(输入禁止主题,默认 0.8)、prompt_injection(提示词注入,默认 0.8)、zh_toxicity(中文毒性,默认 0.8)、ban_topics_output(输出禁止主题,默认 0.4)、sensitive(输出 PII,默认 0.0 即发现即拦截)、malicious_urls(恶意链接,默认 0.6)。
对话类型 chat_type 支持文本对话(text)与数字人(digital_human);aihub 接口类型的 data 支持 $text / $image / $audio / $video 多模态输入,output 可为 text/markdown/image/audio/video(view_chat.py:236-249)。
场景对话
通过以上的几种配置,平台已经实现了以下几种智能聊天的场景。图示给出了使用 python 聊天窗的效果。

在聊天窗中直接新建会话场景,上传知识库文件,可以取得和后台配置知识库文件一样的效果。
