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 |
文生图(见 图像生成) |
最小请求与响应¶
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.content。finish_reason:stop / 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)