立刻智能体平台 API 文档

通过标准 API 将智能体能力集成到您的业务系统,支持流式与非流式输出。

Version 1.3

概述

立刻智能体平台提供统一的 HTTP API 接口,允许外部系统通过标准 HTTP 请求调用 AI 智能问答能力。系统基于知识库向量检索 + 大语言模型的 RAG 架构,确保回答精准可靠。

调用流程

准备凭证
Customer Code + API Key
选择模板
获取 Template ID
发送请求
提交用户问题
获取回答
流式/非流式输出

Base URL

https://agent.likelic.com/api/v1

认证方式

所有 API 请求必须在 HTTP Headers 中携带以下两个认证字段,且两个凭证必须属于同一企业:

Header说明格式要求示例
X-Customer-Code 客户唯一代码(由管理员分配) 1-50 位字母、数字、下划线或短横线 demo_company
X-API-Key API 访问密钥(在控制台 API 设置中创建) sk- 开头,后跟 48 位十六进制字符 sk-a1b2c3d4e5f6...

认证校验规则

校验项说明
格式校验Customer Code 和 API Key 均需符合上述格式,否则返回 401
归属校验API Key 必须属于该 Customer Code 对应的企业,否则返回 403
有效期校验如果 API Key 设置了过期时间,过期后将返回 403
状态校验API Key 被禁用后将返回 403
安全提示:API Key 是敏感凭证,请勿在前端代码、公开仓库或日志中暴露。建议通过后端服务代理调用,并定期轮换密钥。

智能对话接口 Core

POST /api/v1/chat

向智能体发送问题并获取 AI 回答。支持指定提示词模板和流式/非流式输出模式。

请求参数 (JSON Body)

请求限制:请求体大小不得超过 100KB。
字段类型必填说明
question string 必填 用户提出的问题内容。不可为空字符串,最大长度 800 个字符。
template_id string 可选 指定提示词模板 ID(18-32 位字母数字组合)。不传或留空则使用用户后台设置的默认模板。可在控制台「提示词管理」中查看每个模板的 ID。
session_id string 可选 会话 ID(最长 36 位)。传入相同的 session_id 可将多次连续对话归组为同一会话,在控制台「对话日志」中合并展示。非流式模式下,首次对话不传此参数,系统将自动生成并在响应中返回;流式模式下,若需记录连续会话,应在首次请求就传入,客户端自行生成 UUID,因为流式返回的内容不包含 session_id。
stream boolean 可选 是否启用流式输出。默认 false。设为 true 时以 SSE (Server-Sent Events) 格式逐字返回。

关键词转人工(企业微信)

若企业已在控制台配置「企业微信 → 人工客服转接」(开启转人工推送并填写群机器人 Webhook、触发词),则开放 API 与网页组件、控制台 Chat 共用同一套触发词:当用户 question包含任一条触发词时,本次请求不会调用大模型,而是创建/续接人工会话,并向企微群推送卡片。

  • session_id:首条转人工请求可不传,响应中的 session_id 须保存;后续用户与人工沟通过程中请继续传入同一 session_id,追问会推送到同一企微群线程。
  • 响应:data.human_mode === true 表示已进入人工模式;data.answer 为提示文案;data.human_session_db_id 为内部会话主键(与群内卡片「会话记录ID」一致,供排障或对接工单)。
  • 退出人工:用户发送结束类话术(与控制台人工会话一致)且传入当前 session_id 时,可结束会话并回到 AI。
  • 流式:转人工在流式、非流式下均在调用模型之前判定;命中转人工时返回普通 JSON(非 SSE)。
  • 按 API Key 控制:专业版及以上在「API 设置 → 管理密钥权限」中可关闭某密钥的转人工,或指定仅使用某条企微「人工客服转接」配置(多配置时避免串线)。基础版(Lite)无企业微信菜单,亦不展示该项,开放 API 侧沿用默认转人工策略(若企业未配企微则不会命中)。

