Python SDK 接入
使用 OpenAI 官方 Python SDK 时,只需要把 api_key、base_url 和 model 替换为 CoreRouter 信息。
安装
bash
pip install openai
如果希望从 .env 文件读取环境变量,可以额外安装:
bash
pip install python-dotenv
基础使用
python
from openai import OpenAI
import os
client = OpenAI(
api_key=os.environ["COREROUTER_API_KEY"],
base_url="https://api.corerouter.tech/v1",
)
completion = client.chat.completions.create(
model="claude-sonnet-4-5",
messages=[
{"role": "user", "content": "你好,请介绍一下你自己。"}
],
)
print(completion.choices[0].message.content)
流式输出
python
from openai import OpenAI
import os
client = OpenAI(
api_key=os.environ["COREROUTER_API_KEY"],
base_url="https://api.corerouter.tech/v1",
)
stream = client.chat.completions.create(
model="claude-sonnet-4-5",
messages=[{"role": "user", "content": "用三句话介绍 CoreRouter。"}],
stream=True,
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
多轮对话
python
messages = [
{"role": "user", "content": "你好"},
]
completion = client.chat.completions.create(
model="claude-sonnet-4-5",
messages=messages,
)
messages.append({
"role": "assistant",
"content": completion.choices[0].message.content,
})
messages.append({"role": "user", "content": "请写一个 Python hello 函数。"})
completion = client.chat.completions.create(
model="claude-sonnet-4-5",
messages=messages,
)
print(completion.choices[0].message.content)
工具调用
python
tools = [
{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市的天气信息",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "城市名称"}
},
"required": ["city"],
},
},
}
]
completion = client.chat.completions.create(
model="claude-sonnet-4-5",
messages=[{"role": "user", "content": "北京天气怎么样?"}],
tools=tools,
)
tool_calls = completion.choices[0].message.tool_calls
if tool_calls:
print(tool_calls[0].function.name)
print(tool_calls[0].function.arguments)
工具调用是否可用取决于模型能力。用于 Agent 或编程工具时,优先选择控制台标记支持 Tool Calling / Coding Agent 的模型。
视觉理解
python
completion = client.chat.completions.create(
model="claude-sonnet-4-5",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "这张图片里有什么?"},
{
"type": "image_url",
"image_url": {"url": "https://example.com/image.jpg"},
},
],
}
],
)
print(completion.choices[0].message.content)
Responses API
这段示例要求 Model ID 支持 Responses。普通聊天模型不一定可用。 如果当前 SDK 没有 client.responses,请先升级 openai 包,或者直接按 Responses API 的 curl 示例调用。
python
from openai import OpenAI
import os
client = OpenAI(
api_key=os.environ["COREROUTER_API_KEY"],
base_url="https://api.corerouter.tech/v1",
)
response = client.responses.create(
model="responses-model-id",
input="请用三句话介绍 CoreRouter。",
)
print(response.output_text)
Embeddings
python
result = client.embeddings.create(
model="embedding-model-id",
input=["第一段文本", "第二段文本"],
)
print(len(result.data[0].embedding))
使用 .env
Python 不会自动读取 .env 文件。你可以选择在系统环境变量里设置 Key,或者使用 python-dotenv。
.env 示例:
bash
COREROUTER_API_KEY=sk-xxxxxxxxxxxxxxxx
COREROUTER_BASE_URL=https://api.corerouter.tech/v1
COREROUTER_MODEL=claude-sonnet-4-5
代码示例:
python
from dotenv import load_dotenv
from openai import OpenAI
import os
load_dotenv()
client = OpenAI(
api_key=os.environ["COREROUTER_API_KEY"],
base_url=os.environ.get("COREROUTER_BASE_URL", "https://api.corerouter.tech/v1"),
)
completion = client.chat.completions.create(
model=os.environ.get("COREROUTER_MODEL", "claude-sonnet-4-5"),
messages=[{"role": "user", "content": "Hello"}],
)
print(completion.choices[0].message.content)
请把 .env 加入 .gitignore,不要把 API Key 提交到仓库。
错误处理
python
from openai import APIError, AuthenticationError, OpenAI
import os
client = OpenAI(
api_key=os.environ["COREROUTER_API_KEY"],
base_url="https://api.corerouter.tech/v1",
)
try:
completion = client.chat.completions.create(
model="claude-sonnet-4-5",
messages=[{"role": "user", "content": "Hello"}],
)
print(completion.choices[0].message.content)
except AuthenticationError:
print("API Key 无效,请检查 Authorization 配置。")
except APIError as exc:
print(f"API 请求失败:{exc.status_code} {exc.message}")
CoreRouter API 文档