文本与多模态#
OpenAI Chat 文本请求至少包含 model、messages 与正整数 max_tokens,输出上限不得超过目录中的 maxOutputTokens。对话历史按顺序追加到 messages 中,再发送下一次请求。型号必须来自本站服务端目录,协议、密钥权限与额度均满足才可调用。
常用参数#
| 参数 | 用途 | 说明 |
|---|---|---|
model |
具体型号 | 使用完整模型 ID |
messages |
对话内容 | 包含角色与消息内容 |
stream |
流式输出 | true 时按流式协议读取 |
max_tokens |
限制生成长度 | 本文的 OpenAI Chat 请求必填;为不超过目录 maxOutputTokens 的正整数,其他协议参数名不同 |
temperature |
调整输出随机性 | 部分推理型号不接受此参数 |
Python 示例#
以下示例使用 Python 标准库,在服务端读取环境变量。
python
import json
import os
from urllib.request import Request, urlopen
payload = {
"model": os.environ["AI_RELAY_MODEL"], # 目录中的真实 openai-chat 型号
"messages": [{"role": "user", "content": "帮我整理一份项目计划。"}],
"max_tokens": int(os.environ["AI_RELAY_MAX_TOKENS"]), # 不超过目录 maxOutputTokens
}
request = Request(
os.environ["AI_RELAY_BASE_URL"].rstrip("/") + "/chat/completions",
data=json.dumps(payload).encode("utf-8"),
headers={
"Authorization": "Bearer " + os.environ["AI_RELAY_API_KEY"],
"Content-Type": "application/json",
},
method="POST",
)
with urlopen(request, timeout=60) as response:
result = json.load(response)
print(result["choices"][0]["message"]["content"])
JavaScript 示例#
适用于支持 fetch 的 Node.js 服务端环境。代码读取环境变量,不在网页中填写真实密钥。
javascript
const baseURL = process.env.AI_RELAY_BASE_URL;
const apiKey = process.env.AI_RELAY_API_KEY;
const model = process.env.AI_RELAY_MODEL;
const maxTokens = Number(process.env.AI_RELAY_MAX_TOKENS);
if (!baseURL || !apiKey || !model || !Number.isSafeInteger(maxTokens) || maxTokens < 1) {
throw new Error("请配置接入地址、密钥、目录中的真实型号与允许的最大输出 Token");
}
const response = await fetch(baseURL.replace(/\/$/, "") + "/chat/completions", {
method: "POST",
headers: {
Authorization: "Bearer " + apiKey,
"Content-Type": "application/json",
},
body: JSON.stringify({
model,
messages: [{ role: "user", content: "帮我整理一份项目计划。" }],
max_tokens: maxTokens, // 不超过该型号目录 maxOutputTokens
}),
signal: AbortSignal.timeout(60000),
});
if (!response.ok) throw new Error("请求失败:" + response.status);
const result = await response.json();
console.log(result.choices[0].message.content);
流式与图像理解#
设置 stream: true 后,响应通常为 SSE 事件流,应逐段读取并在结束信号到达时完成对话;不能按普通完整 JSON 处理。
支持图像理解的文本模型可接收图文内容,但这不代表它能生成图片。图片输入格式与大小限制以对应接口说明为准。先在模型广场确认能力,再配置请求。

