MaxKB 入门教程
项目介绍
MaxKB 是一个功能强大的开源AI知识库系统,专注于构建基于检索增强生成(RAG)的智能问答系统。它提供了直观的Web界面,支持多种文档格式的上传和处理,以及与多种大语言模型的集成。
主要功能
- 文档管理:支持PDF、Word、Markdown等多种文档格式的上传和处理
- 知识库管理:创建和管理多个知识库,支持知识库的导入导出
- 智能问答:基于RAG技术,提供准确的问答功能
- 多模型支持:支持OpenAI、Anthropic、Hugging Face等多种大语言模型
- 向量数据库支持:支持多种向量数据库,如Chroma、Pinecone等
- 自定义提示词:灵活配置模型提示词,优化回答质量
- 多语言支持:支持多种语言的文档处理和问答
项目特点
- 开源免费:完全开源,可自由部署和定制
- 易于使用:提供直观的Web界面,操作简单
- 功能丰富:集成了文档处理、知识库管理、智能问答等多种功能
- 高度可扩展:支持自定义模型和向量数据库
- 性能优化:针对大规模文档和复杂查询进行了性能优化
安装与配置
安装步骤
- 使用Docker安装(推荐)
# 克隆仓库
git clone https://github.com/1Panel-dev/MaxKB.git
cd MaxKB
# 启动容器
docker-compose up -d- 从源码安装
# 克隆仓库
git clone https://github.com/1Panel-dev/MaxKB.git
cd MaxKB
# 安装依赖
npm install
# 构建项目
npm run build
# 启动服务
npm run start基本配置
访问Web界面:默认地址为
http://localhost:8080首次登录:设置管理员账号和密码
配置模型:在设置页面配置使用的LLM模型
配置向量数据库:选择合适的向量数据库(如Chroma、Pinecone等)
核心概念
1. 知识库(Knowledge Base)
知识库是MaxKB的核心概念,用于存储和管理文档。每个知识库可以包含多个文档,并对应一个向量索引。
2. 文档(Document)
文档是知识库的基本组成单元,可以是PDF、Word、Markdown等多种格式。
3. 模型(Model)
模型指的是用于生成回答的大语言模型,如GPT-3.5、GPT-4、Llama等。
4. 向量数据库(Vector Database)
向量数据库用于存储文档的向量嵌入,支持高效的相似度搜索。
5. 提示词(Prompt)
提示词是用于引导模型生成回答的文本,影响回答的质量和风格。
6. 问答(Q&A)
问答是MaxKB的核心功能,用户可以通过自然语言向知识库提问,系统基于检索到的信息生成回答。
基本使用
创建知识库
- 登录MaxKB Web界面
- 点击"创建知识库"按钮
- 输入知识库名称和描述
- 选择向量数据库和嵌入模型
- 点击"创建"按钮
上传文档
- 进入知识库详情页面
- 点击"上传文档"按钮
- 选择要上传的文档文件
- 等待文档处理完成
提问和对话
- 进入知识库详情页面
- 在聊天框中输入问题
- 点击"发送"按钮
- 查看AI生成的回答
管理知识库
- 进入知识库列表页面
- 点击知识库旁边的"编辑"按钮
- 修改知识库信息
- 点击"保存"按钮
高级特性
1. 自定义提示词
# 通过API设置自定义提示词
import requests
url = "http://localhost:8080/api/v1/knowledge-bases/{kbId}/prompts"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
}
data = {
"system_prompt": "你是一个专业的知识库助手,基于提供的文档回答问题。",
"user_prompt": "请根据以下文档回答问题:\n{documents}\n\n问题:{query}"
}
response = requests.put(url, json=data, headers=headers)
print(response.json())2. 批量导入文档
- 进入知识库详情页面
- 点击"批量导入"按钮
- 选择多个文档文件
- 等待文档处理完成
3. 知识库导出
- 进入知识库列表页面
- 点击知识库旁边的"导出"按钮
- 选择导出格式(如JSON)
- 点击"导出"按钮
实际应用案例
案例1:企业内部知识库
场景:企业内部知识管理,员工可以通过自然语言查询获取公司政策、产品信息等。
实现步骤:
- 创建企业知识库
- 上传公司文档(政策、手册、产品信息等)
- 配置适合的LLM模型
- 为员工创建用户账号
- 员工通过Web界面或API查询信息
示例:
# 上传文档到知识库
curl -X POST "http://localhost:8080/api/v1/knowledge-bases/{kbId}/documents" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@company-policy.pdf"
# 查询知识库
curl -X POST "http://localhost:8080/api/v1/knowledge-bases/{kbId}/query" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "公司的休假政策是什么?"}'案例2:产品支持知识库
场景:为产品用户提供自助式支持,解答常见问题。
实现步骤:
- 创建产品支持知识库
- 上传产品文档、FAQ、用户手册等
- 配置响应速度快的LLM模型
- 集成到产品网站或应用
- 监控和优化系统性能
集成示例:
// 前端集成示例
async function askMaxKB(question) {
const response = await fetch('http://localhost:8080/api/v1/knowledge-bases/{kbId}/query', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer YOUR_API_KEY'
},
body: JSON.stringify({ query: question })
});
const data = await response.json();
return data.answer;
}
// 使用示例
const answer = await askMaxKB('如何重置密码?');
console.log(answer);案例3:个人知识管理
场景:个人学习资料管理,通过AI助手解答学习问题。
实现步骤:
- 创建个人知识库
- 上传学习资料(笔记、论文、教材等)
- 配置适合的开源模型(如Llama 3)
- 使用聊天界面向AI助手提问
- 定期添加新的学习资料
使用示例:
- 上传机器学习教材PDF
- 提问:"什么是深度学习?"
- AI助手基于上传的教材生成详细回答
- 继续提问:"深度学习与机器学习的区别是什么?"
- AI助手提供详细的比较和解释
总结与展望
MaxKB作为一个功能强大的AI知识库系统,为构建基于RAG的智能问答系统提供了全面的工具和功能。通过本文的介绍,你应该已经了解了MaxKB的核心概念、基本使用方法和高级特性。
关键优势
- 开源免费,可自由部署和定制
- 易于使用,提供直观的Web界面
- 功能丰富,集成了文档处理、知识库管理、智能问答等多种功能
- 高度可扩展,支持自定义模型和向量数据库
- 性能优化,适合处理大规模文档
应用前景
- 企业内部知识库和问答系统
- 产品支持和客户服务
- 教育和学习辅助工具
- 个人知识管理和学习助手
- 内容管理和信息检索系统
未来发展
MaxKB团队持续改进系统,未来可能会:
- 支持更多的文档格式和数据源
- 集成更多的大语言模型和向量数据库
- 提供更高级的检索和生成能力
- 优化系统性能和扩展性
- 增强与其他工具和平台的集成
通过不断学习和实践,你可以利用MaxKB构建更加智能、高效的知识库和AI助手,为各种场景提供有价值的AI解决方案。