Ключи, модели, цены, лимиты. От регистрации до рабочего кода. Python + OpenAI SDK. Сравнение моделей GPT-4o, o3-mini, GPT-4. Цены и лимиты.
Первым делом нужно зарегистрироваться на platform.openai.com. После регистрации перейдите в раздел API Keys и создайте новый ключ. Важно: скопируйте ключ сразу — OpenAI показывает его только один раз. Храните ключ в переменной окружения, никогда не коммитьте в репозиторий.
# Установите переменную окружения с ключом export OPENAI_API_KEY="sk-proj-ваш-ключ-здесь" # Или создайте .env файл в корне проекта echo 'OPENAI_API_KEY=sk-proj-ваш-ключ-здесь' > .env
Новые аккаунты получают бесплатные кредиты ($5–$18). Этого хватит на тысячи запросов к GPT-4o-mini. Для production-использования пополните баланс — минимальный платёж $5.
Установите официальный Python SDK. Он автоматически читает ключ из переменной окружения OPENAI_API_KEY. Вот минимальный рабочий код для первого запроса:
# Установка SDK pip install openai # Первый запрос — файл hello_openai.py from openai import OpenAI client = OpenAI() # Ключ читается из OPENAI_API_KEY response = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": "Ты полезный ассистент."}, {"role": "user", "content": "Объясни, что такое API, в одном предложении."} ], temperature=0.7, max_tokens=100 ) print(response.choices[0].message.content)
Запустите: python hello_openai.py. Через пару секунд вы получите ответ модели. Параметр temperature (0–2) управляет креативностью: 0 — строгие ответы, 1.5+ — творческие.
OpenAI предлагает несколько линеек моделей. Выбор зависит от задачи и бюджета. Разберём ключевые варианты на июнь 2026:
# GPT-4o — флагман, универсальный интеллект # $2.50/1M входных, $10.00/1M выходных токенов # Мультимодальный: текст + изображения на входе # Контекст: 128K токенов (~300 страниц текста) # o3-mini — reasoning-модель, логика и математика # $1.10/1M входных, $4.40/1M выходных # Думает дольше, но решает сложные задачи точнее # Контекст: 200K токенов # GPT-4o-mini — быстрый и дешёвый # $0.15/1M входных, $0.60/1M выходных # Идеален для классификации, чат-ботов, суммаризации # GPT-4.1 — новейшая модель, огромный контекст # $2.00/1M входных, $8.00/1M выходных # Контекст: 1M токенов — целые кодовые базы
Совет: всегда начинайте с GPT-4o-mini для прототипирования — тысяча запросов обойдётся в копейки. Переключайтесь на GPT-4o или o3-mini, когда нужна максимальная точность.
По умолчанию API возвращает ответ целиком. Это неудобно для длинных генераций — пользователь ждёт. Включите стриминг: модель отдаёт токены по мере генерации, как ChatGPT в браузере.
from openai import OpenAI client = OpenAI() stream = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "user", "content": "Напиши стихотворение о программировании."} ], stream=True, # ← ключевой параметр ) for chunk in stream: if chunk.choices[0].delta.content is not None: print(chunk.choices[0].delta.content, end="", flush=True) print()
Параметр stream=True меняет поведение: вместо одного объекта Response вы получаете итератор чанков. Каждый чанк — небольшой фрагмент текста. flush=True гарантирует мгновенный вывод в терминал.
Function Calling (вызов функций) — одна из мощнейших возможностей API. Вы описываете функции, а модель решает, когда и с какими аргументами их вызвать. Это основа AI-агентов.
from openai import OpenAI import json client = OpenAI() # 1. Описываем доступные функции (tools) tools = [{ "type": "function", "function": { "name": "get_weather", "description": "Получить погоду для города", "parameters": { "type": "object", "properties": { "city": {"type": "string"} }, "required": ["city"] } } }] # 2. Отправляем запрос с tools response = client.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": "Какая погода в Токио?"}], tools=tools ) # 3. Модель возвращает вызов функции tool_call = response.choices[0].message.tool_calls[0] print(f"Функция: {tool_call.function.name}") print(f"Аргументы: {tool_call.function.arguments}") # → Функция: get_weather, Аргументы: {"city":"Токио"}
Модель не выполняет функцию — она только говорит, какую функцию вызвать и с какими аргументами. Выполнение — ваша задача. Результат отправляется обратно в модель для финального ответа.
API может вернуть ошибку: превышен rate limit, кончились кредиты, модель перегружена. Всегда добавляйте обработку ошибок и повторные попытки (retry).
from openai import OpenAI, RateLimitError, APIError import time client = OpenAI(max_retries=3) # Авто-retry для сетевых ошибок def safe_completion(messages, model="gpt-4o-mini"): try: return client.chat.completions.create( model=model, messages=messages ) except RateLimitError: print("⏳ Лимит запросов, ждём 10 секунд...") time.sleep(10) return safe_completion(messages, model) # Повтор except APIError as e: print(f"❌ Ошибка API: {e}") return None # Лимиты для новых аккаунтов (Tier 1): # - 500 RPM (запросов в минуту) для GPT-4o-mini # - 10K TPM (токенов в минуту) для GPT-4o-mini # - 500 RPM / 30K TPM для GPT-4o # Повышаются после первых успешных платежей (Tier 2-5)
Токен — единица текста для модели (~0.75 слова на английском, ~0.5 слова на русском). Знать количество токенов важно для оценки стоимости. OpenAI предоставляет библиотеку tiktoken.
# Установка tiktoken pip install tiktoken import tiktoken # Кодировщик для GPT-4o / GPT-4o-mini enc = tiktoken.encoding_for_model("gpt-4o") text = "Привет! Как дела? OpenAI API — это мощно." tokens = enc.encode(text) print(f"Токенов: {len(tokens)}") # → Токенов: 19 print(f"Токены: {tokens}") # → [123, 456, ...] print(f"Декодировано: {enc.decode(tokens)}") # → Привет! Как дела?... # Оценка стоимости для GPT-4o-mini cost_per_1k_input = 0.00015 # $0.15 за 1M = $0.00015 за 1K estimated_cost = (len(tokens) / 1000) * cost_per_1k_input print(f"Стоимость запроса: ${estimated_cost:.6f}") # → Стоимость запроса: $0.000003
Вы прошли путь от регистрации до продвинутых техник: стриминг, function calling, обработка ошибок, подсчёт токенов. OpenAI API — это не магия, а хорошо спроектированный REST-интерфейс с удобным Python SDK. Начните с GPT-4o-mini для экспериментов, переходите на GPT-4o для сложных задач, используйте o3-mini для логических рассуждений. Помните: всегда считайте токены, обрабатывайте ошибки, и никогда не коммитьте API-ключи. Для следующего шага изучите Assistants API — готовых агентов с сохранением контекста и автоматическим вызовом инструментов.