非流式输出 (stream: false)

完整等待模型生成后一次性返回结果,适用于后台任务、批处理等场景。

请求示例(首次对话)

curl -X POST https://agent.likelic.com/api/v1/chat \
  -H "Content-Type: application/json" \
  -H "X-Customer-Code: your_customer_code" \
  -H "X-API-Key: sk-your-api-key-here" \
  -d '{
    "question": "你们的退货政策是什么?",
    "template_id": "Abc123Def456GhiJkl789Mnop"
  }'

请求示例(多轮对话,续接会话)

curl -X POST https://agent.likelic.com/api/v1/chat \
  -H "Content-Type: application/json" \
  -H "X-Customer-Code: your_customer_code" \
  -H "X-API-Key: sk-your-api-key-here" \
  -d '{
    "question": "那退款需要多长时间到账?",
    "template_id": "Abc123Def456GhiJkl789Mnop",
    "session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }'

响应示例

{
  "success": true,
  "data": {
    "answer": "根据我们的退货政策,您可以在收到商品后 7 天内申请无理由退货...",
    "session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "sources": [
      {
        "question": "退货政策有什么规定?",
        "score": 0.92
      }
    ],
    "model": "qwen-plus",
    "tokensUsed": 486,
    "responseTime": 1523
  }
}

响应字段说明

字段类型说明
successboolean请求是否成功
data.answerstringAI 生成的回答内容
data.session_idstring会话 ID。首次对话由系统自动生成,后续对话请回传此值以续接同一会话
data.sourcesarray命中的知识库条目及匹配分数
data.modelstring本次使用的模型名称
data.tokensUsednumber本次消耗的 Token 总量
data.responseTimenumber端到端响应时间 (毫秒)
data.human_modeboolean可选。为 true 时表示本请求已走关键词转人工,未调用大模型
data.human_session_db_idnumber可选。人工会话在系统中的主键 ID,与企微卡片「会话记录ID」一致
data.session_endedboolean可选。用户结束人工会话时为 true

人工客服回复轮询 GET /api/v1/human-replies

human_modetrue 且拿到与 /chat 相同的 session_id 后,可用本接口轮询企微群内回复。鉴权与 Chat 一致:X-Customer-CodeX-API-Key

查询参数

参数说明
session_id必填,与对话接口一致,最长 36 字符
since_id可选,默认 0。仅返回 id > since_id 的消息(与控制台/组件 human-replies 行为一致)

响应 data.messages[]

字段说明
id消息主键,下次请求作 since_id
content正文
wechat_from_user企微侧发送者标识;系统提示(如会话超时结束)为 __system__。前端展示建议:人工客服 {wechat_from_user}:{content},系统消息可仅展示 content
created_at创建时间
curl -G "https://agent.likelic.com/api/v1/human-replies" \
  -H "X-Customer-Code: your_customer_code" \
  -H "X-API-Key: sk-your-api-key-here" \
  --data-urlencode "session_id=a1b2c3d4-e5f6-7890-abcd-ef1234567890" \
  --data-urlencode "since_id=0"

流式输出 (stream: true)

以 SSE (Server-Sent Events) 格式实时推送生成内容,适用于前端实时展示打字效果等交互场景。

提示:流式模式下,若需记录连续会话,应在首次请求就传入 session_id(客户端自行生成 UUID),因为流式返回的内容不包含 session_id,无法像非流式那样从响应中获取。

请求示例(流式 + 首次会话,需传入 session_id 以记录连续对话)

curl -X POST https://agent.likelic.com/api/v1/chat \
  -H "Content-Type: application/json" \
  -H "X-Customer-Code: your_customer_code" \
  -H "X-API-Key: sk-your-api-key-here" \
  -d '{
    "question": "如何申请退款?",
    "template_id": "Abc123Def456GhiJkl789Mnop",
    "session_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "stream": true
  }'

流式响应格式

响应 Content-Type 为 text/event-stream,数据以 SSE 格式逐行推送:

