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 GPU4223# Инициализация клиента4client = GPU42(api_key="sk-air-your-api-key")56# Простой запрос7response = client.chat.completions.create(8 model="gpt-4-turbo",9 messages=[10 {"role": "system", "content": "Ты полезный ассистент."},11 {"role": "user", "content": "Привет! Как дела?"}12 ]13)1415print(response.choices[0].message.content)Streaming
Получайте ответ по частям для улучшения UX:
streaming.py
1from gpu42 import GPU4223client = GPU42(api_key="sk-air-your-api-key")45# Streaming6stream = client.chat.completions.create(7 model="gpt-4-turbo",8 messages=[{"role": "user", "content": "Расскажи историю"}],9 stream=True10)1112for 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 asyncio2from gpu42 import AsyncGPU4234async def main():5 client = AsyncGPU42(api_key="sk-air-your-api-key")67 # Async запрос8 response = await client.chat.completions.create(9 model="gpt-4-turbo",10 messages=[{"role": "user", "content": "Hello!"}]11 )1213 print(response.choices[0].message.content)1415 # Async streaming16 stream = await client.chat.completions.create(17 model="gpt-4-turbo",18 messages=[{"role": "user", "content": "Tell me a story"}],19 stream=True20 )2122 async for chunk in stream:23 if chunk.choices[0].delta.content:24 print(chunk.choices[0].delta.content, end="", flush=True)2526asyncio.run(main())Конфигурация
SDK автоматически читает настройки из переменных окружения:
config.py
1from gpu42 import GPU4223# Автоматически читает GPU42_API_KEY из окружения4client = GPU42()56# Или явно указать переменные7import os8os.environ["GPU42_API_KEY"] = "sk-air-your-api-key"9os.environ["GPU42_BASE_URL"] = "https://api.42gpu.ru/v1"1011client = GPU42()Переменные окружения
GPU42_API_KEY- API ключGPU42_BASE_URL- Base URL (по умолчанию https://api.42gpu.ru/v1)GPU42_TIMEOUT- Таймаут в секундах (по умолчанию 60)
Методы аккаунта
SDK предоставляет методы для работы с балансом и использованием:
account.py
1from gpu42 import GPU4223client = GPU42(api_key="sk-air-your-api-key")45# Получить баланс6balance = client.account.balance()7print(f"Баланс: {balance.balance} {balance.currency}")89# Получить использование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 GPU4223client = GPU42(api_key="sk-air-your-api-key")45# Список моделей6models = client.models.list()7for model in models.data:8 print(f"{model.id} - {model.owned_by}")910# Информация о конкретной модели11model = client.models.retrieve("gpt-4-turbo")12print(model)Обработка ошибок
errors.py
1from gpu42 import GPU422from gpu42.exceptions import (3 GPU42Error,4 AuthenticationError,5 RateLimitError,6 InsufficientFundsError7)89client = GPU42(api_key="sk-air-your-api-key")1011try: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 SDK2# Вы можете использовать стандартный OpenAI SDK:34from openai import OpenAI56client = OpenAI(7 base_url="https://api.42gpu.ru/v1",8 api_key="sk-air-your-api-key"9)1011# Работает точно так же12response = client.chat.completions.create(13 model="gpt-4-turbo",14 messages=[{"role": "user", "content": "Hello!"}]15)Совет: 42GPU SDK это тонкая обёртка над OpenAI SDK с дополнительными методами для работы с балансом и биллингом. Вы можете использовать любой из них.