> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arouter.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Python

> 透過 OpenAI、Anthropic 或 Gemini Python SDK 使用 ARouter。

## OpenAI SDK

[OpenAI Python SDK](https://github.com/openai/openai-python) 可直接與 ARouter 配合使用。

### 安裝

```bash theme={null}
pip install openai
```

### 基礎用法

```python theme={null}
from openai import OpenAI

client = OpenAI(
    base_url="https://api.arouter.ai/v1",
    api_key="lr_live_xxxx",
)

response = client.chat.completions.create(
    model="openai/gpt-5.4",
    messages=[{"role": "user", "content": "用一句話解釋量子運算。"}],
)
print(response.choices[0].message.content)
```

### 多 Provider 路由

透過修改模型字串切換 provider：

```python theme={null}
# 透過 OpenAI SDK 使用 Anthropic
response = client.chat.completions.create(
    model="anthropic/claude-sonnet-4.6",
    messages=[{"role": "user", "content": "Hello!"}],
)

# 透過 OpenAI SDK 使用 DeepSeek
response = client.chat.completions.create(
    model="deepseek/deepseek-v3.2",
    messages=[{"role": "user", "content": "Hello!"}],
)

# 透過 OpenAI SDK 使用 Gemini
response = client.chat.completions.create(
    model="google/gemini-2.5-flash",
    messages=[{"role": "user", "content": "Hello!"}],
)
```

### 串流輸出

```python theme={null}
stream = client.chat.completions.create(
    model="openai/gpt-5.4",
    messages=[{"role": "user", "content": "寫一首關於程式碼的俳句。"}],
    stream=True,
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")
```

### 非同步

```python theme={null}
import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(
    base_url="https://api.arouter.ai/v1",
    api_key="lr_live_xxxx",
)

async def main():
    response = await client.chat.completions.create(
        model="openai/gpt-5.4",
        messages=[{"role": "user", "content": "Hello!"}],
    )
    print(response.choices[0].message.content)

asyncio.run(main())
```

### 嵌入向量

```python theme={null}
response = client.embeddings.create(
    model="openai/text-embedding-3-small",
    input="The quick brown fox jumps over the lazy dog",
)
print(response.data[0].embedding[:5])
```

***

## Anthropic SDK

[Anthropic Python SDK](https://github.com/anthropics/anthropic-sdk-python) 可原生使用。

### 安裝

```bash theme={null}
pip install anthropic
```

### 基礎用法

```python theme={null}
import anthropic

client = anthropic.Anthropic(
    base_url="https://api.arouter.ai",
    api_key="lr_live_xxxx",
)

message = client.messages.create(
    model="claude-sonnet-4.6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
)
print(message.content[0].text)
```

<Warning>
  使用 Anthropic SDK 時，`base_url` 應設為 `https://api.arouter.ai`（不含 `/v1`）。
  SDK 會自動加入 `/v1/messages`。
</Warning>

### 串流輸出

```python theme={null}
with client.messages.stream(
    model="claude-sonnet-4.6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "寫一個故事。"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="")
```

***

## Gemini SDK

[Google Generative AI Python SDK](https://github.com/google/generative-ai-python) 透過設定 API 端點來使用。

### 安裝

```bash theme={null}
pip install google-generativeai
```

### 基礎用法

```python theme={null}
import google.generativeai as genai

genai.configure(
    api_key="lr_live_xxxx",
    transport="rest",
    client_options={"api_endpoint": "https://api.arouter.ai"},
)

model = genai.GenerativeModel("gemini-2.5-flash")
response = model.generate_content("Hello!")
print(response.text)
```

<Note>
  必須設定 `transport="rest"` 參數。Gemini SDK 預設使用 gRPC，
  而 ARouter 不支援 gRPC。
</Note>