data: {"content":"根据"}

data: {"content":"我们"}

data: {"content":"的退货"}

data: {"content":"政策,"}

data: {"content":"..."}

data: [DONE]
提示:流式模式下,每个 data: 行包含一个 JSON 对象,其中 content 字段为增量文本片段。当收到 data: [DONE] 时表示生成完毕。

JavaScript 流式调用示例

// 若需记录连续会话,流式首次请求需传入 session_id(流式响应不包含 session_id)
const sessionId = crypto.randomUUID();
const response = await fetch('https://agent.likelic.com/api/v1/chat', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-Customer-Code': 'your_customer_code',
    'X-API-Key': 'sk-your-api-key-here'
  },
  body: JSON.stringify({
    question: '如何申请退款?',
    template_id: 'Abc123Def456GhiJkl789Mnop',
    session_id: sessionId,
    stream: true
  })
});

const reader = response.body.getReader();
const decoder = new TextDecoder();
let result = '';

while (true) {
  const { done, value } = await reader.read();
  if (done) break;

  const chunk = decoder.decode(value);
  const lines = chunk.split('\n');

  for (const line of lines) {
    if (line.startsWith('data: ') && line !== 'data: [DONE]') {
      const json = JSON.parse(line.slice(6));
      result += json.content;
      console.log(json.content); // 实时输出
    }
  }
}

Python 调用示例

import requests
import json

url = "https://agent.likelic.com/api/v1/chat"
headers = {
    "Content-Type": "application/json",
    "X-Customer-Code": "your_customer_code",
    "X-API-Key": "sk-your-api-key-here"
}

# 非流式调用(首次对话,不传 session_id)
resp = requests.post(url, headers=headers, json={
    "question": "你们的退货政策是什么?",
    "template_id": "Abc123Def456GhiJkl789Mnop"
})
data = resp.json()["data"]
session_id = data["session_id"]  # 保存用于后续多轮对话
print(data["answer"])

# 多轮对话(传入首次返回的 session_id)
resp = requests.post(url, headers=headers, json={
    "question": "那退款需要多长时间到账?",
    "template_id": "Abc123Def456GhiJkl789Mnop",
    "session_id": session_id
})
print(resp.json()["data"]["answer"])

# 流式调用(若需记录连续会话,首次请求需传入 session_id,因流式响应不包含 session_id)
import uuid
stream_session_id = str(uuid.uuid4())
resp = requests.post(url, headers=headers, json={
    "question": "还有其他注意事项吗?",
    "template_id": "Abc123Def456GhiJkl789Mnop",
    "session_id": stream_session_id,
    "stream": True
}, stream=True)

for line in resp.iter_lines():
    if line:
        decoded = line.decode("utf-8")
        if decoded.startswith("data: ") and decoded != "data: [DONE]":
            data = json.loads(decoded[6:])
            print(data["content"], end="", flush=True)

知识库写入接口 KB

POST /api/v1/knowledge/entries

从外部系统向本企业知识库新增一条问答对,鉴权与 Chat 相同(X-Customer-Code + X-API-Key)。校验通过后先写入 MySQL并立即返回成功;向量嵌入与 Qdrant 同步在后台异步执行(与控制台 Excel 批量导入的第二阶段一致),稍后在智能对话中即可检索到该条。

配额:受当前方案「知识库条数」「分类个数」限制;若需新增的分类数已达上限,请使用已有分类名称。若方案不支持配图,请勿传 answer_image

请求参数 (JSON Body)

本接口请求体上限 512 KB(大于通用 v1 的 100 KB)。

