opengates
Назад

OpenAI SDK (Python)

Используйте OpenGates через официальный OpenAI Python SDK. Достаточно изменить base_url и api_key.

Установка

pip install openai

Конфигурация

При инициализации клиента укажите base_url OpenGates и ваш API-ключ:

from openai import OpenAI

client = OpenAI(
    base_url="https://opengates.pw/v1",
    api_key="sk-gw-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

Примеры

Chat Completion (текст)

Базовый запрос к текстовой модели.

from openai import OpenAI

client = OpenAI(
    base_url="https://opengates.pw/v1",
    api_key="sk-gw-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

response = client.chat.completions.create(
    model="openai/gpt-4o-mini",
    messages=[
        {"role": "system", "content": "Ты полезный ассистент."},
        {"role": "user", "content": "Расскажи про OpenGates"}
    ],
    temperature=0.7,
    max_tokens=1024,
)

print(response.choices[0].message.content)
Streaming (потоковый вывод)

Получение ответа токен за токеном в реальном времени.

from openai import OpenAI

client = OpenAI(
    base_url="https://opengates.pw/v1",
    api_key="sk-gw-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

stream = client.chat.completions.create(
    model="deepseek/deepseek-v4-flash",
    messages=[
        {"role": "user", "content": "Напиши короткое стихотворение"}
    ],
    stream=True,
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
Структурированный вывод (JSON)

Получение ответа в строгом JSON-формате.

from openai import OpenAI
from pydantic import BaseModel

client = OpenAI(
    base_url="https://opengates.pw/v1",
    api_key="sk-gw-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

class CalendarEvent(BaseModel):
    name: str
    date: str
    participants: list[str]

completion = client.beta.chat.completions.parse(
    model="openai/gpt-4o-mini",
    messages=[
        {"role": "user", "content": "Запланируй встречу на завтра в 15:00 с Аней и Петей"}
    ],
    response_format=CalendarEvent,
)

event = completion.choices[0].message.parsed
print(f"Событие: {event.name}")
print(f"Дата: {event.date}")
print(f"Участники: {', '.join(event.participants)}")
Вызов инструментов (Tool Calling)

Использование функций через API.

from openai import OpenAI

client = OpenAI(
    base_url="https://opengates.pw/v1",
    api_key="sk-gw-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Получить погоду для города",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "Название города"
                    }
                },
                "required": ["city"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="anthropic/claude-haiku-4.5",
    messages=[
        {"role": "user", "content": "Какая погода в Москве?"}
    ],
    tools=tools,
    tool_choice="auto",
)

print(response.choices[0].message.tool_calls)
Vision (изображения на вход)

Отправка изображения для анализа.

from openai import OpenAI

client = OpenAI(
    base_url="https://opengates.pw/v1",
    api_key="sk-gw-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

response = client.chat.completions.create(
    model="google/gemini-2.5-flash",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "Что изображено на фото?"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": "https://example.com/photo.jpg"
                    }
                }
            ]
        }
    ]
)

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

Получение векторных представлений текста.

from openai import OpenAI

client = OpenAI(
    base_url="https://opengates.pw/v1",
    api_key="sk-gw-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

response = client.embeddings.create(
    model="openai/text-embedding-3-large",
    input="OpenGates — это API-агрегатор AI моделей"
)

embedding = response.data[0].embedding
print(f"Размерность вектора: {len(embedding)}")
print(f"Первые 5 значений: {embedding[:5]}")
Anthropic Messages API

Использование Anthropic-совместимого эндпоинта.

from openai import OpenAI

client = OpenAI(
    base_url="https://opengates.pw/v1",
    api_key="sk-gw-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

response = client.chat.completions.create(
    model="anthropic/claude-haiku-4.5",
    messages=[
        {"role": "user", "content": "Напиши функцию на Python для сортировки списка"}
    ],
    max_tokens=2048,
)

print(response.choices[0].message.content)
Reasoning (рассуждения)

Использование reasoning токенов для сложных задач.

from openai import OpenAI

client = OpenAI(
    base_url="https://opengates.pw/v1",
    api_key="sk-gw-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)

response = client.chat.completions.create(
    model="deepseek/deepseek-v4-flash",
    messages=[
        {"role": "user", "content": "Сколько букв 'r' в слове 'strawberry'?"}
    ],
    extra_body={
        "include_reasoning": True
    }
)

print(response.choices[0].message.content)
Выбор модели: Используйте идентификаторы моделей в формате provider/model-name, например openai/gpt-4o-mini. Полный список моделей доступен в каталоге.