介绍
MaxKB 是一款基于 LLM 大语言模型的知识库问答系统。MaxKB = Max Knowledge Base,旨在成为企业的最强大脑。近期star数增长迅猛。
star history
- 开箱即用:支持直接上传文档、自动爬取在线文档,支持文本自动拆分、向量化,智能问答交互体验好;
- 无缝嵌入:支持零编码快速嵌入到第三方业务系统;
- 多模型支持:支持对接主流的大模型,包括 Ollama 本地私有大模型(如 Llama 2、Llama 3、qwen)、通义千问、OpenAI、Azure OpenAI、Kimi、智谱 AI、讯飞星火和百度千帆大模型等;
- 安全性高:可以完全私有化地部署在企业内部。
- 费用:免费、开源。
产品架构/实现原理
产品架构
实现原理
环境要求
安装前请确保你的环境是否符合安装要求:
- 操作系统:Linux/Windows 10/Mac
- CPU/内存: 推荐 2C/4GB 以上;
- 磁盘空间:100GB;
- Docker的版本不低于20.10.8
快速部署
MaxKB仅支持Docker部署、启动,执行以下命令即可:
docker run -d --name=maxkb -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data 1panel/maxkb
部署成功后,接下来就可以通过浏览器访问maxkb的网页,ip为maxkb提供服务的机器ip,端口为8080;初次登录的用户名为admin,密码为MaxKB@123..密码包含省略号,到此为止你已经部署成功了maxkb。
maxkb登录页
添加模型(在线)
登录 MaxKB 系统后,可以先对接一下模型,也可以在创建应用时添加模型。这里模型比较多,我选了一个讯飞星火模型作为测试,大家可以研究下其他的模型
对接模型
添加讯飞星火
讯飞星火
首先需要注册一个讯飞开放平台账号
讯飞开放平台
添加讯飞星火模型
其他的模型官网注册账号获取对应的API Id、API Key和API Secret即可。
创建知识库
打开【知识库】页面,点击【创建知识库】,进入创建知识库页面。
- 上传文档
输入知识库名称、知识库描述、选择通用型知识库类型。然后将离线文档通过拖拽方式或选择文件上传方式进行上传。上传文档要求:支持的格式为Markdown、TXT、PDF、DOCX;每次最多上传 50 个文件;每个文件不超过 100 MB。文档规范建议:
1、规范分段标识:离线文档的分段标识要有一定规范,否则拆分出来的段落会不规
2、段落要完整:一个分段中最好能描述一个完整的功能点或问题。
创建知识库
- 设置文档规则
当前支持智能分段和高级分段两种分段方式,推荐选择:智能分段。
设置文档规则
- 创建完成
点击【创建并导入】后,系统会对文档进行自动分段 -> 存储 -> 向量化处理操作。
知识库文档
创建应用
点击【创建应用】,进入创建应用页面,左侧为应用信息,右侧为调试预览界面。
应用名称: 用户提问时对话框的标题和名字。
应用描述: 对应用场景及用途的描述。
AI模型: 显示【系统设置】-【模型管理】中大语言模型,也可以直接添加模型,请参考【添加模型】操作介绍。
提示词: 系统默认有知识库的问答提示词,用户可以自定义。
多轮对话: 开启时当用户提问携带用户在当前会话中最后3个问题;不开启则仅向大模型提交当前问题。
关联知识库: 选择已有的知识库进行关联,用户提问时会在关联的知识库中检索分段,引用分段生成提示词发送给大模型进行询问。若未关联知识库或未匹配到分段内容。
参数设置: 可以设置知识库的相似度,引用分段数量和最大引用字符数。
注意:关联的知识库和应用为同一个用户创建。
开场白: 用户打开对话时,系统弹出的问候语。支持 Markdown 格式;[- ]后的内容为快捷问题,一行一个。
问题优化: 对用户提出的问题先进行一次 LLM 优化处理,将优化后的问题在知识库中进行向量化检索,开启后能提高检索知识库的准确度,但由于多一次询问大模型会增加回答问题的时长。
应用信息设置完成后,可以在右侧调试预览中进行提问预览。
创建应用
- 显示预览
入口一:在应用列表页面,点击【演示】,可进入问答页面。
入口二:点击应用面板,在概览页面点击演示或复制公开访问链接至浏览器进入问答页面进行提问。
预览
- 对话日志
在对话日志中记录了所有用户会话中的问答详情,包括用户对AI 回答的反馈信息。维护人员可以通过查看对话日志和用户反馈来修正答案。
对话日志
- 命中测试
命中测试
开源地址
https://github.com/1Panel-dev/MaxKB
总结
到此为止属于自己个人的知识库问答系统就搭建完毕了,接下来就是喂数据了,一个好的智能问答系统需要很多的数据来支撑。快去动手实践起来吧。关注我每天分享不一样的开源软件和服务。