字段类型必填说明
question string 必填 问题内容,trim 后非空,最大 800 字符。
answer string 必填 答案正文,trim 后非空,最大 5000 字符。
category string 必填 分类名称,最大 20 字符。若该名称在库中已存在则归入该分类;若为新分类且当前方案下分类数已达上限,将返回 403 并附带已有分类列表。
answer_image string 可选 答案配图,须为可访问的 http(s) 图片 URL,最大 2048 字符。仅专业版及以上支持;基础版传入将返回 403
keywords string 可选 关键词,多个关键词用英文逗号 , 分隔(不可用中文逗号)。整段字符串最大 200 字符;单个关键词最长 20 字符;最多 10 个关键词。
created_by string 可选 对接方自定义的创建人标识(如对方系统用户名),最大 100 字符;便于与控制台「创建人」列对齐审计。

成功响应示例

{
  "success": true,
  "data": {
    "id": 12345,
    "category": "产品说明",
    "created_by": "crm_sync",
    "updated_by": null,
    "vector_sync": "queued",
    "message": "Entry saved to database. Vector embedding sync runs asynchronously; ..."
  }
}

配额不足示例(403)

{
  "success": false,
  "message": "Knowledge base entry limit reached for your plan (...)",
  "data": { "limit": 10000, "current": 10000, "remaining": 0 }
}
{
  "success": false,
  "message": "Cannot create new category: ...",
  "data": {
    "max_categories": 10,
    "current_category_count": 10,
    "existing_categories": ["分类A", "分类B"]
  }
}

请求示例

curl -X POST https://agent.likelic.com/api/v1/knowledge/entries \
  -H "Content-Type: application/json" \
  -H "X-Customer-Code: your_customer_code" \
  -H "X-API-Key: sk-your-api-key-here" \
  -d '{
    "question": "如何重置密码?",
    "answer": "请在登录页点击「忘记密码」并按邮件指引操作。",
    "category": "账户与安全",
    "keywords": "password,reset,login",
    "answer_image": "https://example.com/help/screenshot.png"
  }'

更新单条知识(PUT)

PUT /api/v1/knowledge/entries/:id

使用创建接口返回的 data.id 作为路径参数 :id,更新同一条问答。请求体字段与 POST 相同,另可选传 updated_by(最大 100 字符)作为本次修改人标识。若不传 answer_image,则保留该条原有配图。

字段类型必填说明
updated_by string 可选 本次更新的操作者标识,最大 100 字符。

更新成功响应示例

{
  "success": true,
  "data": {
    "id": 12345,
    "category": "产品说明",
    "created_by": "crm_sync",
    "updated_by": "operator_a",
    "vector_sync": "queued",
    "message": "Entry updated. Vector embedding sync runs asynchronously; ..."
  }
}
curl -X PUT https://agent.likelic.com/api/v1/knowledge/entries/12345 \
  -H "Content-Type: application/json" \
  -H "X-Customer-Code: your_customer_code" \
  -H "X-API-Key: sk-your-api-key-here" \
  -d '{
    "question": "如何重置密码?",
    "answer": "请在登录页点击「忘记密码」并按邮件指引操作。",
    "category": "账户与安全",
    "keywords": "password,reset",
    "updated_by": "operator_a"
  }'

合作客商写入 WEWORK PARTNER

POST /api/v1/wework/partner-companies/import

从外部系统批量写入合作客商主数据,鉴权与 Chat 相同(X-Customer-Code + X-API-Key)。按 (租户, company_code) upsertcompany_code 已存在则合并更新,不存在则新增。行为与控制台「导入合作公司」Excel 导入完全一致。

启用方式:本能力默认关闭。需在控制台 → 系统设置 →「开放 API 权限」启用「合作客商写入」并授权至少一个 API Key(或在「合作公司」页「API 导入设置」中配置)。未启用或调用方 Key 未获授权时返回 403。控制台 Excel 导入不受此开关影响。
覆盖提示:upsert 为整行覆盖更新——同一 company_code 再次写入会覆盖销售、跟踪人、状态等已维护字段。无软删/版本机制,请确保来源数据准确。

请求参数 (JSON Body)

顶层字段 rows 为数组,非空且不超过 5000 行;每行字段如下:

