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

# OpenAI 官方庫使用

> 使用官方 OpenAI SDK 無縫接入 MixRoute 服務

## 簡介

MixRoute 完全相容 OpenAI API 格式，您可以直接使用官方 OpenAI SDK，只需簡單修改設定即可無縫切換。

## 支援的官方 SDK

* Python (`openai`)
* Node.js (`openai`)
* .NET (`OpenAI`)
* Go (`go-openai`)
* Ruby / PHP / Java (第三方)

## Python SDK

### 安裝

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

### 基礎設定

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

client = OpenAI(
    api_key="sk-xxxxxxxxxx",
    base_url="https://api.mixroute.ai/v1"
)

response = client.chat.completions.create(
    model="gpt-5.5",
    messages=[
        {"role": "user", "content": "Hello!"}
    ]
)

print(response.choices[0].message.content)
```

### 串流輸出

```python theme={null}
stream = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "Write a short story"}],
    stream=True
)

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

### 非同步使用

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

async def main():
    client = AsyncOpenAI(
        api_key="sk-xxxxxxxxxx",
        base_url="https://api.mixroute.ai/v1"
    )
    
    response = await client.chat.completions.create(
        model="gpt-5.5",
        messages=[{"role": "user", "content": "Hello!"}]
    )
    
    print(response.choices[0].message.content)

asyncio.run(main())
```

## Node.js SDK

### 安裝

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

### 基礎設定

```javascript theme={null}
import OpenAI from 'openai';

const openai = new OpenAI({
  apiKey: 'sk-xxxxxxxxxx',
  baseURL: 'https://api.mixroute.ai/v1'
});

const response = await openai.chat.completions.create({
  model: 'gpt-5.5',
  messages: [{ role: 'user', content: 'Hello!' }]
});

console.log(response.choices[0].message.content);
```

## Go SDK

### 安裝

```bash theme={null}
go get github.com/sashabaranov/go-openai
```

### 基礎設定

```go theme={null}
package main

import (
    "context"
    "fmt"
    openai "github.com/sashabaranov/go-openai"
)

func main() {
    config := openai.DefaultConfig("sk-xxxxxxxxxx")
    config.BaseURL = "https://api.mixroute.ai/v1"
    
    client := openai.NewClientWithConfig(config)
    
    resp, _ := client.CreateChatCompletion(
        context.Background(),
        openai.ChatCompletionRequest{
            Model: "gpt-5.5",
            Messages: []openai.ChatCompletionMessage{
                {Role: openai.ChatMessageRoleUser, Content: "Hello!"},
            },
        },
    )
    
    fmt.Println(resp.Choices[0].Message.Content)
}
```

## 模型切換

```python theme={null}
# GPT 模型
response = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "Hello"}]
)

# Claude 模型
response = client.chat.completions.create(
    model="claude-opus-4-8",
    messages=[{"role": "user", "content": "Hello"}]
)

# Gemini 模型
response = client.chat.completions.create(
    model="gemini-3.5-flash",
    messages=[{"role": "user", "content": "Hello"}]
)
```

## 進階功能

### Function Calling

```python theme={null}
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "取得指定城市的天氣資訊",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {"type": "string"}
                },
                "required": ["location"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "北京天氣怎麼樣？"}],
    tools=tools,
    tool_choice="auto"
)
```

### 嵌入向量

```python theme={null}
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="要嵌入的文字內容"
)

embedding = response.data[0].embedding
```

## 遷移指南

```python theme={null}
# 原來的設定
client = OpenAI(api_key="sk-...")

# 改為 Mixroute Api
client = OpenAI(
    api_key="sk-xxxxxxxxxx", 
    base_url="https://api.mixroute.ai/v1"
)
```

程式碼無需修改，所有其他程式碼保持不變。
