RK API 文档 返回平台

LLM 文本对话接口

文档版本:v1.0 | 日期:2026-11-07 | 适用:intel-link.com
平台文本模型遵循 OpenAI Chat Completions 规范,现有 OpenAI SDK 客户端改 BaseURL 与 Key 即可直接使用。


一、概览

项 值
端点 POST https://intel-link.com/v1/chat/completions
模型列表 GET https://intel-link.com/v1/models
协议 OpenAI 兼容,同步返回,支持流式
鉴权 Authorization: Bearer sk-...

平台层不改写请求/响应字段,OpenAI 规范中的参数可直接透传。本文只说明平台层的差异点——即报文规范之外、只有在本平台才会遇到的问题。


二、快速开始

2.1 准备工作

  1. 在 https://intel-link.com 注册账号
  2. 进入「API 密钥」页创建令牌,复制 sk- 开头的密钥
  3. 确认目标模型在你令牌所属分组的可用范围内(见「模型广场」)

2.2 最小请求

curl https://intel-link.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxx" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "messages": [
      {"role": "user", "content": "用三句话说明什么是大模型推理加速"}
    ],
    "stream": false
  }'

2.3 响应(节选)

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "created": 1793102708,
  "model": "deepseek-v4.1-flash",
  "choices": [
    {
      "index": 0,
      "message": {"role": "assistant", "content": "..."},
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 128,
    "completion_tokens": 96,
    "total_tokens": 224,
    "prompt_tokens_details": {"cached_tokens": 64}
  }
}

cached_tokens 字段名以实际上游返回为准;如未返回,可视为本次无缓存命中。


三、平台层差异点(重要)

3.1 模型名必须用平台注册名

model 字段须填平台注册的模型 ID(见文档中心模型清单)。名称不存在或不在令牌分组内,返回:

400 model_not_found
"No available channel for model xxx under group <分组名>"

3.2 custom-local: 前缀

部分客户端(如自建模型配置型客户端)会给模型名自动加 custom-local: 前缀。平台已为对外模型建立同名别名,因此:

  • deepseek-v4.1-flash ✅
  • custom-local:deepseek-v4.1-flash ✅

两者都能正常路由到同一模型,客户端无需修改配置。若你使用自定义模型名,请联系平台管理员登记。

3.3 令牌分组锁定

令牌的分组在创建时确定,只能选择账号自身所属分组,平台已在服务端强制校验。若需调用其他分组的模型,请使用对应账号或在团队后台申请调整。

3.4 Token 计量口径

字段 说明
prompt_tokens 已包含缓存命中的 token
cached_tokens 缓存命中部分
非缓存输入量 prompt_tokens − cached_tokens

⚠️ 自行核算成本时,直接使用 prompt_tokens 会把缓存部分重复计一次。平台侧计费与用量展示均已按 prompt_tokens − cached_tokens 处理。

3.5 计费

项 口径
预扣 请求前按输入 token 预扣,响应后按实际结算
失败 请求失败原路全额退款,不会"失败照扣"
对账 按月与上游账单核对,多退少补,可能产生正/负调整
单价 以「模型广场」实时价格为准
缓存计价 缓存命中部分单独计价,低于普通输入

四、错误码

HTTP code / 现象 原因 处理
401 — 令牌缺失 / 无效 / 已停用 / 额度耗尽 检查 sk- 前缀、Bearer 头、令牌状态与余额
400 model_not_found 模型名错误或不在分组内 核对模型 ID 与令牌分组
400 invalid_request_error 请求体格式错误 检查 JSON 合法性与必填字段
403 AccountOverdueError 账户余额不足 充值后重试
403 model_not_allowed 模型未对企业开放(企业版) 联系企业管理员开通白名单
429 enterprise_quota_exceeded 企业月度配额用尽 联系企业管理员或平台客服
429 rate_limit_exceeded 触发频率限制 降低并发或加重试退避
502 HTML 页面 平台重启窗口(约 1~2 秒) 识别非 JSON 响应并指数退避重试

⚠️ 502 陷阱:该场景返回 nginx HTML,不是 JSON。有客户端会把 HTML 502 误渲染为「配额不足」,请在代码中先判断 Content-Type 或 response.ok。


五、完整示例(Python + OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    base_url="https://intel-link.com/v1",   # 注意:SDK 场景必须带 /v1
    api_key="sk-xxxxxxxx",
)

resp = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[
        {"role": "system", "content": "你是严谨的技术助理,回答简洁。"},
        {"role": "user", "content": "解释一下 HTTP 502 和 504 的区别"},
    ],
    stream=False,
)
print(resp.choices[0].message.content)
print(resp.usage)   # 含 prompt_tokens / completion_tokens

流式

stream = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[{"role": "user", "content": "写一段 200 字的产品简介"}],
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

六、常见问题

Q1:报 401,但令牌看起来是对的?
依次检查:① 是否 sk- 开头;② 是否放在 Authorization: Bearer 头;③ 令牌是否被停用;④ 余额是否耗尽。以上均正常仍 401 请联系平台管理员。

Q2:能调通 qwen3.8-max,但 qwen3.7-max 报错?
模型可用范围随令牌分组不同。qwen3.7-max 等型号已不在对外名单内,请使用当前可用模型。

Q3:为什么我算的费用和平台显示不一样?
常见原因是把 prompt_tokens(含缓存)当成了计费输入量。请用 prompt_tokens − cached_tokens,并注意缓存与输出单价不同。

Q4:并发有上限吗?
平台未对单个令牌设定固定硬上限,但请求量异常会触发流控(429)。视频类长时间任务请控制并发,避免额度被瞬时占满。

Q5:支持哪些参数?
请求体遵循 OpenAI Chat Completions 规范,messages / stream / temperature / max_tokens 等常用字段可直接使用。个别上游模型对特定参数不敏感,属正常现象。


七、注意事项

  • 令牌安全:sk- 令牌等同账号凭证,禁止写入前端代码、公开仓库或客户端安装包;客户端请走服务端中转。
  • 错误处理:务必区分 JSON 错误与 HTML 502;对 429 / 5xx 使用指数退避。
  • 合规:输入输出均经平台安全审核,请勿提交违法违规内容。
  • 模型下线:不对外提供的型号将提前公示,请勿在生产环境依赖非名单内模型。

八、版本记录

版本 日期 说明
v1.0 2026-11-07 首版发布