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
curl -X POST https://echoai.best/api/v1/external/query \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"question":"差旅费报销有什么规定?"}'
Python
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
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
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/querykb:query知识库问答,同步返回答案与引用来源
POST/api/v1/external/sourcessource:write上传来源文件,异步进入知识编排
POST/api/v1/external/changeschange:create提交知识变更,进入人工审批流程

状态码

  • 401未携带密钥,或密钥无效/已被吊销
  • 403密钥缺少该接口所需的权限
  • 404知识库不在该密钥的授权范围内
  • 422参数不完整,例如未指定 knowledge_base_id
  • 429超出调用频率限制
  • 502上游模型服务暂时不可用,可直接重试

调用限制

  • 问答接口:单密钥 60 次/分钟、10000 次/天
  • 写入接口:单密钥 30 次/分钟、1000 次/天
  • 每次调用按平台口径消耗积分,余额不足会返回提示并暂停调用

6. 安全建议

  • 为每个集成单独创建密钥并写明用途,便于出问题时只吊销该密钥,不影响其他系统。
  • 按最小权限授予:只读用途不要给写入权限;限定到具体知识库,避免越权读取。
  • 密钥只存放在服务端环境变量或密钥管理服务中,不要提交到代码仓库、前端代码或聊天记录。
  • 定期轮换;怀疑泄露时立即吊销并重建。
  • 不要把密钥、口令、个人隐私等敏感信息写入知识库。

需要开通或协助接入,请联系我们的团队。