集成 · OpenAI SDK
最推荐的接入方式 —— 既有代码零改动,只换两个字段。
Python
bash
pip install -U openaipython
from openai import OpenAI
client = OpenAI(
api_key="sk-swx-xxxxxxxxxxxxxxxxxxxx",
base_url="http://router.swarmixtoken.com/v1",
)
# 非流式
resp = client.chat.completions.create(
model="aliyun/qwen-max",
messages=[{"role": "user", "content": "你好"}],
temperature=0.7,
max_tokens=500,
)
print(resp.choices[0].message.content)
print(resp.usage) # CompletionUsage(prompt_tokens=4, completion_tokens=8, total_tokens=12)
# 流式
stream = client.chat.completions.create(
model="aliyun/deepseek-r1",
messages=[{"role": "user", "content": "写首秋天的诗"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Node.js / TypeScript
bash
npm install openaitypescript
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.SWARMIX_API_KEY,
baseURL: "http://router.swarmixtoken.com/v1",
});
// 非流式
const resp = await client.chat.completions.create({
model: "tencent/hunyuan-turbo",
messages: [{ role: "user", content: "hi" }],
});
console.log(resp.choices[0].message.content);
// 流式
const stream = await client.chat.completions.create({
model: "aliyun/qwen-max",
messages: [{ role: "user", content: "write a haiku" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0]?.delta?.content || "");
}Go
bash
go get github.com/sashabaranov/go-openaigo
package main
import (
"context"
"fmt"
"github.com/sashabaranov/go-openai"
)
func main() {
cfg := openai.DefaultConfig("sk-swx-xxxxxxxxxxxxxxxxxxxx")
cfg.BaseURL = "http://router.swarmixtoken.com/v1"
client := openai.NewClientWithConfig(cfg)
resp, err := client.CreateChatCompletion(
context.Background(),
openai.ChatCompletionRequest{
Model: "aliyun/deepseek-r1",
Messages: []openai.ChatCompletionMessage{
{Role: "user", Content: "hi"},
},
},
)
if err != nil {
panic(err)
}
fmt.Println(resp.Choices[0].Message.Content)
}常见坑
base_url 末尾要不要带 /v1
OpenAI Python SDK 会自动把
base_url 拼接上 /chat/completions等 path。如果你填 http://router.swarmixtoken.com(不带 /v1), 会变成 /chat/completions(无 v1 前缀)导致 404。务必填 http://router.swarmixtoken.com/v1。httpx 超时
大模型流式响应时长有可能超过默认 60s 超时。Python OpenAI SDK 支持:
client = OpenAI(..., timeout=300.0) # 秒
环境变量风格(推荐)
bash
# .env
OPENAI_API_KEY=sk-swx-xxxxxxxxxxxxxxxxxxxx
OPENAI_BASE_URL=http://router.swarmixtoken.com/v1这样代码里就不用传任何参数:
python
from openai import OpenAI
client = OpenAI() # 自动从环境变量读