创建对话请求(OpenAI)

Token Hubs 完全兼容 OpenAI 官方 POST /v1/chat/completions 规范,已接入 OpenAI 生态的团队通常只需将 base_url 与 api_key 切换到本平台即可复用现有代码,并支持流式与工具调用。

请求

Endpoint

POST https://api.token-hubs.com/v1/chat/completions

Headers

Authorization: string必填

Bearer Token,格式:Bearer YOUR_API_KEY

Content-Type: string必填

请求体格式,固定为 application/json

非流式调用
流式调用
curl -X POST 'https://api.token-hubs.com/v1/chat/completions' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
    "model": "gpt-5.5",
    "messages": [
        {"role": "developer", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"}
    ],
    "temperature": 0.7,
    "top_p": 0.9,
    "n": 1,
    "stream": false,
    "max_completion_tokens": 2000
}'

Request Body

参数按用途分组展示,常用参数默认展开,进阶参数收纳在底部折叠区,按需点开即可。

核心参数

当前对话的消息列表,按时间顺序排列。根据所选模型,messages 支持不同的消息类型(模态),例如文本、图片、音频等。

model: string必填

用于生成回复的模型 ID,例如 gpt-5.5 或 gpt-5-pro。不同模型在能力、性能和价格上有所差异,可参考模型指南选择合适的模型。

采样与生成控制

temperature: number

采样温度,范围 [0, 2],默认 1。值越高输出越随机,值越低越稳定可控。一般只调 temperature 或 top_p 其中一个。

top_p: number

核采样(nucleus sampling)的 top_p 参数,默认 1,控制只从累计概率质量前 p 的 token 中采样。

max_completion_tokens: integer | null

限制本次补全中最多能生成的 token 数(包括可见输出和推理 token)。

n: integer | null

为每个输入生成多少条候选结果,默认 1。计费会按照所有候选中的总生成 token 数计算。

frequency_penalty: number | null

取值范围 [-2.0, 2.0],默认 0。正值会根据某个 token 在当前文本中出现的频率对其进行惩罚,降低模型重复同一行文本的概率。

presence_penalty: number | null

取值范围 [-2.0, 2.0],默认 0。正值会惩罚已经出现过的 token,提高模型讨论新话题的倾向。

stop: string | array | null

最多 4 个停止序列,默认 null。当生成内容遇到这些序列时会立刻停止,返回内容不包含停止序列本身。

logit_bias: map

修改指定 token 出现在输出中的概率。是一个 "token ID → 偏置值" 的映射,偏置值范围为 [-100, 100],默认 null。

reasoning_effort: string

限制推理模型在"推理"上的投入程度,默认 medium,可选值包括 none、minimal、low、medium、high(不同模型支持的取值略有差异)。

verbosity: string

控制模型输出的详略程度,默认 medium,可选值包括 low、medium、high。

流式输出

stream: boolean | null

是否开启服务端推送(SSE)形式的流式输出,默认 false。

stream_options: object

流式输出的附加配置,仅在 stream: true 时生效,默认 null。

工具调用

可供模型调用的工具列表,支持自定义工具和函数工具。

控制模型在存在 tools 定义时如何选择工具调用:none、auto、required 或指定某个具体工具。

parallel_tool_calls: boolean

在使用工具调用时,是否允许模型并行调用多个工具,默认 true。

web_search_options: object

Web 搜索工具的配置,用于让模型在回答问题前主动检索互联网数据。

输出格式与多模态

指定模型必须输出的格式。

modalities: array

希望模型生成的输出类型。大多数模型默认只生成文本:["text"]。支持多模态的模型可以返回文本 + 音频等,例如 ["text", "audio"]。

配置音频输出参数。当你在 modalities 中请求 ["audio"] 时,该字段必填。

logprobs: boolean | null

是否返回输出 token 的对数概率信息,默认 false。

top_logprobs: integer

0–20 之间的整数,指定在每个位置返回多少个最可能 token 及其对数概率。

缓存与高级参数(点击展开)
prompt_cache_key: string

用于提示缓存的稳定标识,帮助提升缓存命中率。

prompt_cache_retention: string

