SDK 与 CLI 使用
Routic 提供与 OpenAI API 完全兼容的接口。你可以使用 OpenAI 官方的 Python 和 Node.js SDK,也可以通过 curl 等 CLI 工具直接调用。
Python (OpenAI SDK)
安装
pip install openai
基础用法
from openai import OpenAI
client = OpenAI(
base_url="https://api.routic.ai/v1",
api_key="sk-xxxxxxxx", # 你的 Routic API Key
)
response = client.chat.completions.create(
model="deepseek-v3",
messages=[{"role": "user", "content": "你好,世界!"}],
)
print(response.choices[0].message.content)
流式输出
stream = client.chat.completions.create(
model="deepseek-v3",
messages=[{"role": "user", "content": "给我讲个笑话"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
工具调用 (Function Calling)
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取城市的当前天气",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"},
},
"required": ["city"],
},
},
}
]
response = client.chat.completions.create(
model="deepseek-v3",
messages=[{"role": "user", "content": "东京的天气怎么样?"}],
tools=tools,
)
JSON 模式
response = client.chat.completions.create(
model="deepseek-v3",
messages=[{"role": "user", "content": "列出3个国家及其首都"}],
response_format={"type": "json_object"},
)
Node.js (OpenAI SDK)
安装
npm install openai
# 或
yarn add openai
# 或
pnpm add openai
基础用法
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.routic.ai/v1",
apiKey: "sk-xxxxxxxx", // 你的 Routic API Key
});
const response = await client.chat.completions.create({
model: "deepseek-v3",
messages: [{ role: "user", content: "你好,世界!" }],
});
console.log(response.choices[0].message.content);
流式输出
const stream = await client.chat.completions.create({
model: "deepseek-v3",
messages: [{ role: "user", content: "给我讲个笑话" }],
stream: true,
});
for await (const chunk of stream) {
if (chunk.choices[0]?.delta?.content) {
process.stdout.write(chunk.choices[0].delta.content);
}
}
工具调用 (Function Calling)
const tools = [
{
type: "function",
function: {
name: "get_weather",
description: "获取城市的当前天气",
parameters: {
type: "object",
properties: {
city: { type: "string", description: "城市名称" },
},
required: ["city"],
},
},
},
];
const response = await client.chat.completions.create({
model: "deepseek-v3",
messages: [{ role: "user", content: "东京的天气怎么样?" }],
tools,
});
CLI (curl)
基础请求
curl -sS "https://api.routic.ai/v1/chat/completions" \
-H "Authorization: Bearer $ROUTIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v3",
"messages": [{"role": "user", "content": "你好,世界!"}]
}'
流式输出
curl -sS "https://api.routic.ai/v1/chat/completions" \
-H "Authorization: Bearer $ROUTIC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v3",
"messages": [{"role": "user", "content": "给我讲个笑话"}],
"stream": true
}'
获取可用模型列表
curl -sS "https://api.routic.ai/v1/models" \
-H "Authorization: Bearer $ROUTIC_API_KEY"
环境变量
建议将 API Key 设置为环境变量,避免硬编码:
# Linux/macOS
export ROUTIC_API_KEY="sk-xxxxxxxx"
# Windows (PowerShell)
$env:ROUTIC_API_KEY = "sk-xxxxxxxx"
然后在代码中引用:
import os
client = OpenAI(
base_url="https://api.routic.ai/v1",
api_key=os.environ.get("ROUTIC_API_KEY"),
)
错误处理
所有 SDK 都遵循相同的错误处理模式:
from openai import OpenAI, APIError, AuthenticationError, RateLimitError
client = OpenAI(
base_url="https://api.routic.ai/v1",
api_key="sk-xxxxxxxx",
)
try:
response = client.chat.completions.create(
model="deepseek-v3",
messages=[{"role": "user", "content": "你好"}],
)
except AuthenticationError as e:
print(f"API Key 无效: {e}")
except RateLimitError as e:
print(f"请求频率超限,请稍后重试: {e}")
except APIError as e:
print(f"API 错误: {e}")
HTTP 状态码和错误详情请参考 HTTP 语义与错误格式。
智能路由
使用路由别名让 Routic 自动选择最佳模型:
response = client.chat.completions.create(
model="auto/reasoning", # Routic 自动选择最佳推理模型
messages=[{"role": "user", "content": "证明根号2是无理数"}],
)
可用别名:
auto/chat— 最佳通用对话模型auto/reasoning— 最佳推理模型
思考模式
为推理模型启用扩展思考:
response = client.chat.completions.create(
model="deepseek-r1",
messages=[{"role": "user", "content": "证明根号2是无理数"}],
extra_body={"thinking": {"type": "enabled", "budget_tokens": 1024}},
)