接口文档
Lin模型开放平台(内测)提供 OpenAI 兼容的 API 接口,可直接使用官方 OpenAI SDK、LangChain 或任意兼容客户端接入。
概述
本平台 API 完全兼容 OpenAI 接口规范。您无需改造现有代码,只需把接入地址与 API Key 替换为本平台提供的值即可完成迁移。
- 对话接口:
POST /v1/chat/completions - 模型列表:
GET /v1/models - 请求格式:JSON(
Content-Type: application/json) - 认证方式:Bearer Token(API Key)
- 流式输出:支持(
"stream": true,SSE 协议)
当前平台提供两类模型能力:
- Lin0.5(对话):响应迅速,适合日常对话、问答、文本生成等场景。
- Lin0.5-plus(推理):开启深度思考,适合数学、逻辑、代码、复杂分析等需要推理能力的场景。
接入地址
所有 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,并支持随时禁用或删除。
支持模型
调用时将 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 | 是 | 对话消息列表,每个元素含 role(system/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 }'
-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 用量计费的方式,每次调用从账户余额中实时扣减:
- 计费公式:费用 = 输入 token 数 × 输入单价 + 输出 token 数 × 输出单价。
- 输入与输出分别计价,单价单位为「每百万 token」,具体价格见产品定价。
- token 用量由上游模型返回的
usage字段统计,输入按prompt_tokens、输出按completion_tokens计算。 - 每次成功调用都会写入「用量明细」,并实时更新对应模型的日统计。
- 调用前会进行原子预扣(按预估上限冻结余额),请求结束后再按实际用量补差。余额不足时请求会被直接拒绝。
402 Payment Required,错误码 insufficient_balance,此时请前往控制台充值后再调用。错误码
错误响应统一采用 OpenAI 兼容格式:
{
"error": {
"message": "错误描述",
"type": "invalid_request_error",
"code": "insufficient_balance"
}
}
| HTTP 状态码 | 错误码 | 含义 | 触发原因与处理建议 |
|---|---|---|---|
200 |
- | 成功 | 请求正常处理完毕。 |
400 |
invalid_request |
请求无效 | 请求体格式错误、缺少 model 或 messages 等必填字段。请检查 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 |
上游异常 | 上游模型服务异常或超时,错误信息会透传返回,可稍后重试;如持续失败请联系管理员。 |
常见问题
能否直接复用现有 OpenAI 代码?
可以。本平台完全兼容 OpenAI 接口规范,只需把 base_url 改为本平台的 /v1 地址、api_key 改为平台签发的 Key,即可直接使用。
推理模型和对话模型有什么区别?
对话模型(Lin0.5)响应快,适合一般问答;推理模型(Lin0.5-plus)会先做内部推理再作答,适合数学、代码、复杂逻辑类任务,单次耗时较长、token 用量较高。
流式模式下怎么统计 token?
最后一个 chunk([DONE] 之前)会携带 usage 字段,包含本次请求的完整 token 统计。
更多问题
请访问常见问题页面,或联系平台管理员。