跳转到内容

聊天补全

Token Factory 主要的推理接口,遵循 OpenAI 的聊天补全 schema。实例上的模型服务用你自己的 vLLM 提供同一路径,下面的请求过滤在那边都不适用。

POST /v1/chat/completions API Key 或会话

也可以通过 /api/v1/chat/completions 访问,两个路径是同一个接口。

参数类型说明
modelstring必填要调用的模型。必须是 GET /v1/models 返回的某一个。
messagesarray必填到目前为止的对话。每一项有一个 role(system、user、assistant 或 tool)和 content。system 消息能放在哪因模型而异,见下文。
streamboolean选填以 server-sent events 流式返回。默认 false。
temperaturenumber选填采样温度。越高越随机。
top_pnumber选填核采样阈值。
max_tokensinteger选填回复生成的 token 上限。
presence_penaltynumber选填惩罚已出现过的 token。
frequency_penaltynumber选填按出现频次惩罚 token。
response_formatobject选填{"type": "json_object"} 或一个 json_schema,适用于 json_output 为 true 的模型。
toolsarray选填工具定义,前提是模型支持工具调用。
tool_choicestring 或 object选填模型可以或必须调用哪个工具。
reasoning_effortstring选填控制思考长度。取值因模型而异,见下文对照表;已验证档位的模型都接受 low 和 medium。不传时是否思考也因模型而异。
reasoning.effortstring选填同上,统一写法。不能和 reasoning_effort 同时用。
Terminal window
curl https://developer.amd.com.cn/radeon/api/v1/chat/completions \
-H "Authorization: Bearer $RADEON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "DeepSeek-V4-Flash",
"messages": [
{"role": "system", "content": "You are a concise assistant."},
{"role": "user", "content": "What is ROCm?"}
],
"temperature": 0.7,
"max_tokens": 256
}'
{
"id": "chatcmpl-8f3b21d0",
"object": "chat.completion",
"created": 1756108800,
"model": "DeepSeek-V4-Flash",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "ROCm is AMD's open software platform for GPU computing..."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 24,
"completion_tokens": 118,
"total_tokens": 142
}
}

模型正常结束时,finish_reason 为 stop;达到 max_tokens 时为 length;需要调用工具时为 tool_calls。

推理模型会在 usage 里多返回 reasoning_tokens;命中前缀缓存时还会多返回 usage.prompt_tokens_details.cached_tokens。

设置 stream: true 后,会以 server-sent events 返回。每个事件带的是增量而不是整条消息,流以 data: [DONE] 结束。

from openai import OpenAI
client = OpenAI(
base_url="https://developer.amd.com.cn/radeon/api/v1",
api_key="rc-...",
)
stream = client.chat.completions.create(
model="DeepSeek-V4-Flash",
messages=[{"role": "user", "content": "Explain ROCm in two sentences."}],
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content
if delta:
print(delta, end="", flush=True)

平台不会缓冲流式响应,模型生成的 token 会立即发送给你。

非流式请求最长 10 分钟,超时后平台会终止请求。流式的话,这 10 分钟算的是两个分片之间的间隔,而不是整次生成的总时长。长生成应该用流式,既能看到进度,也能让连接保持活跃。

401 表示 API Key 无效。429 表示触发限流,见限流。502 或 503 表示后端不可达或已满载,请退避后重试。

模型名不在模型列表里时,网关 直接返回 400 和 Requested model <名称> not supported,请求不会到达后端。模型自身产生的错误,例如上下文超长,会连同后端的状态码和信息原样返回。错误响应格式见错误。