代码示例
使用 RovoAPI 对接不同 SDK 和语言的真实示例。
Python + Anthropic SDK
基础对话
import anthropic
client = anthropic.Anthropic(
api_key="sk-rovo-YOUR_KEY",
base_url="https://api.rovoapi.com"
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "用一句话解释量子计算"
}
]
)
print(message.content[0].text)
流式响应
import anthropic
client = anthropic.Anthropic(
api_key="sk-rovo-YOUR_KEY",
base_url="https://api.rovoapi.com"
)
with client.messages.stream(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "写一首关于 AI 的俳句"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
Python + OpenAI SDK
使用 GPT 模型
from openai import OpenAI
client = OpenAI(
api_key="sk-rovo-YOUR_KEY",
base_url="https://api.rovoapi.com/v1"
)
response = client.chat.completions.create(
model="gpt-5.4",
messages=[
{"role": "system", "content": "你是一个乐于助人的助手"},
{"role": "user", "content": "你好!"}
]
)
print(response.choices[0].message.content)
JavaScript/Node.js
使用 Anthropic SDK
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
baseURL: "https://api.rovoapi.com",
});
const message = await client.messages.create({
model: "claude-opus-4-8",
max_tokens: 1024,
messages: [
{ role: "user", content: "2+2 等于几?" }
],
});
console.log(message.content[0].type === "text" && message.content[0].text);
使用 OpenAI SDK
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://api.rovoapi.com/v1",
});
const completion = await client.chat.completions.create({
model: "gpt-5.4",
messages: [
{ role: "user", content: "你好!" }
],
});
console.log(completion.choices[0].message.content);
cURL
基础请求
curl https://api.rovoapi.com/v1/chat/completions \
-H "Authorization: Bearer sk-rovo-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "user", "content": "你好"}
]
}'
流式请求
curl https://api.rovoapi.com/v1/chat/completions \
-H "Authorization: Bearer sk-rovo-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role": "user", "content": "你好"}],
"stream": true
}'
Go
package main
import (
"context"
"fmt"
"os"
"github.com/anthropics/anthropic-sdk-go"
)
func main() {
client := anthropic.NewClient(
anthropic.WithAPIKey(os.Getenv("ANTHROPIC_API_KEY")),
anthropic.WithBaseURL("https://api.rovoapi.com"),
)
message, err := client.Messages.New(context.Background(), &anthropic.MessageNewParams{
Model: anthropic.F("claude-sonnet-4-6"),
MaxTokens: anthropic.F(int64(1024)),
Messages: anthropic.F([]anthropic.MessageParamUnion{
anthropic.NewUserMessage(anthropic.F("你好!")),
}),
})
if err != nil {
panic(err)
}
fmt.Println(message.Content[0].Text)
}
Ruby
require "anthropic"
client = Anthropic::Client.new(
api_key: ENV["ANTHROPIC_API_KEY"],
base_url: "https://api.rovoapi.com"
)
message = client.messages.create(
model: "claude-sonnet-4-6",
max_tokens: 1024,
messages: [
{ role: "user", content: "你好!" }
]
)
puts message.content[0].text
错误处理
import anthropic
from anthropic import APIConnectionError, RateLimitError, APIStatusError
client = anthropic.Anthropic(
api_key="sk-rovo-YOUR_KEY",
base_url="https://api.rovoapi.com"
)
try:
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}]
)
print(message.content[0].text)
except RateLimitError:
print("触发速率限制,请稍后重试。")
except APIConnectionError as e:
print(f"连接错误:{e}")
except APIStatusError as e:
print(f"API 错误:{e.status_code} - {e.message}")
重试逻辑
import anthropic
import time
from anthropic import APIConnectionError
def create_message_with_retry(client, max_retries=3):
for attempt in range(max_retries):
try:
return client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "你好"}]
)
except APIConnectionError as e:
if attempt < max_retries - 1:
wait = 2 ** attempt
print(f"连接错误,{wait} 秒后重试...")
time.sleep(wait)
else:
raise
client = anthropic.Anthropic(
api_key="sk-rovo-YOUR_KEY",
base_url="https://api.rovoapi.com"
)
message = create_message_with_retry(client)
print(message.content[0].text)