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

# SDK 集成

> Moxus AI兼容三种主流协议：OpenAI、Anthropic（Claude）与 Google（Gemini）。因此可直接使用这三家的官方 SDK，只需修改 Base URL 与 API Key，即可访问Moxus AI平台支持的所有模型。

Moxus AI兼容三种主流协议：OpenAI、Anthropic（Claude）与 Google（Gemini）。因此可直接使用这三家的官方 SDK，只需修改 Base URL 与 API Key，即可访问Moxus AI平台支持的所有模型。

本文档提供各语言 SDK 的配置示例。

<Columns cols={3}>
  <Card title="OpenAI SDK" icon="code" href="#使用-openai-sdk">
    适合大多数文本、视觉、函数调用、结构化输出和流式场景。
  </Card>

  <Card title="Anthropic SDK" icon="braces" href="#使用-anthropic-sdk">
    适合需要 Claude 原生 Messages 接口的项目。
  </Card>

  <Card title="LangChain" icon="blocks" href="#langchain-接入">
    适合检索增强、代理流程和多工具编排应用。
  </Card>
</Columns>

<Tip>
  SDK 接入时优先使用环境变量管理密钥。示例中的 `sk-你的密钥` 只用于说明，不应提交到代码仓库。
</Tip>

## 使用 OpenAI SDK

OpenAI SDK 是最通用的方式，支持最广泛的模型与功能。

<CodeGroup>
  ```python theme={null}
  from openai import OpenAI

  client = OpenAI(
      api_key="sk-你的密钥",
      base_url="https://moxus.ai/v1",
  )

  response = client.chat.completions.create(
      model="gpt-4o",
      messages=[{"role": "user", "content": "你好"}],
  )

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

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

  const client = new OpenAI({
    apiKey: "sk-你的密钥",
    baseURL: "https://moxus.ai/v1",
  });

  const response = await client.chat.completions.create({
    model: "gpt-4o",
    messages: [{ role: "user", content: "你好" }],
  });

  console.log(response.choices[0].message.content);
  ```
</CodeGroup>

### Python

#### 安装

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

#### 配置与调用

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

client = OpenAI(
    api_key="sk-你的密钥",
    base_url="https://moxus.ai/v1",
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "user", "content": "你好"}
    ],
)
print(response.choices[0].message.content)
```

#### 流式调用

```python theme={null}
stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "写一首诗"}],
    stream=True,
)

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

### Node.js / TypeScript

#### 安装

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

#### 配置与调用

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

const client = new OpenAI({
  apiKey: "sk-你的密钥",
  baseURL: "https://moxus.ai/v1",
});

const response = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "你好" }],
});

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

#### 流式调用

```javascript theme={null}
const stream = await client.chat.completions.create({
  model: "gpt-4o",
  messages: [{ role: "user", content: "写一首诗" }],
  stream: true,
});

for await (const chunk of stream) {
  const delta = chunk.choices[0]?.delta?.content || "";
  process.stdout.write(delta);
}
```

### Go

#### 安装

```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-你的密钥")
    config.BaseURL = "https://moxus.ai/v1"
    client := openai.NewClientWithConfig(config)

    resp, err := client.CreateChatCompletion(
        context.Background(),
        openai.ChatCompletionRequest{
            Model: "gpt-4o",
            Messages: []openai.ChatCompletionMessage{
                {Role: "user", Content: "你好"},
            },
        },
    )
    if err != nil {
        panic(err)
    }
    fmt.Println(resp.Choices[0].Message.Content)
}
```

### Java

#### 添加依赖（Maven）

```xml theme={null}
<dependency>
    <groupId>com.theokanning.openai-gpt3-java</groupId>
    <artifactId>service</artifactId>
    <version>0.18.2</version>
</dependency>
```

#### 配置与调用

```java theme={null}
import com.theokanning.openai.service.OpenAiService;
import com.theokanning.openai.completion.chat.*;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        OpenAiService service = new OpenAiService("sk-你的密钥");
        // 部分库需通过环境变量或反射设置 Base URL，具体参考库文档

        List<ChatMessage> messages = Arrays.asList(
            new ChatMessage("user", "你好")
        );
        ChatCompletionRequest request = ChatCompletionRequest.builder()
            .model("gpt-4o")
            .messages(messages)
            .build();

        ChatCompletionResult result = service.createChatCompletion(request);
        System.out.println(result.getChoices().get(0).getMessage().getContent());
    }
}
```

