#知识库 API
管理知识库、文档和向量检索。知识库用于为 Agent 提供领域知识上下文(RAG)。
基础路径: /v1/knowledge-bases
#知识库管理
#列出知识库
GET /v1/knowledge-bases
所需权限: read
#查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
page | number | 页码,默认 1 |
limit | number | 每页条数,默认 20,最大 100 |
projectId | string | 按项目筛选 |
#响应
json{
"data": [
{
"id": "kb_abc123",
"name": "产品文档库",
"description": "产品相关文档",
"documentCount": 15,
"embeddingModel": "text-embedding-ada-002",
"organizationId": "org_xxx",
"projectId": "proj_xxx",
"createdAt": "2026-01-10T08:00:00Z",
"updatedAt": "2026-02-15T12:00:00Z"
}
],
"meta": {
"total": 1,
"page": 1,
"limit": 20,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}
#获取知识库详情
GET /v1/knowledge-bases/:kbId
所需权限: read
#创建知识库
POST /v1/knowledge-bases
所需权限: write
#请求体
json{
"name": "产品文档库",
"description": "存储所有产品相关文档",
"embeddingModel": "text-embedding-ada-002",
"embeddingProvider": "openai",
"apiKeyConfigId": "config_xxx",
"chunkSize": 500,
"chunkOverlap": 50
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 知识库名称 |
description | string | 否 | 描述 |
embeddingModel | string | 否 | 向量模型 |
embeddingProvider | string | 否 | 向量模型提供商 |
apiKeyConfigId | string | 否 | API Key 配置 ID |
chunkSize | number | 否 | 分块大小 |
chunkOverlap | number | 否 | 分块重叠大小 |
#响应
HTTP 201 Created
#更新知识库
PATCH /v1/knowledge-bases/:kbId
所需权限: write
#请求体
json{
"name": "更新后的名称",
"description": "更新后的描述",
"settings": {}
}
#删除知识库
DELETE /v1/knowledge-bases/:kbId
所需权限: admin
#响应
json{
"id": "kb_abc123",
"deleted": true
}
#文档管理
#列出文档
GET /v1/knowledge-bases/:kbId/documents
所需权限: read
#响应
json{
"data": [
{
"id": "doc_xxx",
"name": "用户手册.pdf",
"status": "processed",
"chunkCount": 42,
"size": 1048576,
"createdAt": "2026-02-01T08:00:00Z"
}
],
"meta": {
"total": 1
}
}
#获取文档详情
GET /v1/knowledge-bases/:kbId/documents/:docId
所需权限: read
#上传文档
POST /v1/knowledge-bases/:kbId/documents
所需权限: write
使用 multipart/form-data 格式上传文件:
bashcurl -X POST "https://your-domain.com/v1/knowledge-bases/kb_abc123/documents" \
-H "X-API-Key: sk_your_api_key_here" \
-F "file=@./document.pdf"
#批量上传(URL)
POST /v1/knowledge-bases/:kbId/documents/batch
所需权限: write
#请求体
json{
"urls": [
"https://example.com/doc1.pdf",
"https://example.com/doc2.md"
],
"tags": ["product", "v2"]
}
#响应
HTTP 202 Accepted
json{
"data": [
{
"url": "https://example.com/doc1.pdf",
"status": "queued",
"documentId": "doc_xxx"
}
],
"meta": {
"total": 1,
"jobId": "job_xxx"
}
}
#删除文档
DELETE /v1/knowledge-bases/:kbId/documents/:docId
所需权限: admin
#响应
json{
"id": "doc_xxx",
"deleted": true
}
#导入任务
批量导入时会创建导入任务,用于跟踪处理进度。
#创建导入任务
POST /v1/knowledge-bases/:kbId/import-jobs
所需权限: write
使用 multipart/form-data 格式,支持文件上传和 URL 源:
| 字段 | 类型 | 说明 |
|---|---|---|
files | File[] | 上传的文件(最多 50 个) |
sources | string (JSON) | URL 源列表 |
options | string (JSON) | 导入选项 |
webhookUrl | string | 完成通知 URL |
#响应
HTTP 202 Accepted
#列出导入任务
GET /v1/knowledge-bases/:kbId/import-jobs
所需权限: read
#查询参数
| 参数 | 类型 | 说明 |
|---|---|---|
page | number | 页码,默认 1 |
limit | number | 每页条数,默认 20 |
#获取导入任务详情
GET /v1/knowledge-bases/:kbId/import-jobs/:jobId
所需权限: read
返回任务详情及关联的文档处理进度。
#取消导入任务
DELETE /v1/knowledge-bases/:kbId/import-jobs/:jobId
所需权限: admin
#响应
json{
"id": "job_xxx",
"status": "cancelled",
"cancelledDocuments": 3,
"alreadyProcessed": 2
}
#重试失败文档
POST /v1/knowledge-bases/:kbId/import-jobs/:jobId/retry
所需权限: write
#响应
json{
"id": "job_xxx",
"status": "processing",
"retriedDocuments": 2
}
#搜索
#搜索知识库
POST /v1/knowledge-bases/:kbId/search
所需权限: write
#请求体
json{
"query": "如何配置系统参数",
"topK": 5,
"scoreThreshold": 0.7,
"filters": {}
}
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
query | string | 是 | 搜索查询 |
topK | number | 否 | 返回的最大结果数,默认 5 |
scoreThreshold | number | 否 | 最低相似度阈值,默认 0.7 |
filters | object | 否 | 额外过滤条件 |
#响应
json{
"query": "如何配置系统参数",
"results": [
{
"documentId": "doc_xxx",
"documentName": "系统配置指南",
"content": "系统参数可以通过以下方式配置...",
"score": 0.95,
"metadata": {}
}
],
"totalResults": 1,
"searchTime": 0.125
}