API 调用示例
OMG Router 常见接口的 curl、Python、Node 和 SDK 示例
API 调用示例#
示例默认使用环境变量:
export OMG_API_KEY="sk-你的API令牌"
export OMG_BASE_URL="https://api.omgrouter.cc"bash获取模型列表#
curl "$OMG_BASE_URL/v1/models" \
-H "Authorization: Bearer $OMG_API_KEY"bashChat Completions#
适合 OpenAI 兼容聊天接口。
curl "$OMG_BASE_URL/v1/chat/completions" \
-H "Authorization: Bearer $OMG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4-mini",
"messages": [
{ "role": "system", "content": "你是一个简洁的助手。" },
{ "role": "user", "content": "只回复 OK" }
],
"max_tokens": 8
}'bash文本读取位置:
choices[0].message.contenttextResponses API#
适合 GPT 系列新项目和 Codex 类客户端。
curl "$OMG_BASE_URL/v1/responses" \
-H "Authorization: Bearer $OMG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4-mini",
"instructions": "你是一个简洁的助手。",
"input": "只回复 OK",
"max_output_tokens": 8
}'bash当前服务端可能不会填充 output_text 快捷字段,建议使用兼容读取方式:
function getResponseText(response) {
if (typeof response.output_text === "string" && response.output_text) {
return response.output_text;
}
return (response.output || [])
.flatMap((item) => item.content || [])
.filter((part) => part.type === "output_text" && part.text)
.map((part) => part.text)
.join("");
}jsPython 标准库示例#
无需安装 SDK,适合排查网络和鉴权问题。
import json
import os
import urllib.request
api_key = os.environ["OMG_API_KEY"]
base_url = os.environ.get("OMG_BASE_URL", "https://api.omgrouter.cc")
payload = {
"model": "gpt-5.4-mini",
"messages": [{"role": "user", "content": "只回复 OK"}],
"max_tokens": 8,
}
request = urllib.request.Request(
f"{base_url}/v1/chat/completions",
data=json.dumps(payload).encode("utf-8"),
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
},
method="POST",
)
with urllib.request.urlopen(request, timeout=60) as response:
data = json.loads(response.read().decode("utf-8"))
print(data["choices"][0]["message"]["content"])pythonNode 原生 fetch 示例#
Node.js 18+ 可直接运行。
const apiKey = process.env.OMG_API_KEY;
const baseUrl = process.env.OMG_BASE_URL || "https://api.omgrouter.cc";
const response = await fetch(`${baseUrl}/v1/chat/completions`, {
method: "POST",
headers: {
Authorization: `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "gpt-5.4-mini",
messages: [{ role: "user", content: "只回复 OK" }],
max_tokens: 8,
}),
});
if (!response.ok) {
throw new Error(`${response.status} ${await response.text()}`);
}
const data = await response.json();
console.log(data.choices[0].message.content);jsOpenAI Python SDK#
pip install openaibashfrom openai import OpenAI
client = OpenAI(
api_key="sk-你的API令牌",
base_url="https://api.omgrouter.cc/v1",
)
response = client.chat.completions.create(
model="gpt-5.4-mini",
messages=[{"role": "user", "content": "只回复 OK"}],
max_tokens=8,
)
print(response.choices[0].message.content)pythonOpenAI Node SDK#
npm install openaibashimport OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OMG_API_KEY,
baseURL: "https://api.omgrouter.cc/v1",
});
const response = await client.chat.completions.create({
model: "gpt-5.4-mini",
messages: [{ role: "user", content: "只回复 OK" }],
max_tokens: 8,
});
console.log(response.choices[0].message.content);jsClaude Messages#
适合 Claude 官方协议。令牌分组请使用 CC 或 CC-N,具体见 模型分组。
curl "$OMG_BASE_URL/v1/messages" \
-H "Authorization: Bearer $OMG_API_KEY" \
-H "Content-Type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4.5",
"max_tokens": 64,
"messages": [
{ "role": "user", "content": "只回复 OK" }
]
}'bashEmbeddings#
curl "$OMG_BASE_URL/v1/embeddings" \
-H "Authorization: Bearer $OMG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-3-small",
"input": "OMG Router 文档测试"
}'bashGemini 兼容生成#
curl "$OMG_BASE_URL/v1beta/models/gemini-2.5-flash:generateContent" \
-H "Authorization: Bearer $OMG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [
{
"role": "user",
"parts": [{ "text": "只回复 OK" }]
}
]
}'bash如果返回模型不存在,请先在控制台确认当前令牌分组是否包含该 Gemini 模型。
账户令牌用量#
令牌维度的用量接口:
curl "$OMG_BASE_URL/api/usage/token/" \
-H "Authorization: Bearer $OMG_API_KEY"bash该接口会返回令牌名称、已用额度、剩余额度、模型限制、过期时间等信息。