字段类型必填说明
company_code string 必填 租户内唯一键,最大 64 字符。用于 upsert 定位:同一代码再次导入即更新该条。
company_name string 必填 公司全称,最大 255 字符。
company_short_name string 可选 公司简称,最大 128 字符。
sales_name string 可选 销售,最大 128 字符。
tracker_name string 可选 跟踪人,最大 128 字符。
company_status string 可选 合作状态。取中文 已合作 / 试用中 / 已过期,或枚举 cooperating / trial / expired;留空为未标记。传入非法值则该行被跳过。

行级校验

缺少 company_codecompany_name、或 company_status 非法的行会被跳过并计入 data.skipped,跳过原因逐条列在 data.errors(不影响其余有效行写入)。

请求示例

curl -X POST https://agent.likelic.com/api/v1/wework/partner-companies/import \
  -H "Content-Type: application/json" \
  -H "X-Customer-Code: your_customer_code" \
  -H "X-API-Key: sk-your-api-key-here" \
  -d '{
    "rows": [
      {
        "company_code": "C1001",
        "company_name": "示例科技有限公司",
        "company_short_name": "示例科技",
        "sales_name": "张三",
        "tracker_name": "李四",
        "company_status": "已合作"
      },
      {
        "company_code": "C1002",
        "company_name": "另一家公司",
        "company_status": "trial"
      }
    ]
  }'

成功响应示例

{
  "success": true,
  "data": {
    "inserted": 1,
    "updated": 1,
    "skipped": 0,
    "errors": []
  }
}

含跳过行的响应示例

{
  "success": true,
  "data": {
    "inserted": 2,
    "updated": 0,
    "skipped": 1,
    "errors": ["第 3 行:缺少公司代码"]
  }
}

错误示例

// 未启用 wework_partner,或调用方 Key 未获授权 → 403
{ "success": false, "message": "开放 API「合作客商写入」未在系统设置中启用" }
{ "success": false, "message": "当前 API Key 未被授权调用「合作客商写入」接口" }
// rows 缺失/非数组,或超过 5000 行 → 400
{ "success": false, "message": "缺少 rows 数组" }
{ "success": false, "message": "单次最多导入 5000 行" }

企微绩效议题同步 WEWORK QA

GET /api/v1/wework/qa/issues

供外部系统(如部门管理系统)轮询拉取已评分的企微绩效议题,写入自有业务库。鉴权与 Chat / 知识库相同(X-Customer-Code + X-API-Key),无需 IP 白名单

套餐:旗舰版(Ultra)且已开通「企微绩效」的租户可用。仅返回已有评分的议题(assess_statussuccessfailed 均返回);数据范围与控制台绩效看板一致(保留期内)。

查询参数(列表)

参数类型必填说明
sync_since string 可选 增量游标:返回 sync_at >= sync_since 的议题。格式 YYYY-MM-DDTHH:mm:ssYYYY-MM-DD HH:mm:ssYYYY-MM-DD(当天 00:00:00)。不传则全量分页拉取。
page int 可选 页码,从 1 开始,默认 1
limit int 可选 每页条数,默认 50,最大 100

列表按 sync_at ASC, id ASC 排序,便于增量游标推进。响应 metapagelimittotalretention_from(生效保留起始日);传入 sync_since 时另回显 meta.sync_since

列表响应 data[] 字段

