SDK

Python SDK

Официальный Python SDK для работы с 42GPU API. Полная совместимость с OpenAI SDK.

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

Одна команда для установки. Полная совместимость с OpenAI SDK.

Async поддержка

Полная поддержка asyncio для высоконагруженных приложений.

Type hints

Полная типизация для IDE автодополнения и проверки типов.

Установка

Terminal
pip install gpu42

Требования: Python 3.8+

Базовое использование

main.py
1from gpu42 import GPU42
2
3# Инициализация клиента
4client = GPU42(api_key="sk-air-your-api-key")
5
6# Простой запрос
7response = client.chat.completions.create(
8 model="gpt-4-turbo",
9 messages=[
10 {"role": "system", "content": "Ты полезный ассистент."},
11 {"role": "user", "content": "Привет! Как дела?"}
12 ]
13)
14
15print(response.choices[0].message.content)

Streaming

Получайте ответ по частям для улучшения UX:

streaming.py
1from gpu42 import GPU42
2
3client = GPU42(api_key="sk-air-your-api-key")
4
5# Streaming
6stream = client.chat.completions.create(
7 model="gpt-4-turbo",
8 messages=[{"role": "user", "content": "Расскажи историю"}],
9 stream=True
10)
11
12for chunk in stream:
13 if chunk.choices[0].delta.content:
14 print(chunk.choices[0].delta.content, end="", flush=True)

Async поддержка

Используйте AsyncGPU42 для асинхронных приложений:

async_example.py
1import asyncio
2from gpu42 import AsyncGPU42
3
4async def main():
5 client = AsyncGPU42(api_key="sk-air-your-api-key")
6
7 # Async запрос
8 response = await client.chat.completions.create(
9 model="gpt-4-turbo",
10 messages=[{"role": "user", "content": "Hello!"}]
11 )
12
13 print(response.choices[0].message.content)
14
15 # Async streaming
16 stream = await client.chat.completions.create(
17 model="gpt-4-turbo",
18 messages=[{"role": "user", "content": "Tell me a story"}],
19 stream=True
20 )
21
22 async for chunk in stream:
23 if chunk.choices[0].delta.content:
24 print(chunk.choices[0].delta.content, end="", flush=True)
25
26asyncio.run(main())

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

SDK автоматически читает настройки из переменных окружения:

config.py
1from gpu42 import GPU42
2
3# Автоматически читает GPU42_API_KEY из окружения
4client = GPU42()
5
6# Или явно указать переменные
7import os
8os.environ["GPU42_API_KEY"] = "sk-air-your-api-key"
9os.environ["GPU42_BASE_URL"] = "https://api.42gpu.ru/v1"
10
11client = GPU42()

Переменные окружения

  • GPU42_API_KEY- API ключ
  • GPU42_BASE_URL- Base URL (по умолчанию https://api.42gpu.ru/v1)
  • GPU42_TIMEOUT- Таймаут в секундах (по умолчанию 60)

Методы аккаунта

SDK предоставляет методы для работы с балансом и использованием:

account.py
1from gpu42 import GPU42
2
3client = GPU42(api_key="sk-air-your-api-key")
4
5# Получить баланс
6balance = client.account.balance()
7print(f"Баланс: {balance.balance} {balance.currency}")
8
9# Получить использование
10usage = client.account.usage(
11 start="2024-01-01",
12 end="2024-01-31"
13)
14print(f"Использовано токенов: {usage.total_tokens}")
15print(f"Потрачено: {usage.total_cost} RUB")

Работа с моделями

models.py
1from gpu42 import GPU42
2
3client = GPU42(api_key="sk-air-your-api-key")
4
5# Список моделей
6models = client.models.list()
7for model in models.data:
8 print(f"{model.id} - {model.owned_by}")
9
10# Информация о конкретной модели
11model = client.models.retrieve("gpt-4-turbo")
12print(model)

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

errors.py
1from gpu42 import GPU42
2from gpu42.exceptions import (
3 GPU42Error,
4 AuthenticationError,
5 RateLimitError,
6 InsufficientFundsError
7)
8
9client = GPU42(api_key="sk-air-your-api-key")
10
11try:
12 response = client.chat.completions.create(
13 model="gpt-4-turbo",
14 messages=[{"role": "user", "content": "Hello!"}]
15 )
16except AuthenticationError:
17 print("Неверный API ключ")
18except RateLimitError as e:
19 print(f"Rate limit. Повторите через {e.retry_after} сек")
20except InsufficientFundsError:
21 print("Недостаточно средств")
22except GPU42Error as e:
23 print(f"Ошибка API: {e}")

Совместимость с OpenAI

Если вы уже используете OpenAI SDK, можете продолжать его использовать, просто изменив base_url:

openai_compat.py
1# 42GPU SDK полностью совместим с OpenAI SDK
2# Вы можете использовать стандартный OpenAI SDK:
3
4from openai import OpenAI
5
6client = OpenAI(
7 base_url="https://api.42gpu.ru/v1",
8 api_key="sk-air-your-api-key"
9)
10
11# Работает точно так же
12response = client.chat.completions.create(
13 model="gpt-4-turbo",
14 messages=[{"role": "user", "content": "Hello!"}]
15)

Совет: 42GPU SDK это тонкая обёртка над OpenAI SDK с дополнительными методами для работы с балансом и биллингом. Вы можете использовать любой из них.

Дополнительные ресурсы