主题
请求体结构
本站兼容 OpenAI Chat Completions API 格式。无论你使用的上游是 OpenAI、Anthropic、Google Gemini 还是 xAI,都以同一套请求格式调用——中转层会自动处理协议转换。
NovelAI 绘图例外
下文的请求示例用于文本对话。通过 Chat Completions 调用 NovelAI 绘图时,只读取最后一条用户消息中的文字,不读取之前的对话,也不接受普通图片附件。需把完整绘图参数写入该消息,结构见 NovelAI Chat 请求规则。
此入口的 max_tokens / max_completion_tokens 限制额外 Anlas(NovelAI 点数),不是输出长度,也不包含生图基础费用;氛围转移参考图请求不受该预算限制。具体条件见点数费用上限。
最小可用请求
只需 model 和 messages 两个字段即可发起一次对话:
json
{
"model": "gpt-4o",
"messages": [
{ "role": "user", "content": "你好" }
]
}完整请求示例
json
{
"model": "gpt-4o",
"messages": [
{ "role": "system", "content": "你是一个有用的助手" },
{ "role": "user", "content": "你好" }
],
"temperature": 0.7,
"max_tokens": 2048,
"stream": true
}核心字段说明
model
指定使用的模型名称。在主站「模型广场」中可查看所有可用模型及其价格。
模型名称必须精确匹配,大小写敏感。示例:gpt-4o、claude-sonnet-4-20250514、gemini-2.5-pro。
messages
对话消息数组,每条消息包含 role 和 content 两个字段。这是大模型理解上下文的唯一途径——模型本身不记忆历史对话,所有上下文必须通过此数组显式传入。
| role | 含义 | 必须 |
|---|---|---|
system | 系统提示词,定义模型的行为和人设 | 否 |
user | 用户的输入内容 | 是(至少一条) |
assistant | 模型的历史回复,用于多轮对话 | 否 |
多轮对话的工作方式
大模型是无状态的——每次请求都是独立的。要实现多轮对话,客户端需要把之前的对话历史全部塞进 messages 数组:
json
{
"model": "gpt-4o",
"messages": [
{ "role": "system", "content": "你是一个翻译助手" },
{ "role": "user", "content": "把 hello 翻译成中文" },
{ "role": "assistant", "content": "你好" },
{ "role": "user", "content": "再翻译成日语" }
]
}对话轮次越多,messages 数组越长,消耗的输入 Token 也越多。详见 Token 与计费。
客户端会自动处理
如果你使用 Cherry Studio、ChatBox 等客户端,它们会自动管理对话历史,你不需要手动拼接 messages。只有直接调用 API(如使用 SDK 或 curl)时才需要自己维护。
temperature
控制输出的随机性,取值范围 0 ~ 2:
| 值 | 效果 | 适用场景 |
|---|---|---|
0 | 几乎确定性输出,每次结果高度一致 | 代码生成、数据提取、事实问答 |
0.7(推荐默认) | 平衡创造性和准确性 | 日常对话、文案撰写 |
1 ~ 2 | 更随机、更有创造性 | 头脑风暴、创意写作 |
不传此字段时,模型使用其默认值(通常为 1)。
max_tokens
限制模型单次回复的最大 Token 数。注意这只限制输出长度,不包含输入消耗的 Token。
- 不设置时,模型会自行决定回复长度(受模型自身上下文窗口限制)
- 设置过小可能导致回复被截断
不同模型的参数名可能不同
部分新模型(如 OpenAI 的 o 系列推理模型)使用 max_completion_tokens 替代 max_tokens。如果你发现设置 max_tokens 无效或报错,尝试换用 max_completion_tokens。
stream
| 值 | 行为 |
|---|---|
true | 流式返回(SSE),模型边生成边推送,用户可以看到逐字输出 |
false | 等待模型生成完毕后一次性返回完整结果 |
绝大多数客户端默认使用流式模式。非流式模式在长回复时可能因等待时间过长而触发超时。
其他常用字段
| 字段 | 类型 | 说明 |
|---|---|---|
top_p | number | 核采样参数,与 temperature 二选一调节即可,不建议同时修改 |
frequency_penalty | number | 频率惩罚(-2 ~ 2),正值降低模型重复已出现词汇的概率 |
presence_penalty | number | 存在惩罚(-2 ~ 2),正值鼓励模型谈论新话题 |
stop | string | array | 停止序列,模型生成到指定字符串时立即停止 |
tools | array | Function Calling 工具定义,让模型能调用外部函数 |
INFO
以上字段并非所有模型都支持。具体哪些参数可用取决于上游模型的能力。如果传入了模型不支持的参数,通常会被忽略或返回错误。
