跳到主要内容

对话补全 API

Chat Completions 是平台最通用的对话入口。请求会先经过令牌、模型、分组和额度校验,再由对应渠道适配器转发。模型 ID 必须来自当前令牌的 GET /v1/models。

接口​

POST https://api.openfde.work/v1/chat/completions
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

请求参数​

参数类型必填当前说明
modelstring是当前令牌可见的模型 ID,例如 gpt-6-sol、MiniMax-M3。
messagesarray是按时间顺序排列的消息;支持 system、user、assistant、tool 等角色。
streamboolean否是否返回 SSE,默认 false。
stream_optionsobject否可请求 { "include_usage": true };是否由上游返回用量取决于渠道。
max_completion_tokensinteger否新模型和推理模型优先使用的输出上限。
max_tokensinteger否兼容字段;平台仍接收,但新接入建议迁移到 max_completion_tokens。
temperaturenumber否采样参数;具体范围和是否可调由模型决定。
top_pnumber否核采样参数;部分推理模型不接受或会忽略。
top_kinteger否部分渠道支持的候选数量参数,不是所有模型都支持。
stopstring/array否停止序列;最新推理模型可能不支持。
toolsarray否OpenAI 工具声明;只有模型和上游渠道支持时才会生效。
tool_choicestring/object否工具选择策略。
response_formatobject否结构化输出请求;能力取决于模型。
reasoning_effortstring否仅对支持推理强度的模型生效。
presence_penalty / frequency_penaltynumber否惩罚参数;由上游模型决定是否接受。
userstring否调用方用户标识。
ninteger否返回候选数量;渠道不支持时不要传入。

旧版 functions、function_call 字段仍可能被兼容层接收,但新代码应使用 tools 和 tool_choice。厂商私有字段不会因为网关能解析就自动得到所有渠道支持。

最小请求​

curl https://api.openfde.work/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-sol",
"messages": [
{"role": "user", "content": "请用一句话介绍你自己。"}
],
"max_completion_tokens": 256
}'

Python​

from openai import OpenAI

client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.openfde.work/v1",
)

response = client.chat.completions.create(
model="gpt-6-sol",
messages=[
{"role": "system", "content": "你是一个简洁、准确的助手。"},
{"role": "user", "content": "你好,请介绍一下你自己。"},
],
max_completion_tokens=512,
)

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

多轮和多模态消息​

{
"model": "gemini-3.1-pro-preview",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "请描述这张图片。"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/image.jpg"}
}
]
}
]
}

只有支持视觉输入的模型才能处理图片或视频内容;请先确认模型在当前令牌的列表中,并查看对应能力页。

非流式响应​

{
"id": "chatcmpl-xxx",
"object": "chat.completion",
"created": 1760000000,
"model": "gpt-6-sol",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!我是 AI 助手。",
"reasoning_content": "(推理模型可能返回)"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 20,
"completion_tokens": 12,
"total_tokens": 32
}
}

响应中的 model 可能是上游规范化后的名称。推理模型可能返回 reasoning_content;流式响应对应字段位于 choices[].delta.reasoning_content。当输出上限太小,可能出现 finish_reason: "length" 且正文为空。

流式响应​

设置 stream: true 后逐行读取 SSE:

data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"role":"assistant","content":"你好"},"finish_reason":null}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{"content":"!"},"finish_reason":null}]}
data: {"id":"chatcmpl-xxx","object":"chat.completion.chunk","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]

不要把 SSE 当作单个 JSON 解析;收到 data: [DONE] 后结束本次请求。

错误​

HTTP 状态码常见原因
400JSON、必填字段或模型参数不合法。
401API Key 无效、过期或禁止外部访问。
403模型白名单、分组、等级、IP 或企业权限不允许。
404请求路径错误;模型不存在通常以 OpenAI 错误对象返回。
429额度、并发、频率或上游限流。
500平台内部错误或响应解析失败。
503当前模型没有可用渠道。

参数迁移建议​

  • 用 max_completion_tokens 替代新项目中的 max_tokens。
  • 用 tools / tool_choice 替代旧的 functions / function_call。
  • 不要把 temperature、top_p、stop 等参数当作跨模型保证;模型不支持时删除它们。
  • 不要硬编码模型清单;启动时或定期查询 /v1/models。