Cookbook #2: 上传与管理知识库
为专家上传参考文档,构建专业知识库。
⏱ 预计用时:5-10 分钟
前置条件
- 已创建专家(参见 Cookbook #1)
- 准备好参考文档(PDF / Word / TXT / Markdown)
步骤 1: 上传文档
单文件上传
curl -X POST https://your-domain.com/api/experts/exp_abc123/knowledge-base \
-H "X-API-Key: your-api-key" \
-F "file=@劳动合同法全文.pdf" \
-F "metadata={\"source\": \"劳动合同法\", \"version\": \"2024修正\"}"
批量上传
# 上传目录下所有 PDF 文件
for file in ./legal-docs/*.pdf; do
curl -X POST https://your-domain.com/api/experts/exp_abc123/knowledge-base \
-H "X-API-Key: your-api-key" \
-F "file=@$file"
echo "上传完成: $file"
done
Python SDK 上传
from mbe_sdk import MBEClient
client = MBEClient(api_key="your-api-key")
# 单文件上传
client.knowledge_base.upload(
expert_id="exp_abc123",
file_path="./劳动合同法全文.pdf",
metadata={"source": "劳动合同法", "version": "2024修正"}
)
# 批量上传
files = [
("./劳动合同法全文.pdf", {"source": "劳动合同法"}),
("./公司法全文.pdf", {"source": "公司法"}),
("./民法典.pdf", {"source": "民法典"}),
]
for file_path, meta in files:
client.knowledge_base.upload(
expert_id="exp_abc123",
file_path=file_path,
metadata=meta,
)
步骤 2: 验证知识库状态
curl -X GET https://your-domain.com/api/experts/exp_abc123/knowledge-base \
-H "X-API-Key: your-api-key"
预期响应:
{
"expert_id": "exp_abc123",
"documents": [
{
"doc_id": "doc_001",
"filename": "劳动合同法全文.pdf",
"size_bytes": 245760,
"chunks": 42,
"status": "indexed",
"uploaded_at": "2026-02-11T10:05:00Z"
}
],
"total_documents": 1,
"total_chunks": 42,
"total_size_mb": 0.24
}
关注以下字段:
status: "indexed" 表示已完成向量化,可以检索chunks: 文档被拆分的段落数
步骤 3: 测试知识库检索
# 测试知识库是否被正确引用
curl -X POST https://your-domain.com/api/chat \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{
"expert_id": "exp_abc123",
"message": "劳动合同到期不续签,需要支付多少经济补偿金?",
"options": {
"show_references": true
}
}'
预期行为:
- 回答中引用劳动合同法具体条文
references字段包含引用的知识库段落- SC-2(来源引用)确保回答有据可依
知识库最佳实践
| 实践 | 说明 |
|---|---|
| 文档质量 | 上传前确认文档内容准确、格式规范 |
| 文档粒度 | 按主题拆分大文档(如按章节),提高检索精度 |
| 元数据标注 | 添加来源、版本、日期等元数据 |
| 定期更新 | 法规更新时及时替换旧版本 |
| 安全扫描 | 上传自动执行 KB 间接注入扫描 |
| 存储规划 | 关注存储用量,避免超额计费 |