Содержание
1. Зачем нужна библиотека openai
4. Первый запрос: responses.create
Для того чтобы работать с API OpenAI на языке программирования Python, есть специальная библиотека, которая называется openai. В этом видео познакомимся с ней: посмотрим, что в неё входит и что она умеет. Это обзорное видео перед практическими шагами.
Зачем нужна библиотека openai
Для начала разберёмся, что это за пакет и обязательно ли его использовать. Обращаться к API OpenAI можно двумя способами.
Первый - писать программу без сторонних пакетов, напрямую через библиотеку requests. В этом случае весь код пишется вручную: нужно самому указывать все URL-адреса, заголовки, передавать тело запроса в нужном формате (словарь по документации) и выполнять остальные требования API для стабильной работы. Начать работать с API OpenAI по документации вполне можно и так.
Второй - готовый SDK, обёртка над HTTP-запросами, которая называется openai. Это Python-пакет, который мы устанавливаем в своё виртуальное окружение, и дальше работаем с API OpenAI в более облегчённом формате. Преимущество в том, что кода становится меньше: все особенности работы с API OpenAI в библиотеке уже учтены, и остаётся только применять её готовые методы и конструкции.
Чаще всего никто не пишет запросы вручную через requests, в большинстве случаев используют именно эту библиотеку. Бывают отдельные случаи: например, API обновился, а библиотека ещё не поддерживает новый метод. Тогда можно сделать отдельный запрос через requests, но в остальном лучше пользоваться готовым решением.
Установка и API ключ
Чтобы начать использовать библиотеку, её нужно установить в Python-проект, в виртуальное окружение. Ставим два пакета:
pip install openai python-dotenv
Также важно задать переменную окружения с ключом. В Windows это делается такой командой:
setx OPENAI_API_KEY "ваш_ключ"
Обратите внимание, как пишется название: OPENAI_API_KEY - это название по умолчанию. Если ключ лежит в переменной с таким именем, объект клиента можно создавать без аргументов:
from openai import OpenAI
client = OpenAI()
Если же вы назовёте переменную окружения по-другому, например MY_KEY, то ключ нужно будет передать явно, отдельным аргументом api_key:
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["MY_KEY"])
Кроме того, ключ можно хранить не в переменных окружения самой системы, а в переменных окружения проекта, в файле .env. Практический пример этого посмотрим в следующих видео, сейчас просто база.
Класс OpenAI и клиент
Итак, у нас есть пакет (библиотека) openai, и в нём есть класс OpenAI. Когда мы пишем Python-скрипт, мы этот класс импортируем. Внутри библиотеки есть несколько основных классов, но для пробного запроса достаточно одного OpenAI. Если понадобятся другие, их просто перечисляют в импорте через запятую.
client - это экземпляр класса, объект, который создаётся на основе импортированного класса. У этого объекта есть свойства и методы, сейчас посмотрим, что там внутри.
Кроме OpenAI, в библиотеке можно импортировать:
- другие клиенты - асинхронный
AsyncOpenAI,AzureOpenAI; - специальные классы для работы с ошибками;
- классы для настроек, типы ответов и так далее.
Это уже тонкости работы, важно понимать, что класс OpenAI в этой библиотеке не единственный.
Первый запрос: responses.create
Как выглядит первый запрос к API OpenAI? У клиента, которого мы создали, есть раздел responses, а в нём метод create. Это базовый метод, чтобы отправить обращение к API OpenAI и получить ответ.
response = client.responses.create(
model="gpt-5-nano",
instructions="Отвечай кратко",
input="Что такое API?",
)
print(response.output_text)
У него два обязательных параметра:
model- модель, к которой вы обращаетесь;input- сам запрос.
Также можно передать системные инструкции в instructions, например «Отвечай кратко», - они будут учитываться вместе с основным запросом. Текст ответа получаем через свойство output_text. Это мы посмотрим уже в практическом видео. Есть и другие аргументы, которые здесь не указаны, их можно посмотреть в документации.
Старый способ: chat.completions
Важный момент: если будете смотреть видео или читать документацию, то увидите, что к API OpenAI обращаются двумя способами. Есть старый способ, который использовался в ранних версиях:
response = client.chat.completions.create(
model="gpt-5-nano",
messages=[
{"role": "system", "content": "Отвечай кратко"},
{"role": "user", "content": "Что такое API?"},
],
)
print(response.choices[0].message.content)
Он по-прежнему поддерживается, и его можно использовать в своих проектах. Но новый метод короче и читается намного нагляднее. На старом мы останавливаться не будем: для единообразия лучше писать в новом стандарте API этого пакета.
Разделы клиента
Итого: мы импортировали класс OpenAI, создали на его основе объект client. У этого объекта есть разделы, например responses, а у разделов - методы и свойства. Такая иерархическая структура у пакета.
Какие ещё есть разделы:
responses- основной раздел, запросы и ответы модели;chat.completions- прежний API диалога, устаревший, мы его не используем;embeddings- векторы для поиска;images- генерация картинок;audio- речь в текст и обратно;- другие, более специфичные разделы, которые можно разбирать отдельно.
Для каждой задачи - работы с картинками, аудио, файлами и так далее - в пакете есть свой раздел.
Методы раздела responses
Раздел responses, пожалуй, самый основной. В нём есть такие методы:
create- отправляет запрос и получает ответ от LLM-модели;parse- ответ сразу в виде объекта Pydantic;stream- ответ по частям, по мере генерации;retrieve,delete- с ними разберёмся немного позже.
Сейчас важно понять саму идею и архитектуру: как всё устроено и как импортируется. Дальше переходим к практике и посмотрим, как это использовать в реальном программном проекте.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти