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

# Gemini兼容接口

## 协议选择

CloseAI平台的Gemini模型支持原生的Gemini SDK协议，也支持OpenAI SDK的兼容协议，模型名相同，但是调用方式不一样，推荐无特殊需求优先使用原生协议，更加稳定，功能更加丰富，OpenAI兼容格式仅建议使用在比如Cursor等只支持自定义OpenAI接口时使用。

::: tip
OpenAI兼容协议无法保证稳定性，建议尽量使用原生Gemini协议，Dify、Chatbox等大部分开源软件均支持原生协议。
:::

| 协议类型    | 域名       | 备注       |
|---------|-------------|------------|
| Gemini协议   | https://api.openai-proxy.org/google| 添加/google后缀  |
| OpenAI协议   | https://api.openai-proxy.org/v1| 一般需要加/v1  |

## 聊天模型相关接口

::: tip
仅支持Gemini系列的正常聊天接口，不支持file独立上传、缓存等，其他非聊天模型暂未接入
:::

### 请求样例（最新SDK）

::: tip
必须明确指定rest协议调用，不支持默认的grpc调用
:::

```python
from google import genai
from google.genai import types

if __name__ == '__main__':
    client = genai.Client(
        api_key="sk-xxxxxx",
        vertexai=True, # 优先使用vertexai协议访问，稳定性更高
        http_options={
            "base_url": "https://api.openai-proxy.org/google"
        },
    )

    response = client.models.generate_content(
        model='gemini-2.5-flash',
        contents="Who won Wimbledon this year?",
        config=types.GenerateContentConfig()
    )

    print(response)
```

### 请求样例(旧版SDK)

::: tip
必须明确指定rest协议调用，不支持默认的grpc调用
:::

```python
import google.generativeai as genai

if __name__ == '__main__':
    # 注意gemini的sdk必须制定rest协议调用，否则会默认走grpc造成报错
    genai.configure(
        api_key='sk-xxxx',
        transport="rest",
        client_options={"api_endpoint": "https://api.openai-proxy.org/google"},
    )
    model = genai.GenerativeModel('gemini-2.5-flash')
    response = model.generate_content("Say Hello")
    print(response.text)
```

### 兼容协议调用

OpenAI兼容协议

```shell
curl https://api.openai-proxy.org/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-xxxxx" \
-d '{
"model": "gemini-2.5-flash",
"messages": [{"role": "user", "content": "Hello!"}]
}'

```
