Урок курса
LLM API на Python: первый запрос к модели
LLM API с нуля: первый AI-сервис на PythonLLM 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 в веб-приложении?
Продолжить с проверкой и прогрессом
Откройте интерактивный раннер с заданиями урока.
