Developer Docs
企业知识库 API 接入文档
用一个 API Key,把企业知识库接入你的系统、脚本或 AI 代理。 支持问答检索、上传资料、以及提交知识修改。
1. 获取 API Key
API Key 由企业管理台签发:登录管理台后进入 质量与治理 → API 密钥,创建密钥时选择权限范围与可访问的知识库。
密钥形如 kb_xxxxxxxx…,明文只在创建时显示一次,服务端只保存哈希,之后无法再次查看。丢失或泄露请吊销后重建。
创建时可以勾选以下权限:
| 权限 | 说明 |
|---|---|
kb:query | 知识库问答 |
kb:read | 按 ID 读取来源、变更与知识版本 |
source:write | 上传来源文件 |
change:create | 提交知识变更(仍需人工发布) |
给 AI 代理使用建议只授予 kb:query(只读问答)或按需加 source:write,并限定到具体知识库。
2. 快速开始:知识库问答
最常用的接口。租户身份由密钥本身携带,不需要登录,也不需要传租户标识。
curl -X POST https://echoai.best/api/v1/external/query \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"question":"差旅费报销有什么规定?"}'import os, requests
resp = requests.post(
"https://echoai.best/api/v1/external/query",
headers={"Authorization": f"Bearer {os.environ['API_KEY']}"},
json={"question": "差旅费报销有什么规定?"},
timeout=300,
)
data = resp.json()
print(data["answer"]){
"trace_id": "58b70c12-…",
"answer": "……模型生成的回答……",
"citations": [
{ "source": "index.md", "filename": "index.md" }
],
"usage": { "input_tokens": 3, "output_tokens": 34, "total_tokens": 37 },
"pricing": { "model": "openai/gpt-6.1-sol", "currency": "USD" }
}answer 是可直接使用的回答;citations 是命中的来源文件, 知识库中没有依据时可能为空。
这是同步接口,模型推理需要时间,通常 20~60 秒、繁忙时 1~2 分钟。 客户端超时请设置到 300 秒以上,不要用默认的 30 秒,否则会把成功当作失败。
3. 完善知识库:上传与修改
除了查询,还可以把内容写进知识库。两条路径的生效方式完全不同:
3.1 上传资料(推荐用于批量补齐)
上传的文件会成为知识库的来源,由后台自动编排成知识。
curl -X POST https://echoai.best/api/v1/external/sources \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: submit-001" \
-d '{
"knowledge_base_id": "<知识库ID>",
"filename": "员工手册.md",
"content": "# 员工手册\n正文内容……",
"content_type": "text/markdown"
}'{
"document_id": "2991d3b0-…",
"version_id": "bcabb7fc-…",
"version": 1,
"filename": "员工手册.md",
"ingestion_job_id": "ad3adec1-…",
"ingestion_status": "queued"
}这是异步接口:返回成功只代表任务已入队,内容还没有进知识库, 需要等后台编排完成。不要上传完立刻用问答接口验证。
建议带上 Idempotency-Key 请求头(任意唯一字符串)。同一个 key 重复提交只会入队一次, 重试是安全的。
3.2 修改已有知识
用于修订已收录的内容,或新建一个知识页面。提交后进入审批队列,由人在管理台「审批发布」中通过后才生效。
curl -X POST https://echoai.best/api/v1/external/changes \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"knowledge_base_id": "<知识库ID>",
"knowledge_item_id": "<可选,要修改的知识条目ID>",
"title": "员工手册 · 更新报销标准",
"proposed_content": "修改后的完整内容……"
}'外部密钥没有发布权限,创建密钥时也无法授予。 这是刻意的治理设计:外部系统可以提议修改,但不能绕过审核直接改动知识。
4. 交给 AI 代理维护知识库
把下面这段提示词连同 API Key 一起交给 AI 编码代理(如 Codex), 它就能帮你查资料、上传文档、并按流程提交修改。
你可以调用「飞链企业知识库」的外部 API:查资料、上传资料、提交修改。
【鉴权】所有请求都带同一个请求头:
Authorization: Bearer $API_KEY
Content-Type: application/json
【一、问答】需要资料时先查知识库,不要凭记忆作答
POST https://echoai.best/api/v1/external/query
Body: {"question": "要问的问题"}
返回 answer(可直接使用)和 citations(命中的来源文件)。
这是同步接口,通常 20~60 秒,超时请设置到 300 秒以上。
如果 answer 明确说明知识库没有相关内容,如实告知用户,不要编造。
【二、上传资料】变成知识库的来源文件,会被自动编排成知识
POST https://echoai.best/api/v1/external/sources
Body: {"knowledge_base_id": "<KB>", "filename": "文件名.md",
"content": "完整文本", "content_type": "text/markdown"}
返回 201 和 ingestion_job_id,状态是 queued。
**这是异步的**:返回成功只代表任务已入队,内容还没进知识库,要等编排完成,
不要紧接着就用问答接口验证刚上传的内容。
建议带 Idempotency-Key 头(任意唯一字符串),重试时保持不变,可避免重复入库。
【三、修改已有知识】进入审批流
POST https://echoai.best/api/v1/external/changes
Body: {"knowledge_base_id": "<KB>", "knowledge_item_id": "<可选>",
"title": "变更标题", "proposed_content": "修改后的完整内容"}
返回 201,状态 submitted。
**不会立即生效**,必须有人在管理台「审批发布」中通过并发布。
所以提交完必须告诉用户:「已提交到审批队列,需要你在管理台发布后才生效」。
【必须遵守】
1. 一次提交一份文件或一条变更,不要合并成一大堆。
2. 不要上传密钥、口令、身份证号、手机号等敏感信息。
3. 修改已有内容前,先用问答接口确认现有内容,不要凭猜想覆盖。
4. 每次写入后如实报告:上传说明「已入队,等待编排」;变更说明「待人工发布」。
5. 限流:写入 30 次/分钟、1000 次/天,批量操作请分批。
【凭证】
API_KEY=<kb_ 开头的密钥>
知识库ID=<目标知识库的 ID>代理的能力边界如下,交给它之前建议先明确:
| 能力 | 是否支持 | 说明 |
|---|---|---|
| 问答查询知识库 | 支持 | 需要 kb:query |
| 上传资料进知识库 | 支持 | 异步编排,需要 source:write |
| 修改已有知识条目 | 支持 | 进审批队列,需要 change:create |
| 新建知识页面 | 支持 | 提交变更时不填 knowledge_item_id 即可 |
| 按 ID 复核自己提交的内容 | 支持 | 需要 kb:read |
| 列出知识库全部内容 | 不支持 | 无对外列表接口,请通过问答了解 |
| 绕过审批直接发布 | 不支持 | 外部密钥不授予发布权限,这是刻意的治理设计 |
5. 错误码与限流
接口清单
| 方法 | 路径 | 所需权限 | 说明 |
|---|---|---|---|
| POST | /api/v1/external/query | kb:query | 知识库问答,同步返回答案与引用来源 |
| POST | /api/v1/external/sources | source:write | 上传来源文件,异步进入知识编排 |
| POST | /api/v1/external/changes | change:create | 提交知识变更,进入人工审批流程 |
状态码
401未携带密钥,或密钥无效/已被吊销403密钥缺少该接口所需的权限404知识库不在该密钥的授权范围内422参数不完整,例如未指定 knowledge_base_id429超出调用频率限制502上游模型服务暂时不可用,可直接重试
调用限制
- 问答接口:单密钥 60 次/分钟、10000 次/天
- 写入接口:单密钥 30 次/分钟、1000 次/天
- 每次调用按平台口径消耗积分,余额不足会返回提示并暂停调用
6. 安全建议
- 为每个集成单独创建密钥并写明用途,便于出问题时只吊销该密钥,不影响其他系统。
- 按最小权限授予:只读用途不要给写入权限;限定到具体知识库,避免越权读取。
- 密钥只存放在服务端环境变量或密钥管理服务中,不要提交到代码仓库、前端代码或聊天记录。
- 定期轮换;怀疑泄露时立即吊销并重建。
- 不要把密钥、口令、个人隐私等敏感信息写入知识库。
需要开通或协助接入,请联系我们的团队。