提示缓存的保留策略,例如设置为 24h 以启用最长 24 小时的扩展缓存。

prediction: object

预测输出配置,用于在大部分结果已知的场景中显著提升响应速度(例如重新生成大文件的局部内容)。

metadata: map

附加到请求对象上的最多 16 组 key-value,用于结构化地存储自定义信息。key 最长 64 字符,value 最长 512 字符。

service_tier: string

指定请求处理的服务等级,默认 auto,如 default、flex、priority 等,影响价格与性能。

store: boolean | null

是否允许服务方存储该请求的输出,用于模型蒸馏或评测等内部用途,默认 false。

safety_identifier: string

用于稳定标识终端用户,帮助检测可能违反使用政策的行为。推荐对用户名/邮箱做哈希后上传以避免直接传递敏感信息。

Response Body

核心字段

聊天补全结果列表。如果请求中将 n 设置为大于 1,则该数组可能包含多个候选结果。

created: integer

聊天补全创建时间的 Unix 时间戳(秒)。

id: string

本次聊天补全的唯一标识符。

model: string

实际用于生成本次聊天补全的模型 ID。

object: string

对象类型,固定为 chat.completion。

元信息与用量

实际用于处理本次请求的服务等级:

system_fingerprint: string

表示当前请求所运行后台配置的指纹。通常与 seed 配合,用于判断后端变更对结果确定性的影响。

本次补全请求的 Token 使用统计。

响应示例

非流式响应

{
  "id": "chatcmpl-B9MHDbslfkBeAs8l4bebGdFOJ6PeG",
  "object": "chat.completion",
  "created": 1741570283,
  "model": "gpt-5.5",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "The image shows a wooden boardwalk path running through a lush green field or meadow.",
        "refusal": null,
        "annotations": []
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1117,
    "completion_tokens": 46,
    "total_tokens": 1163,
    "prompt_tokens_details": {
      "cached_tokens": 0,
      "audio_tokens": 0
    },
    "completion_tokens_details": {
      "reasoning_tokens": 0,
      "audio_tokens": 0,
      "accepted_prediction_tokens": 0,
      "rejected_prediction_tokens": 0
    }
  },
  "service_tier": "default",
  "system_fingerprint": "fp_fc9f1d7035"
}

流式响应

{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-5.5", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":null}]}

{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-5.5", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}]}

{"id":"chatcmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"gpt-5.5", "system_fingerprint": "fp_44709d6fcb", "choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}]}

代码示例

Python 示例

使用 OpenAI SDK(推荐)

from apilot import OpenAI

client = OpenAI(
    base_url='https://api.token-hubs.com/v1',
    api_key='YOUR_API_KEY'
)

# 非流式调用
completion = client.chat.completions.create(
    model="gpt-5.5",
    messages=[
        {"role": "user", "content": "你好,请介绍一下你自己"}
    ],
    temperature=0.7
)

print(f"回复: {completion.choices[0].message.content}")
print(f"Token使用: {completion.usage}")

#流式调用
from apilot import OpenAI

client = OpenAI(
    base_url='https://api.token-hubs.com/v1',
    api_key='YOUR_API_KEY'
)

stream = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "讲个笑话"}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end='', flush=True)

Node.js 示例

使用 OpenAI SDK(推荐)

const OpenAI = require('apilot');

const client = new OpenAI({
    baseURL: 'https://api.token-hubs.com/v1',
    apiKey: 'YOUR_API_KEY'
});

// 非流式调用
async function main() {
    const completion = await client.chat.completions.create({
        model: 'gpt-5.5',
        messages: [
            { role: 'user', content: '你好,请介绍一下你自己' }
        ]
    });

    console.log(completion.choices[0].message.content);
}

main();

// 流式调用
const OpenAI = require('apilot');

const client = new OpenAI({
    baseURL: 'https://api.token-hubs.com/v1',
    apiKey: 'YOUR_API_KEY'
});

async function main() {
    const stream = await client.chat.completions.create({
        model: 'gpt-5.5',
        messages: [{ role: 'user', content: '讲个笑话' }],
        stream: true
    });

    for await (const chunk of stream) {
        process.stdout.write(chunk.choices[0]?.delta?.content || '');
    }
}

main();