API参考
本文档提 供MaxKB的完整API参考,包括所有可用的接口、参数说明和使用示例。
客户端初始化
初始化MaxKB客户端
from maxkb import MaxKB
# 基本初始化
client = MaxKB(api_key="your_api_key")
# 或使用配置文件初始化
client = MaxKB(config_path="config.yaml")
# 高级初始化选项
client = MaxKB(
api_key="your_api_key",
base_url="https://api.maxkb.ai/v1",
timeout=30,
max_retries=3,
retry_delay=1.0,
log_level="INFO",
cache_enabled=True,
cache_ttl=3600
)
参数
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| api_key | str | MaxKB API密钥 | None |
| config_path | str | 配置文件路径 | None |
| base_url | str | API基础URL | "https://api.maxkb.ai/v1" |
| timeout | int | 请求超时秒数 | 60 |
| max_retries | int | 最大重试次数 | 3 |
| retry_delay | float | 重试延迟秒数 | 0.5 |
| log_level | str | 日志级别 | "WARNING" |
| cache_enabled | bool | 是否启用缓存 | False |
| cache_ttl | int | 缓存有效期(秒) | 3600 |
知识库管理
获取知识库列表
# 获取所有知识库
all_kbs = client.list_knowledge_bases()
# 使用分页和排序
kbs = client.list_knowledge_bases(
offset=0,
limit=10,
sort_by="created_at",
sort_order="desc"
)
参数
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| offset | int | 分页偏移量 | 0 |
| limit | int | 最大返回数量 | 100 |
| sort_by | str | 排序字段 | "created_at" |
| sort_order | str | 排序方向("asc"或"desc") | "desc" |
返回值
返回一个包含知识库信息的列表,每个知识库包含以下字段:
[
{
"id": "kb-123",
"name": "产品手册",
"description": "产品技术文档集合",
"created_at": "2023-06-15T10:30:00Z",
"updated_at": "2023-07-20T14:45:22Z",
"document_count": 25,
"vector_count": 1543,
"embedding_model": "text-embedding-3-large"
},
// 更多知识库...
]
创建知识库
# 创建一个新知识库
new_kb = client.create_knowledge_base(
name="市场研究",
description="竞争对手分析和市场趋势资料",
embedding_model="text-embedding-3-large"
)
参数
| 参数 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| name | str | 知识库名称 | 必填 |
| description | str | 知识库描述 | "" |
| embedding_model | str | 嵌入模型 | "text-embedding-3-small" |
| metadata | dict | 自定义元数据 |
返回值
返回创建的知识库信息:
{
"id": "kb-456",
"name": "市场研究",
"description": "竞争对手分析和市场趋势资料",
"created_at": "2023-08-10T09:12:35Z",
"updated_at": "2023-08-10T09:12:35Z",
"document_count": 0,
"vector_count": 0,
"embedding_model": "text-embedding-3-large"
}
获取知识库
# 通过ID获取知识库
kb = client.get_knowledge_base("kb-123")
# 通过名称获取知识库
kb = client.get_knowledge_base_by_name("产品手册")