字段类型说明
idnumber议题唯一 ID,建议作为对方系统 source_id 做幂等 upsert
company_namestring \| null群所属公司全称;若未维护则回退为企微群名称
company_statusstring \| null客户合作状态:已合作 / 试用中 / 已过期(未设置时为 null
summarystring \| null议题摘要
start_timestring议题在群聊中的开始时间
customer_namestring \| null客户展示名
statusstringopen / resolved / timeout
score_totalnumber \| null综合质量分 0–100;评分失败时为 null
assess_statusstringsuccess / failed
primary_staff_namestring \| null主责员工姓名(有效回复数最高;并列取第一个)
staffsarray参与员工:nameeffective_reply_count
created_atstring议题入库时间(可作对方系统创建时间)
sync_atstring增量游标:末次值得同步的变化时间(状态变更 / 首次评分 / 人工重评)
字段映射:类型、备注等业务字段由对接方自行决定,本接口不提供。员工标识仅返回姓名,账号映射由对方系统处理。

列表响应示例

{
  "success": true,
  "data": [
    {
      "id": 12345,
      "company_name": "示例科技有限公司",
      "company_status": "已合作",
      "summary": "客户反馈产品无法登录",
      "start_time": "2026-06-24T10:30:00",
      "customer_name": "张三",
      "status": "resolved",
      "score_total": 85,
      "assess_status": "success",
      "primary_staff_name": "李四",
      "staffs": [
        { "name": "李四", "effective_reply_count": 3 },
        { "name": "王五", "effective_reply_count": 1 }
      ],
      "created_at": "2026-06-24T10:35:00",
      "sync_at": "2026-06-24T10:40:00"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 50,
    "total": 128,
    "retention_from": "2026-05-25",
    "sync_since": "2026-06-24T10:00:00"
  }
}

推荐同步流程

  1. 首次全量:不传 sync_since,按 page 分页直至 data 为空;每条以 id upsert。
  2. 增量轮询(建议 5–15 分钟):sync_since = 上次 max(sync_at) - 1 分钟(重叠防漏);同一 id 再次出现则 UPDATE。
  3. 停服恢复:沿用旧 sync_since 即可补回期间变更。
  4. 多页:同一 sync_since 下若 total > limit,继续 page=2,3,... 直至拉完本批。

请求示例(增量拉取)

curl -G "https://agent.likelic.com/api/v1/wework/qa/issues" \
  -H "X-Customer-Code: your_customer_code" \
  -H "X-API-Key: sk-your-api-key-here" \
  --data-urlencode "sync_since=2026-06-24T10:00:00" \
  --data-urlencode "page=1" \
  --data-urlencode "limit=100"

单条详情 GET /api/v1/wework/qa/issues/:id

GET /api/v1/wework/qa/issues/:id

返回字段与列表项相同,用于按 ID 补拉或校验。路径参数 :id 为议题 ID。

curl "https://agent.likelic.com/api/v1/wework/qa/issues/12345" \
  -H "X-Customer-Code: your_customer_code" \
  -H "X-API-Key: sk-your-api-key-here"

成功返回 { "success": true, "data": { ... } };不存在、未评分或超出保留期返回 404

错误码说明

状态码错误信息说明
400Question is required and must be a string请求体缺少 question 字段或类型不是字符串
400Question cannot be emptyquestion 为空字符串或仅包含空白字符
400Question exceeds maximum length of 800 characters问题内容超过 800 字符上限
400Invalid template_id formattemplate_id 格式不正确,应为 18-32 位字母数字组合
400Invalid session_id formatsession_id 格式不正确,应为字符串且最长 36 位
400Invalid template_id指定的 template_id 不存在
400Template does not belong to this customer该模板不属于当前企业
401Missing API Key or Customer Code in headers请求头缺少 X-API-KeyX-Customer-Code
401Invalid API Key formatAPI Key 格式不正确,应以 sk- 开头后跟 48 位十六进制字符
401Invalid Customer Code formatCustomer Code 格式不正确,仅允许字母、数字、下划线和短横线(1-50位)
403Invalid or disabled API KeyAPI Key 无效或已被禁用
403API Key has expiredAPI Key 已过有效期,请在控制台重新创建
403API Key does not match Customer CodeAPI Key 与 Customer Code 不属于同一企业
429Too many requests请求频率超过当前 API Key 设定的速率限制,请稍后重试
400question / answer / category / keywords …知识库写入接口字段校验失败(类型、长度、关键词分隔符、配图 URL 等),见 message
403Knowledge base entry limit reached …当前方案知识库条数已满,data.remaining 为 0
403Cannot create new category …无法新增分类(已达上限),请使用 data.existing_categories 中已有名称
403… does not support answer images …当前方案不支持知识库配图,请去掉 answer_image 或升级版本
400非法的 sync_since(…)企微绩效议题列表的 sync_since 格式不正确
400无效的议题 id详情路径参数 :id 不是正整数
403当前套餐未开通企微绩效非旗舰版或未开通企微绩效能力
404议题不存在、未评分或已超出保留期详情接口未找到可同步的议题
403开放 API「合作客商写入」未在系统设置中启用 / Key 未被授权合作客商写入未启用,或调用方 Key 不在授权列表
400缺少 rows 数组 / 单次最多导入 5000 行合作客商写入 rows 缺失、非数组或超过上限
500Internal server error服务端内部异常,请联系管理员

错误响应格式

{
  "success": false,
  "message": "具体错误描述"
}
注意:出于安全考虑,当服务端发生 500 错误时,响应中不会暴露内部错误详情,统一返回 "Internal server error"。如需排查请联系平台管理员查看服务端日志。

频率限制

为保障服务稳定性,每个 API Key 拥有独立的频率限制配置。系统在认证通过后,根据该 Key 的设定进行限流:

限流规则

限制维度限额说明
平台全局上限1000 次/分钟所有 API Key 不可超过此上限
单 Key 速率限制按 Key 配置创建 API Key 时可设置,默认 1000 次/分钟。实际生效值 = min(Key 配置值, 1000)
请求体大小100 KB(通用)/ 512 KBPOST /api/v1/knowledge/entries单次请求 JSON Body 的最大字节数
问题长度800 字符question 字段的最大字符数
示例:若您在控制台创建 API Key 时设置速率限制为 200 次/分钟,则该 Key 的实际限流为 200 次/分钟;若设置为 2000,则以平台上限 1000 次/分钟生效。

限流响应头

每次 API 请求的响应中都会包含以下 Headers,方便客户端感知当前额度:

Header说明
RateLimit-Limit当前 Key 在本窗口内允许的最大请求数
RateLimit-Remaining当前窗口内剩余可用请求数
RateLimit-Reset当前窗口重置的 Unix 时间戳(秒)
提示:建议客户端读取 RateLimit-Remaining 响应头,在剩余额度不足时主动降速,避免触发 429 限流。如需调整限额,可在控制台「API 密钥管理」中修改对应 Key 的速率设置。

最佳实践

安全建议

建议说明
使用后端代理切勿将 API Key 暴露在前端代码、移动端应用包或公开仓库中,通过后端服务转发请求
定期轮换密钥建议每 90 天轮换一次 API Key,旧密钥在过渡期后及时禁用或删除
最小权限原则为不同业务场景创建独立的 API Key,便于权限管控和用量追踪
设置过期时间为临时集成或外部合作场景的 API Key 设置合理的过期时间
监控异常调用关注控制台中的 API 调用日志,及时发现异常流量或未授权的调用行为

调用建议

建议说明
指定模板 ID不同业务场景使用不同提示词模板,获取更精准的回答效果
利用多轮会话首次对话保存返回的 session_id,后续追问时传入该值,同一会话的所有对话将在控制台中合并展示,便于追踪和复盘
启用流式输出面向用户的实时交互场景建议使用流式模式,提升用户体验
错误重试网络异常(5xx)时建议实现指数退避重试机制,最多重试 3 次。注意:400/401/403 错误无需重试
限流感知读取响应头中的 RateLimit-Remaining 字段,在剩余额度不足时主动降速
超时设置非流式请求建议设置 30 秒超时,流式请求建议 60 秒
输入预处理发送前对用户问题进行 trim 处理,去除首尾空白字符,减少无效 Token 消耗
议题增量同步id 幂等 upsert;增量用 sync_since(建议回拨 1 分钟重叠);轮询间隔 5–15 分钟;停服恢复后沿用旧游标即可补数据