Skip to content

请求体结构

本站兼容 OpenAI Chat Completions API 格式。无论你使用的上游是 OpenAI、Anthropic、Google Gemini 还是 xAI,都以同一套请求格式调用——中转层会自动处理协议转换。

NovelAI 绘图例外

下文的请求示例用于文本对话。通过 Chat Completions 调用 NovelAI 绘图时,只读取最后一条用户消息中的文字,不读取之前的对话,也不接受普通图片附件。需把完整绘图参数写入该消息,结构见 NovelAI Chat 请求规则

此入口的 max_tokens / max_completion_tokens 限制额外 Anlas(NovelAI 点数),不是输出长度,也不包含生图基础费用;氛围转移参考图请求不受该预算限制。具体条件见点数费用上限

最小可用请求

只需 modelmessages 两个字段即可发起一次对话:

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-4oclaude-sonnet-4-20250514gemini-2.5-pro

messages

对话消息数组,每条消息包含 rolecontent 两个字段。这是大模型理解上下文的唯一途径——模型本身不记忆历史对话,所有上下文必须通过此数组显式传入。

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_pnumber核采样参数,与 temperature 二选一调节即可,不建议同时修改
frequency_penaltynumber频率惩罚(-2 ~ 2),正值降低模型重复已出现词汇的概率
presence_penaltynumber存在惩罚(-2 ~ 2),正值鼓励模型谈论新话题
stopstring | array停止序列,模型生成到指定字符串时立即停止
toolsarrayFunction Calling 工具定义,让模型能调用外部函数

INFO

以上字段并非所有模型都支持。具体哪些参数可用取决于上游模型的能力。如果传入了模型不支持的参数,通常会被忽略或返回错误。