首页 产品定价 接口文档 常见问题

接口文档

Lin模型开放平台(内测)提供 OpenAI 兼容的 API 接口,可直接使用官方 OpenAI SDK、LangChain 或任意兼容客户端接入。

本平台当前处于内测阶段,接口与文档可能随时调整。

概述

本平台 API 完全兼容 OpenAI 接口规范。您无需改造现有代码,只需把接入地址与 API Key 替换为本平台提供的值即可完成迁移。

当前平台提供两类模型能力:

接入地址

所有 API 请求基于以下根地址,将其拼接到 OpenAI SDK 的 base_url 参数即可:

Base URL: http://ai.sdlcsg.com/v1
该地址即本平台站点根路径下的 /v1。请始终使用本平台提供的地址,不要填写第三方地址。

认证方式

所有请求都需要在 HTTP Header 中携带 API Key 进行认证,格式为以 sk- 开头的字符串:

Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

API Key 在登录后的控制台「API Key 管理」(即「我的密钥」)页面创建。每个账号可创建多个 Key,并支持随时禁用或删除。

API Key 等同于账户凭证,请妥善保管,切勿提交到代码仓库或公开环境。一旦怀疑泄露,请立即在控制台禁用并重新生成。

支持模型

调用时将 model 参数填写为下表的「模型标识(code)」。当前已上线的模型如下:

模型标识 (code) 名称 类型 上下文长度 说明
lin-0.5 Lin0.5 对话 32K tokens Lin0.5 对话模型,快速响应
lin-0.5-plus Lin0.5-plus 推理 128K tokens Lin0.5-plus 推理模型,深度思考
下方示例统一使用 lin-0.5 作为模型标识。如需调用推理模型,请把 model 替换为上表中对应的 code(如 lin-0.5-plus)。

请求参数

/v1/chat/completions 接口支持以下参数(兼容 OpenAI 规范):

参数 类型 必填 说明
model string 模型标识,取自上方「支持模型」表格的 code,例如 lin-0.5
messages array 对话消息列表,每个元素含 rolesystem/user/assistant)与 content
stream boolean 是否流式输出,默认 false。设为 true 时按 SSE 协议逐字返回。
temperature number 采样温度,范围 0 到 2,值越大输出越发散,默认由上游模型决定。
max_tokens integer 单次回复的最大生成 token 数,超出部分会被截断。
top_p number 核采样概率,与 temperature 二选一,通常只调一个。

调用示例

1. cURL(非流式)

curl -X POST http://ai.sdlcsg.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -d '{
    "model": "lin-0.5",
    "messages": [
      {"role": "system", "content": "你是一个乐于助人的助手。"},
      {"role": "user", "content": "你好,请用一句话介绍一下自己"}
    ],
    "stream": false
  }'

2. Python(OpenAI SDK)

先安装官方 SDK:

pip install openai

非流式调用:

from openai import OpenAI

client = OpenAI(
    api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    base_url="http://ai.sdlcsg.com/v1",
)

response = client.chat.completions.create(
    model="lin-0.5",
    messages=[
        {"role": "system", "content": "你是一个乐于助人的助手。"},
        {"role": "user", "content": "你好,请用一句话介绍一下自己"},
    ],
    stream=False,
)

print(response.choices[0].message.content)

3. Node.js(OpenAI SDK)

npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  baseURL: "http://ai.sdlcsg.com/v1",
});

const resp = await client.chat.completions.create({
  model: "lin-0.5",
  messages: [
    { role: "system", content: "你是一个乐于助人的助手。" },
    { role: "user", content: "你好,请用一句话介绍一下自己" },
  ],
});

console.log(resp.choices[0].message.content);

流式输出

在请求体中加入 "stream": true 即可启用流式返回。平台会按 SSE(Server-Sent Events) 协议,把模型生成的内容切成多个 chunk 逐步推送,适合做打字机效果或边生成边展示。

每个数据行以 data: 开头,内容是一个 JSON 片段;流结束时以 data: [DONE] 作为终止标记。

cURL(流式)

curl -N -X POST http://ai.sdlcsg.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -d '{
    "model": "lin-0.5",
    "messages": [{"role": "user", "content": "写一首关于春天的短诗"}],
    "stream": true
  }'
cURL 流式请求需加 -N(即 --no-buffer),否则输出会被缓冲,看不到逐步推送的效果。

Python(流式)

from openai import OpenAI

client = OpenAI(
    api_key="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    base_url="http://ai.sdlcsg.com/v1",
)

stream = client.chat.completions.create(
    model="lin-0.5",
    messages=[{"role": "user", "content": "写一首关于春天的短诗"}],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

响应结构

非流式响应

请求成功时返回 HTTP 200,body 为 JSON,结构兼容 OpenAI:

{
  "id": "chatcmpl-xxxxxx",
  "object": "chat.completion",
  "model": "lin-0.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "你好!我是一个AI助手。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 15,
    "completion_tokens": 12,
    "total_tokens": 27
  }
}

流式响应(SSE)

流式模式下,每个 chunk 形如:

data: {"choices":[{"delta":{"content":"你好"},"index":0}]}

data: {"choices":[{"delta":{"content":"!"},"index":0}]}

data: {"choices":[{"delta":{},"index":0,"finish_reason":"stop"}],"usage":{"prompt_tokens":5,"completion_tokens":3,"total_tokens":8}}

data: [DONE]

计费说明

本平台采用按 token 用量计费的方式,每次调用从账户余额中实时扣减:

余额不足时接口返回 402 Payment Required,错误码 insufficient_balance,此时请前往控制台充值后再调用。

错误码

错误响应统一采用 OpenAI 兼容格式:

{
  "error": {
    "message": "错误描述",
    "type": "invalid_request_error",
    "code": "insufficient_balance"
  }
}
HTTP 状态码 错误码 含义 触发原因与处理建议
200 - 成功 请求正常处理完毕。
400 invalid_request 请求无效 请求体格式错误、缺少 modelmessages 等必填字段。请检查 JSON 结构。
401 invalid_api_key 未授权 API Key 无效、已禁用或未在 Header 中提供。请到控制台核对 Key 是否正确。
402 insufficient_balance 余额不足 账户余额不足以完成本次请求,充值后重试。
404 model_not_found 模型不存在 model 参数不在支持列表内,请参照「支持模型」表格填写正确的 code。
429 rate_limit 请求过频 触发了速率限制,请降低并发或稍后重试。
500/502/503 upstream_error 上游异常 上游模型服务异常或超时,错误信息会透传返回,可稍后重试;如持续失败请联系管理员。
当上游模型返回错误时,平台会尽量原样透传错误信息,方便客户端排查。建议对 5xx 错误实现指数退避重试。

常见问题

能否直接复用现有 OpenAI 代码?

可以。本平台完全兼容 OpenAI 接口规范,只需把 base_url 改为本平台的 /v1 地址、api_key 改为平台签发的 Key,即可直接使用。

推理模型和对话模型有什么区别?

对话模型(Lin0.5)响应快,适合一般问答;推理模型(Lin0.5-plus)会先做内部推理再作答,适合数学、代码、复杂逻辑类任务,单次耗时较长、token 用量较高。

流式模式下怎么统计 token?

最后一个 chunk([DONE] 之前)会携带 usage 字段,包含本次请求的完整 token 统计。

更多问题

请访问常见问题页面,或联系平台管理员。