当前系统中所有可用的大语言模型,可通过 API 直接调用。
1. 概述
本服务是基于火山引擎 Coding Plan Pro 构建的大模型 API 代理转发平台,作为 Coding Plan 的下游服务,为您提供兼容 OpenAI 格式的 Chat Completions 接口。
您可以使用任何支持 OpenAI API 的客户端或 SDK 直接接入,无需修改代码。所有请求由 Coding Plan 上游处理,本系统负责鉴权、配额管理和请求转发。
当前支持的接口类型:对话补全(Chat Completions)。
📮 管理员联系方式:
2. 快速开始
2.1 获取 API 密钥
在左侧导航「密钥管理」页面点击「创建密钥」,生成一个以 sk-tr- 开头的 API 密钥。
密钥创建后仅展示一次,请妥善保存。每个用户最多创建 5 个密钥,可按项目或环境分别管理。
2.2 配置连接信息
将您的客户端配置为以下连接信息:
| Base URL: | 加载中...
|
| API Key: | sk-tr-xxxxxxxxxxxxxxxxxxxxxxxx(您创建的密钥) |
3. 鉴权方式
本系统使用 Bearer Token 鉴权,与 OpenAI 完全兼容:
Authorization: Bearer sk-tr-xxxxxxxxxxxxxxxxxxxxxxxx
请求头中的 API Key 对应您在「密钥管理」页面创建的密钥。
也支持在请求 URL 中传递参数:?api_key=sk-tr-xxxxxxxx
4. API 端点
本服务仅提供对话补全接口,路径与 OpenAI API 一致:
| 接口 | 路径 | 方法 | 说明 |
| Chat Completions | /v1/chat/completions | POST | 对话补全,支持流式(stream=true) |
| List Models | /v1/models | GET | 获取可用模型列表 |
请求参数
| 参数 | 类型 | 必填 | 说明 |
model | string | 是 | 模型 ID,在「可用模型」页面查看 |
messages | array | 是 | 对话消息列表,包含 role 和 content |
stream | boolean | 否 | 是否流式输出,默认 false |
max_tokens | integer | 否 | 最大输出 token 数,默认 4096 |
temperature | number | 否 | 采样温度,范围 0-2,默认 1.0 |
top_p | number | 否 | 核采样概率,范围 0-1,默认 1.0 |
stop | string/array | 否 | 停止标记,遇到后停止生成 |
frequency_penalty | number | 否 | 频率惩罚,范围 -2 到 2,默认 0 |
presence_penalty | number | 否 | 存在惩罚,范围 -2 到 2,默认 0 |
响应格式
响应格式与 OpenAI Chat Completions 兼容:
{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1712345678,
"model": "ark-code-latest",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "回复内容"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 50,
"completion_tokens": 100,
"total_tokens": 150
}
}
流式模式下,每个 chunk 的 choices[0].delta 包含增量内容,最终 chunk 的 finish_reason 为 "stop"。
5. 代码示例
5.1 Python(OpenAI SDK)
from openai import OpenAI
BASE_URL = "这里会自动填充"
client = OpenAI(
api_key="sk-tr-your-key-here",
base_url=BASE_URL
)
# 非流式请求
response = client.chat.completions.create(
model="ark-code-latest",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
# 流式请求
stream = client.chat.completions.create(
model="ark-code-latest",
messages=[{"role": "user", "content": "写一段冒泡排序"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
5.2 cURL
curl http://.../v1/chat/completions \
-H "Authorization: Bearer sk-tr-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "ark-code-latest",
"messages": [{"role": "user", "content": "Hello!"}]
}'
# 流式模式
curl http://.../v1/chat/completions \
-H "Authorization: Bearer sk-tr-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"model": "ark-code-latest",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": true
}'
5.3 Node.js(OpenAI SDK)
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'sk-tr-your-key-here',
baseURL: 'http://.../v1',
});
// 非流式
const response = await client.chat.completions.create({
model: 'ark-code-latest',
messages: [{ role: 'user', content: 'Hello!' }],
});
console.log(response.choices[0].message.content);
// 流式
const stream = await client.chat.completions.create({
model: 'ark-code-latest',
messages: [{ role: 'user', content: 'Hello!' }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || '');
}
5.4 Python 原生 requests
import requests
import json
url = "http://.../v1/chat/completions"
headers = {
"Authorization": "Bearer sk-tr-your-key-here",
"Content-Type": "application/json"
}
data = {
"model": "ark-code-latest",
"messages": [{"role": "user", "content": "Hello!"}]
}
resp = requests.post(url, headers=headers, json=data)
print(resp.json()["choices"][0]["message"]["content"])
6. 可用模型
在左侧导航「可用模型」页面可以查看当前所有可用的模型列表。
也可通过 API 获取:
curl http://.../v1/models \
-H "Authorization: Bearer sk-tr-your-key-here"
返回格式与 OpenAI 兼容:{"data": [{"id": "model-name", "object": "model"}, ...]}
7. 调用限制说明
本系统作为 Coding Plan 的下游服务,按照调用次数(而非 token 消耗)对用户进行配额管理。每个用户设有三个独立周期的调用上限,任一周期用完即返回 HTTP 429 错误:
| 限制类型 | 说明 | 重置周期 |
| 每5小时调用量 | 每5小时周期内的最大请求次数 | 每5小时(UTC 0:00/5:00/10:00/15:00/20:00) |
| 每周调用量 | 每周的最大请求次数 | 每周一 00:00 UTC |
| 每月调用量 | 每月的最大请求次数 | 每月1日 00:00 UTC |
各周期调用量相互独立计算,任一周期用完即停止服务直到重置。
8. 错误码说明
| HTTP 状态码 | 说明 | 处理方式 |
401 | API Key 无效或未提供 | 检查 API Key 是否正确,或在密钥管理页面重新创建 |
429 | 调用量超限或频率过高 | 查看仪表盘剩余调用量,等待周期重置,或联系管理员 |
500 | 上游服务错误 | 稍后重试,如持续失败请联系管理员 |
502 | 上游服务不可用 | 稍后重试 |
504 | 上游请求超时 | 稍后重试,或减小请求体 |
9. 常见问题
支持哪些模型?
在「可用模型」页面可查看当前系统所有可用模型。模型列表由管理员配置,会动态更新。
调用量用完了怎么办?
在仪表盘查看三个周期的调用量剩余情况。如所有周期均已用完,请联系管理员续费。部分周期用完不影响其他周期,等待周期重置后即可恢复。
流式请求如何计费?
流式请求(stream=true)按每次请求计 1 次调用量,与普通请求一致,按实际调用次数扣减。
收到 429 错误怎么办?
429 表示调用量已用完。在仪表盘查看剩余情况,如额度不足请联系管理员续费。如果是 RPM 限流,等待一分钟左右自动恢复。
密钥泄露了怎么办?
立即在「密钥管理」页面删除泄露的密钥,然后创建新密钥。旧密钥删除后立刻失效,无法继续使用。
是否支持第三方客户端(如 ChatBox、NextChat)?
支持。在第三方客户端中填写本系统的 Base URL 和您的 API Key 即可直接使用。兼容 OpenAI 格式的客户端均可接入。