Hubridge

对话补全

OpenAI 兼容 Chat Completions 接口

接口

POST /v1/chat/completions

OpenAI 兼容的对话补全端点,支持同步 JSON 与流式 SSE(见 流式输出)。

请求头

Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

请求体

字段类型必填说明
modelstring模型名称,见 模型广场
messagesarray对话消息列表
streamboolean默认 falsetrue 时返回 SSE
temperaturenumber采样温度
max_tokensinteger最大生成 token 数

示例:

{
  "model": "gpt-4o",
  "messages": [
    { "role": "system", "content": "You are a helpful assistant." },
    { "role": "user", "content": "用一句话介绍 Hubridge" }
  ],
  "temperature": 0.7,
  "max_tokens": 1024
}

cURL

curl -X POST "$YOUR_GATEWAY_BASE_URL/v1/chat/completions" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-4o",
    "messages": [
      { "role": "user", "content": "Hello!" }
    ]
  }'

Python(OpenAI SDK)

from openai import OpenAI

client = OpenAI(
    base_url="YOUR_GATEWAY_BASE_URL/v1",
    api_key="YOUR_API_KEY",
)

completion = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
)

print(completion.choices[0].message.content)
print(completion.usage)

Node.js(OpenAI SDK)

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "YOUR_GATEWAY_BASE_URL/v1",
  apiKey: "YOUR_API_KEY",
});

const completion = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "Hello!" }],
});

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

响应示例

{
  "id": "chatcmpl-xxx",
  "object": "chat.completion",
  "created": 1710000000,
  "model": "gpt-4o",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help you today?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 12,
    "total_tokens": 22
  }
}

多轮对话

messages 中按时间顺序传入历史即可:

{
  "model": "gpt-4o",
  "messages": [
    { "role": "user", "content": "我叫小明" },
    { "role": "assistant", "content": "你好小明!" },
    { "role": "user", "content": "我叫什么?" }
  ]
}