跳转至

OpenAI(原生格式)

端点 /v1/chat/completions 等 · 原样转发至 OpenAI 官方

用 OpenAI 原生格式调用 OpenAI 系列模型。请求体、响应体、流式、函数调用、结构化输出都与直连 OpenAI 官方一致——直接用官方 openai SDK,改 base_url(带 /v1)即可。

端点 用途
POST /v1/chat/completions 聊天补全(主力)
POST /v1/responses Responses API(多轮、内置工具、可生图)
POST /v1/embeddings 文本向量化
POST /v1/images/generations 文生图(见 图像生成

最小请求与响应

curl https://6geapi.com/v1/chat/completions \
  -H "Authorization: Bearer $LIUGE_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "model": "gpt-5.6-sol",
    "messages": [{"role": "user", "content": "法国的首都是哪里?"}]
  }'
from openai import OpenAI
client = OpenAI(base_url="https://6geapi.com/v1", api_key="你的Key")
resp = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "法国的首都是哪里?"}],
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://6geapi.com/v1", apiKey: process.env.LIUGE_API_KEY });
const resp = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "法国的首都是哪里?" }],
});
console.log(resp.choices[0].message.content);

响应:

{
  "id": "chatcmpl-...", "object": "chat.completion", "model": "gpt-5.6-sol",
  "choices": [{
    "index": 0,
    "message": { "role": "assistant", "content": "法国的首都是巴黎。" },
    "finish_reason": "stop"
  }],
  "usage": { "prompt_tokens": 14, "completion_tokens": 9, "total_tokens": 23 }
}

取文本:response.choices[0].message.contentfinish_reasonstop / length / tool_calls / content_filter

请求参数

参数 类型 说明
model string ✅ 模型 ID
messages array {role,content};role: system / user / assistant / tool
temperature float 0–2,越高越随机(默认 1)
top_p float 核采样(通常与 temperature 二选一)
max_tokens / max_completion_tokens int 输出上限
stream bool 流式
n int 生成几条候选(默认 1)
tools / tool_choice array/object 函数调用
response_format object 强制 JSON:json_object / json_schema
stop string/array 停止序列

system 放在 messages 首位

与 Claude 不同,OpenAI 的 system 消息放在 messages 数组首位,不是顶级字段。API 无状态,多轮需每次带完整历史。

流式输出

stream = client.chat.completions.create(
    model="gpt-5.6-sol", stream=True,
    messages=[{"role": "user", "content": "讲个短笑话"}],
)
for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="", flush=True)

SSE 每个 chunk:data: {"choices":[{"delta":{"content":"…"}}]},以 data: [DONE] 结尾。

函数调用(Function Calling)

import json
tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "获取指定城市天气",
        "parameters": {
            "type": "object",
            "properties": {"location": {"type": "string"}},
            "required": ["location"],
        },
    },
}]
messages = [{"role": "user", "content": "巴黎天气怎么样?"}]

resp = client.chat.completions.create(model="gpt-5.6-sol", messages=messages, tools=tools)
tc = resp.choices[0].message.tool_calls[0]
args = json.loads(tc.function.arguments)        # {"location": "Paris"}
result = "巴黎 晴 22°C"                          # 执行你的函数

messages.append(resp.choices[0].message)
messages.append({"role": "tool", "tool_call_id": tc.id, "content": result})
final = client.chat.completions.create(model="gpt-5.6-sol", messages=messages, tools=tools)
print(final.choices[0].message.content)

tool_choice"auto"(默认)/ "none" / "required"(必调)/ {"type":"function","function":{"name":"xxx"}}(强制指定)。

结构化输出(JSON)

{
  "model": "gpt-5.6-sol",
  "response_format": {
    "type": "json_schema",
    "json_schema": {
      "name": "contact", "strict": true,
      "schema": {
        "type": "object",
        "properties": {
          "name": {"type": "string"},
          "email": {"type": "string"},
          "plan": {"type": "string"}
        },
        "required": ["name", "email", "plan"],
        "additionalProperties": false
      }
    }
  },
  "messages": [{"role": "user", "content": "提取:张三 zhangsan@example.com 企业版"}]
}

Responses API — /v1/responses

OpenAI 较新接口,支持多轮、内置工具(联网、代码执行、生图),更适合 Agent。

resp = client.responses.create(model="gpt-5.6-sol", input="解释量子纠缠")
print(resp.output_text)

# 多轮:用 previous_response_id 串联,无需自管历史
resp2 = client.responses.create(model="gpt-5.6-sol",
                                previous_response_id=resp.id,
                                input="再用一句话总结")

# 内置生图
r = client.responses.create(model="gpt-5.6-sol",
    input="画一只戴橙围巾的灰虎斑猫抱着水獭",
    tools=[{"type": "image_generation"}])
# 结果在 output 中 type == "image_generation_call" 的 result(base64)

Embeddings — /v1/embeddings

curl https://6geapi.com/v1/embeddings \
  -H "Authorization: Bearer $LIUGE_API_KEY" \
  -H "content-type: application/json" \
  -d '{"model": "text-embedding-3-small", "input": "六哥 API 很好用"}'
resp = client.embeddings.create(model="text-embedding-3-small", input="六哥 API 很好用")
vec = resp.data[0].embedding   # list[float]