Первые шаги – вызываем модель ChatGPT через API
Содержание курса
🔹 Артефакт – скрипт hello_llm.py
Cоберём минимальный скрипт, который делает запрос к модели через OpenAI клиент и печатает ответ. Этот файл будет базовым шаблоном для следующих экспериментов.
🔸 Требования к скрипту
- Читает ключ и (при необходимости) базовый URL из переменных окружения, создаёт клиента
OpenAI. - Выполняет единичный запрос к модели (Responses API) и печатает только текст ответа.
- Опционально выводит вспомогательную информацию (например, число токенов), но без «шума» в консоли.
🔸 Готовый файл hello_llm.py
#!/usr/bin/env python3
import os
import sys
import argparse
from dotenv import load_dotenv
from openai import OpenAI
def main() -> int:
# 1) Загружаем переменные окружения (.env не обязателен)
load_dotenv()
# 2) Считываем аргументы запуска
parser = argparse.ArgumentParser(description="Первый запрос к LLM")
parser.add_argument(
"-q", "--query",
default="Привет, бот! Назови столицу Франции.",
help="Текст запроса к модели (по умолчанию — простой вопрос)"
)
args = parser.parse_args()
# 3) Создаём клиента OpenAI (v1.x)
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
# Если используете прокси, задайте свой базовый URL
base_url=os.getenv("OPENAI_API_BASE", "https://api.openai.com/v1"),
# при желании можно задать request_timeout=15 для всех вызовов
)
# 4) Делаем минимальный запрос (Responses API)
resp = client.responses.create(
model=os.getenv("OPENAI_MODEL", "gpt-4o"), # подставьте свою модель при необходимости
instructions="Ты дружелюбный ассистент. Отвечай кратко и по делу.",
input=args.query,
# temperature=0.0,
# max_output_tokens=200,
# timeout=15, # чтобы не зависать при долгом ответе
)
# 5) Печатаем ответ (готовый текст)
print(resp.output_text.strip())
# 6) (необязательно) печатаем число токенов, если оно доступно
usage = getattr(resp, "usage", None)
total = getattr(usage, "total_tokens", None) if usage is not None else None
if isinstance(total, int):
print(f"\n(токены: {total})")
return 0
if __name__ == "__main__":
sys.exit(main())
🔸 Запуск
Убедитесь, что установлены зависимости (python -m pip install openai python-dotenv) и заданы переменные окружения:
OPENAI_API_KEY— ключ доступа;OPENAI_API_BASE— при использовании прокси (например,https://api.your-proxy.com/v1);OPENAI_MODEL— ID модели (если не задан, по умолчанию используетсяgpt-4o).
Примеры запуска:
python hello_llm.py
python hello_llm.py -q "Дай интересный факт о космосе."
Ожидаемый вывод:
Ответ может отличаться по формулировке; главное — корректный осмысленный текст
🔸 Заметки
- Мы намеренно печатаем только суть — текст ответа. Полный объект ответа можно изучать для отладки, но в артефакте это не требуется.
- Если ключ/URL не заданы или сеть недоступна, скрипт завершится с ошибкой — обработку исключений добавим в следующем шаге (или отдельном уроке про устойчивость).
- При работе через прокси проверьте, что
OPENAI_API_BASEуказан точно (включаяhttps://и окончание/v1). - Шаблон легко расширить: добавить параметры (
temperature, лимит токенов), логирование, обработку ошибок и т. п.
