基础开发指南
本指南将帮助您快速开始使用MaxKB知识库系统,包括环境准备、安装配置和基本操作。
环境要求
使用MaxKB之前,请确保您的系统满足以下要求:
系统要求
- 操作系统:Linux (推荐Ubuntu 20.04+)、macOS 10.15+、Windows 10/11
- 内存:最低8GB,推荐16GB或更高
- 存储空间:至少10GB可用空间
- 处理器:多核处理器,2GHz以上
软件依赖
- Python: 3.8或更高版本
- 数据库:PostgreSQL 12+
- 向量数据库:支持Milvus, Qdrant, Weaviate或Pinecone
- 搜索引擎:Elasticsearch (可选,用于混合检索)
安装MaxKB
使用pip安装
# 创建虚拟环境
python -m venv maxkb-env
source maxkb-env/bin/activate # Linux/Mac
# 或 maxkb-env\Scripts\activate # Windows
# 安装MaxKB
pip install maxkb
使用Docker安装
# 拉取最新镜像
docker pull maxkb/maxkb:latest
# 运行容器
docker run -d \
-p 8000:8000 \
-v /path/to/data:/app/data \
--name maxkb-instance \
maxkb/maxkb:latest
基础配置
创建配置文件
创建config.yaml文件,包含以下基本配置:
# MaxKB配置文件
storage:
type: postgres
connection_string: "postgresql://username:password@localhost:5432/maxkb"
vector_db:
type: milvus # 或 qdrant, weaviate, pinecone
connection:
host: localhost
port: 19530
embedding:
model: text-embedding-ada-002 # 或使用其他嵌入模型
dimension: 1536
chunking:
chunk_size: 500
chunk_overlap: 50
api:
host: 0.0.0.0
port: 8000
workers: 4
初始化数据库
maxkb init --config config.yaml
快速开始
创建知识库
from maxkb import MaxKB
# 初始化MaxKB客户端
client = MaxKB(config_path="config.yaml")
# 创建知识库
kb = client.create_knowledge_base(
name="产品知识库",
description="包含公司产品的所有技术文档"
)
导入文档
# 导入单个文档
doc_id = kb.add_document(
file_path="/path/to/document.pdf",
metadata={
"title": "产品技术规格",
"department": "研发部",
"version": "1.0"
}
)
# 批量导入文件夹
imported_docs = kb.add_documents_from_directory(
directory_path="/path/to/docs",
recursive=True,
file_types=["pdf", "docx", "md"]
)
print(f"成功导入{len(imported_docs)}个文档")
查询知识
# 简单查询
results = kb.query(
query="如何重置产品密码?",
top_k=3
)
for i, result in enumerate(results):
print(f"结果 {i+1}:")
print(f"内容: {result.content}")
print(f"相关度得分: {result.score}")
print(f"文档来源: {result.metadata['source']}")
print("---")
# 高级查询(带过滤条件)
filtered_results = kb.query(
query="产品的技术参数是什么?",
filters={
"department": "研发部",
"version": {"$gte": "2.0"}
},
top_k=5
)
基本API操作
启动API服务:
maxkb serve --config config.yaml
然后可以通过HTTP API访问MaxKB:
# 创建知识库
curl -X POST "http://localhost:8000/api/knowledge_bases" \
-H "Content-Type: application/json" \
-d '{"name": "技术文档库", "description": "技术文档集合"}'
# 上传文档
curl -X POST "http://localhost:8000/api/knowledge_bases/{kb_id}/documents" \
-F "file=@/path/to/document.pdf" \
-F "metadata={\"title\":\"产品手册\",\"category\":\"用户指南\"}"
# 查询知识
curl -X POST "http://localhost:8000/api/knowledge_bases/{kb_id}/query" \
-H "Content-Type: application/json" \
-d '{"query": "如何连接到数据库?", "top_k": 3}'
与大型语言模型集成
使用OpenAI
from maxkb import MaxKB
import openai
# 初始化MaxKB
kb = MaxKB(config_path="config.yaml").get_knowledge_base("产品知识库")
# 设置OpenAI API密钥
openai.api_key = "your-api-key"
# 用户查询
user_query = "我们产品的最新版本支持哪些操作系统?"
# 获取相关上下文
context_results = kb.query(user_query, top_k=3)
context = "\n\n".join([result.content for result in context_results])
# 构建提示
prompt = f"""
请基于以下产品信息回答用户的问题。只使用提供的信息回答,如果信息中没有答案,请直接说明不知道。
信息:
{context}
用户问题: {user_query}
"""
# 调用OpenAI
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "你是一个产品支持专家,提供准确的产品信息。"},
{"role": "user", "content": prompt}
]
)
# 显示回答
print(response.choices[0].message.content)
下一步
恭喜!您已经完成了MaxKB的基本设置和使用。接下来,您可以:
- 学习高级功能和最佳实践
- 了解如何优化向量检索性能
- 探索与RAG集成的高级模式
- 查看完整API参考
MaxKB为您提供强大而灵活的知识管理能力,让AI应用更智能、更可靠!