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

# OpenAI 官方 SDK

> Python / Node.js / Go / Java 改 base_url 即可使用 OpenPAI

OpenAI 官方 SDK 设计上允许覆盖 `base_url`,因此 **完全兼容 OpenPAI**,无需替换库。

## Python

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

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

client = OpenAI(
    api_key="sk-XXXXXXXXXXXXXXXX",
    base_url="https://openp.ai/v1",
)

# Chat
resp = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "hello"}],
)

# 流式
stream = client.chat.completions.create(
    model="gpt-5.5",
    messages=[{"role": "user", "content": "tell a story"}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")

# Embeddings
emb = client.embeddings.create(
    model="text-embedding-3-small",
    input=["hello world"],
)

# 图像生成
img = client.images.generate(
    model="dall-e-3",
    prompt="a panda",
    size="1024x1024",
)
```

## Node.js / TypeScript

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

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

const client = new OpenAI({
  apiKey: process.env.OPENPAI_API_KEY!,
  baseURL: "https://openp.ai/v1",
});

const resp = await client.chat.completions.create({
  model: "gpt-5.5",
  messages: [{ role: "user", content: "hello" }],
});
```

## Go

`github.com/sashabaranov/go-openai`:

```go theme={null}
import "github.com/sashabaranov/go-openai"

cfg := openai.DefaultConfig("sk-XXXXXXXXXXXXXXXX")
cfg.BaseURL = "https://openp.ai/v1"
client := openai.NewClientWithConfig(cfg)

resp, _ := client.CreateChatCompletion(ctx,
    openai.ChatCompletionRequest{
        Model: "gpt-5.5",
        Messages: []openai.ChatCompletionMessage{
            {Role: openai.ChatMessageRoleUser, Content: "hello"},
        },
    })
```

## Java

`com.openai:openai-java`:

```java theme={null}
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;

OpenAIClient client = OpenAIOkHttpClient.builder()
    .apiKey(System.getenv("OPENPAI_API_KEY"))
    .baseUrl("https://openp.ai/v1")
    .build();
```

## 环境变量

OpenAI SDK 默认读取以下环境变量,推荐通过环境变量配置:

```bash theme={null}
export OPENAI_API_KEY=sk-XXXXXXXXXXXXXXXX
export OPENAI_BASE_URL=https://openp.ai/v1
```

这样代码中无需显式传参:

```python theme={null}
from openai import OpenAI
client = OpenAI()  # 自动读取环境变量
```

## 注意事项

* **超时**:长上下文 / 推理模型可能需要把客户端超时调到 5-10 分钟。
* **重试**:OpenPAI 已在网关侧做了上游失败重试,客户端可关闭自带重试(`max_retries=0`)或保留兜底。
* **Beta 功能**:某些 OpenAI Beta 接口(Assistants API、Threads)是否支持以控制台公告为准。
