文本生成(Chat Completions)
文本生成统一使用 POST /v1/chat/completions。平台不在此页面固定承诺某一批模型,实际可用模型请先查询 GET /v1/models。
核心参数
model:当前令牌返回的模型 ID。messages:按顺序传入的对话历史。max_completion_tokens:推荐使用的输出上限。max_tokens:兼容旧客户端的字段。stream:开启 SSE 流式输出。temperature、top_p、top_k、stop:按模型能力选择。tools、tool_choice:模型支持时启用工具调用。reasoning_effort:仅对支持推理强度的模型生效。
Python 示例
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.openfde.work/v1",
)
models = client.models.list()
model = next(m.id for m in models.data if m.id == "MiniMax-M3")
response = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "请用一句话介绍混合专家模型。"},
],
max_completion_tokens=512,
)
print(response.choices[0].message.content)
if getattr(response.choices[0].message, "reasoning_content", None):
print("reasoning available")
流式输出
stream = client.chat.completions.create(
model="MiniMax-M3",
messages=[{"role": "user", "content": "写一段产品介绍。"}],
max_completion_tokens=512,
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta
if delta.reasoning_content:
continue
if delta.content:
print(delta.content, end="")
不同推理模型的 SDK 对 reasoning_content 暴露方式可能不同;不要假设每个 chunk 都有 content。输出上限过小可能导致 finish_reason=length。
参数兼容边界
网关可以解析 OpenAI 通用字段,但适配器会根据上游能力转发、转换或忽略字段。新项目不要使用已被 OpenAI 生态淘汰的 functions / function_call,改用 tools / tool_choice。模型不支持的采样参数应删除后重试。
错误处理
401:令牌无效或不允许外部访问。403:模型白名单、分组或等级不允许。404:模型或路径不存在。429:额度、并发或上游限流。503:当前模型没有可用渠道。