ZvenoAI
SDK

Python SDK

Подключите официальный OpenAI SDK для Python к ZvenoAI: установка, авторизация, async/await, streaming и обработка ошибок.

ZvenoAI совместим с официальным OpenAI SDK для Python. Достаточно указать новый base_url и использовать API ключ ZvenoAI, чтобы работать с моделями GPT, Claude, Gemini и другими поставщиками без VPN и с оплатой в рублях.

Установка

Используйте актуальную версию пакета openai. Также рекомендуем хранить ключи в переменных среды.

Установка клиента
pip install openai
Переменные окружения
export ZVENOAI_API_KEY="ваш_ключ_zvenoai"  # macOS/Linux
setx ZVENOAI_API_KEY "ваш_ключ_zvenoai"          # Windows PowerShell

Быстрый старт

Запрос chat.completions
from openai import OpenAI
import os

client = OpenAI(
    api_key=os.environ["ZVENOAI_API_KEY"],
    base_url="https://api.zveno.ai/v1",
)

response = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{"role": "user", "content": "Расскажи о ZvenoAI"}],
)

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

Streaming

Streaming с обработкой токенов
with client.chat.completions.stream(
    model="openai/gpt-4o",
    messages=[{"role": "user", "content": "Сгенерируй список идей"}],
) as stream:
    for event in stream:
        if event.type == "token":
            print(event.token.text, end="", flush=True)
        elif event.type == "completed":
            print("\n--- done ---")

Обработка ошибок и ретраи

ZvenoAI возвращает те же классы ошибок, что и OpenAI SDK. Используйте готовые исключения для повторов, логирования и graceful-degradation.

Обработка ошибок OpenAI Python SDK
try:
    response = client.chat.completions.create(
        model="anthropic/claude-3.5-haiku",
        messages=[{"role": "user", "content": "Привет"}],
        timeout=30,
    )
except openai.APIConnectionError as err:
    logger.warning("Connection error: %s", err)
    retry_request()
except openai.RateLimitError as err:
    logger.error("Превышен лимит: %s", err)
    backoff_wait(err.retry_after)
except openai.APIError as err:
    logger.exception("ZvenoAI вернул ошибку: %s", err)
    raise

On this page