Back to docs

代码示例

常见使用场景的实用示例

代码示例

使用 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)