注意：部分 Java SDK 对自定义 Base URL 的支持方式不同，需参考对应库的文档。

## 使用 Anthropic SDK（调用 Claude 模型）

若要使用 Claude 原生接口（`/v1/messages`），可使用 Anthropic 官方 SDK。

### Python

#### 安装

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

#### 配置与调用

```python theme={null}
from anthropic import Anthropic

client = Anthropic(
    api_key="sk-你的密钥",
    base_url="https://moxus.ai",
)

response = client.messages.create(
    model="claude-3-5-sonnet",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "你好"}
    ],
)
print(response.content[0].text)
```

注意：Anthropic SDK 的 `base_url` 通常不带 `/v1`，具体以实际调用为准。

### Node.js

#### 安装

```bash theme={null}
npm install @anthropic-ai/sdk
```

#### 配置与调用

```javascript theme={null}
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: "sk-你的密钥",
  baseURL: "https://moxus.ai",
});

const response = await client.messages.create({
  model: "claude-3-5-sonnet",
  max_tokens: 1024,
  messages: [{ role: "user", content: "你好" }],
});

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

## 使用 Google Gemini SDK

若要使用 Gemini 原生接口，可使用 Google 官方 SDK。

### Python

#### 安装

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

#### 配置与调用

Google SDK 的自定义 Base URL 配置方式较复杂，建议使用 OpenAI SDK 调用 Gemini 模型（通过 OpenAI 兼容格式）。如必须使用 Gemini 原生 SDK，需参考其官方文档配置自定义端点。

### 通过 OpenAI SDK 调用 Gemini（推荐）

Moxus AI兼容 Gemini 的 OpenAI 格式调用，因此可直接使用 OpenAI SDK：

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

client = OpenAI(
    api_key="sk-你的密钥",
    base_url="https://moxus.ai/v1",
)

response = client.chat.completions.create(
    model="gemini-2.5-pro",
    messages=[{"role": "user", "content": "你好"}],
)
print(response.choices[0].message.content)
```

## 环境变量配置（推荐）

不要将密钥硬编码于源码。应从环境变量读取：

```bash theme={null}
export ICEROCKY_API_KEY="sk-你的密钥"
export ICEROCKY_BASE_URL="https://moxus.ai/v1"
```

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

client = OpenAI(
    api_key=os.environ["ICEROCKY_API_KEY"],
    base_url=os.environ["ICEROCKY_BASE_URL"],
)
```

## 其他语言

Moxus AI兼容标准 HTTP RESTful API，任何支持 HTTP 请求的语言均可接入。参考 [认证](/zh/guide/authentication) 与 [快速入门](/zh/overview/quickstart) 中的 cURL 示例，使用对应语言的 HTTP 库（如 Python 的 `requests`、PHP 的 `Guzzle`、Ruby 的 `HTTParty`）构造请求即可。

示例（Python + requests）：

```python theme={null}
import requests

resp = requests.post(
    "https://moxus.ai/v1/chat/completions",
    headers={"Authorization": "Bearer sk-你的密钥"},
    json={
        "model": "gpt-4o",
        "messages": [{"role": "user", "content": "你好"}],
    },
)
data = resp.json()
print(data["choices"][0]["message"]["content"])
```

## 常见问题

**SDK 提示 API Key 无效？**
检查 `api_key` 参数是否正确，不应包含 `Bearer ` 前缀（SDK 会自动添加）。

**SDK 连接超时或无法获取模型列表？**
检查 `base_url` 是否正确。OpenAI SDK 通常需要 `/v1` 后缀，Anthropic SDK 通常不需要。

**是否可以同时使用多种 SDK？**
可以。在同一项目中可分别创建 OpenAI、Anthropic 与 Gemini 客户端，按需调用不同模型。

## 后续步骤

* 了解认证机制：参阅 [认证](/zh/guide/authentication)。
* 实现流式输出：参阅 [流式输出](/zh/guide/streaming)。
* 查看高级用法：参阅 [认证与接口调用](/zh/guide/authentication#接口调用指南)。
