---
url: /tutorial/api/openai.md
---

# OpenAI兼容接口

OpenAI大部分模型调用接口都支持，参数与使用方式全部同OpenAI，文档见[《OpenAI官方API文档》](https://platform.openai.com/docs/api-reference/introduction)
，可以直接使用，无需任何修改。

::: tip
注意：平台转发基于负载均衡技术，会在多个账号间随机负载，不支持file、fine-tune、assistants等有状态接口，response api支持，但是不支持传递上一轮回复的id这种有状态用法。
:::

## 接口选择

如果您需要使用推理模型处理大量复杂任务，请优先考虑最新的`Response`接口，而不是`ChatCompletion`接口，因为o系列模型涉及复杂推理，单个请求可能耗时5-10分钟才能返回，`ChatCompletion`经过我们大量测试最高只能支持到5分钟，超过5分钟会被官方超时断开，而`Response`最大超时时间可以支持到20分钟。这些数据没有写到OpenAI官方文档里，是我们大量测试后的实测数据，而且是官方的硬限制，我们代理平台无法解决此类问题，因此建议如果需要使用到复杂的推理能力，请直接升级到`Response`接口使用。

::: tip 特殊模型
OpenAI近来在主推`Response`接口，部分模型如`o3-pro`等只支持`Response`接口，不支持`ChatCompletion`接口，需要注意。但是CloseAI做了兼容处理，您可以直接使用`ChatCompletion`接口调用这些模型，平台会自动将请求转换为`Response`接口请求。
:::

## 全模型聚合接口

为了保证开发者体验，CloseAI提供了一个全模型聚合访问接口，您可以通过`ChatCompletion`接口访问所有聊天模型，CloseAI针对所有其他协议都做了兼容转换，包括：

* OpenAI ChatCompletion协议 转 OpenAI Response协议
* OpenAI ChatCompletion协议 转 Anthropic Message协议
* OpenAI ChatCompletion协议 转 Google Gemini协议

因此您可以使用/chat/completion接口访问所有聊天模型，包括o3-pro、claude、gemini等原生不支持chat接口的模型。

## curl请求

> 注意一定要替换为我们的api base和api key，差一个都是不对的。

```shell
curl https://api.openai-proxy.org/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxx" \
  -d '{
    "model": "gpt-3.5-turbo",  // 如果是其他兼容模型，这里直接替换模型名即可。
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

```

## Openai 官方Python库

> 注意一定要替换为我们的api base和api key，差一个都是不对的。另外openai新版库和旧版本库也是不一样的

```python
from openai import OpenAI

client = OpenAI(
    base_url='https://api.openai-proxy.org/v1',
    api_key='sk-xxxxxxxx',
)

chat_completion = client.chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "Say hi",
        }
    ],
    model="gpt-3.5-turbo",
)
```

::: warning
注意配置api\_base时，应该加上一个/v1的后缀，而不是只有域名，要不然会报404错误。
:::

::: warning
部分过时的文档会给出带engine字段的示例，这个字段已经被废弃了，直接调openai可以调通，因为openai做了历史包袱兼容，平台是不支持这类被废弃的接口格式的
:::

## LangChain

在环境变量中配置好本站提供的接口API地址与token即可正常使用包括`gpt-3.5-turbo`,`text-davinci-003`,`text-embedding-ada-002`等多个模型。

```shell
os.environ["OPENAI_API_BASE"] = "https://api.openai-proxy.org/v1"
os.environ["OPENAI_API_KEY"] = "sk-xxxxxxxx"
```

::: warning
注意配置环境变量时，langchain的`OPENAI_API_BASE`应该加上一个`/v1`的后缀，而不是只有域名，要不然会报404错误。
:::

## 实时语音接口

由于中转代理的技术原理限制，Realtime API（`/v1/realtime`）和 Live API（`/v1/live/sessions`）只支持 WebSocket 连接方式，WebRTC、SIP、sideband 等其他连接方式均不支持。Live 的委托模式只支持 `client`，不支持 `responses`（官方自动调用后端模型），`store` 与 fork 也不支持。单次WebSocket会话内保持状态，多个会话间无法保留状态。

::: warning
Live API 是全双工实时模式，对网络质量非常敏感。从国内直连时，晚高峰跨境链路拥塞会导致对话明显卡顿。
:::
