Урок курса

LLM API на Python: первый запрос к модели

LLM API с нуля: первый AI-сервис на Python

LLM API позволяет вызвать языковую модель из обычной Python-программы. Приложение отправляет инструкции и пользовательский ввод по HTTPS, а провайдер возвращает ответ и метаданные использования.

Подготовка проекта

Создайте виртуальное окружение и установите SDK выбранного провайдера. Секретный ключ храните в переменной окружения, а не в исходном коде и не в Git.

python -m venv .venv
# Windows: .venv\Scripts\activate
# macOS/Linux: source .venv/bin/activate
pip install openai
import os
from openai import OpenAI

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

response = client.responses.create(
    model="gpt-5-mini",
    input="Объясни разницу между списком и кортежем в Python в трёх пунктах",
)

print(response.output_text)

Название модели со временем может меняться — в рабочем проекте сверяйте его с документацией провайдера. Архитектурный принцип остаётся тем же: клиент, модель, вход и извлечение результата.

Что происходит при запросе

SDK сериализует параметры в JSON, добавляет авторизацию и отправляет запрос. Сервер модели возвращает объект ответа. Помимо текста в нём могут находиться идентификатор запроса, причина завершения, вызовы инструментов и количество токенов.

Не передавайте сырой объект ответа напрямую пользователю. Сначала проверьте, что запрос завершился успешно, извлеките ожидаемое поле и обработайте ситуацию, когда текста нет. Для сервисного кода полезно завернуть вызов в отдельную функцию:

def ask_model(prompt: str) -> str:
    if not prompt.strip():
        raise ValueError("Пустой запрос")

    response = client.responses.create(
        model="gpt-5-mini",
        input=prompt,
    )
    result = response.output_text.strip()
    if not result:
        raise RuntimeError("Модель не вернула текст")
    return result

Так бизнес-логика не зависит от деталей SDK: позже проще добавить логирование, retry и смену модели.

Безопасность, стоимость и надёжность

Ключ API должен жить только на сервере. Если вставить его в браузерный JavaScript или мобильное приложение, пользователь сможет извлечь секрет и выполнять запросы за ваш счёт. Клиентское приложение обращается к вашему backend, а уже backend — к LLM API.

Для продакшена добавьте:

  • timeout на сетевой запрос;
  • ограниченное число повторов с exponential backoff;
  • лимит длины пользовательского ввода;
  • логирование идентификатора запроса, модели, задержки и токенов без записи секретов;
  • дневной или пользовательский бюджет;
  • проверку результата перед выполнением действий.

Первый вызов API — только начало. Надёжный AI-сервис отличается тем, что не зависает бесконечно, не раскрывает ключ и предсказуемо обрабатывает отказ провайдера.

Попробуйте решить

Где следует хранить ключ LLM API в веб-приложении?

Продолжить с проверкой и прогрессом

Откройте интерактивный раннер с заданиями урока.

Перейти к интерактивному уроку