聊天补全
Token Factory 主要的推理接口,遵循 OpenAI 的聊天补全 schema。实例上的模型服务用你自己的 vLLM 提供同一路径,下面的请求过滤在那边都不适用。
POST
/v1/chat/completions
API Key 或会话
也可以通过 /api/v1/chat/completions 访问,两个路径是同一个接口。
| 参数 | 类型 | 说明 | |
|---|---|---|---|
model | string | 必填 | 要调用的模型。必须是 GET /v1/models 返回的某一个。 |
messages | array | 必填 | 到目前为止的对话。每一项有一个 role(system、user、assistant 或 tool)和 content。system 消息能放在哪因模型而异,见下文。 |
stream | boolean | 选填 | 以 server-sent events 流式返回。默认 false。 |
temperature | number | 选填 | 采样温度。越高越随机。 |
top_p | number | 选填 | 核采样阈值。 |
max_tokens | integer | 选填 | 回复生成的 token 上限。 |
presence_penalty | number | 选填 | 惩罚已出现过的 token。 |
frequency_penalty | number | 选填 | 按出现频次惩罚 token。 |
response_format | object | 选填 | {"type": "json_object"} 或一个 json_schema,适用于 json_output 为 true 的模型。 |
tools | array | 选填 | 工具定义,前提是模型支持工具调用。 |
tool_choice | string 或 object | 选填 | 模型可以或必须调用哪个工具。 |
reasoning_effort | string | 选填 | 控制思考长度。取值因模型而异,见下文对照表;已验证档位的模型都接受 low 和 medium。不传时是否思考也因模型而异。 |
reasoning.effort | string | 选填 | 同上,统一写法。不能和 reasoning_effort 同时用。 |
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,请求不会到达后端。模型自身产生的错误,例如上下文超长,会连同后端的状态码和信息原样返回。错误响应格式见错误。