Как создавать AI-инструменты на Python с помощью OpenAI API?
Обновлено 15 января 2025 - 2 месяца назад. Sitepoint.com.
Оглавление
- Настройка среды
- Установка необходимых библиотек Python
- Настройка доступа к API OpenAI
- Ключ API и аутентификация
- Использование API OpenAI в Python
- Создание простого запроса ChatGPT
- Обработка ошибок
- Продвинутые техники интеграции API
- Автоматизация задач с помощью API OpenAI
- Использование запросов Python для получения данных
- Управление крупными запросами к API
- Практические применения: API OpenAI в реальных проектах
- Интеграция ChatGPT в веб-разработку
- Создание чат-ботов с помощью ChatGPT и Python
- Ограничения и цены API OpenAI
- Заключение
Благодаря тому, что OpenAI теперь поддерживает модели вплоть до GPT-4 Turbo, у разработчиков Python появилась невероятная возможность исследовать передовые функции ИИ. В этом руководстве подробно рассказывается о том, как интегрировать API ChatGPT в ваши скрипты на Python, как пройти через начальные этапы настройки и эффективно использовать API.
ChatGPT API - это интерфейс программирования, позволяющий разработчикам взаимодействовать с моделями GPT и использовать их для генерации разговорных ответов. Но на самом деле это просто универсальный API от OpenAI, который работает со всеми их моделями.
Поскольку GPT-4 Turbo более совершенен и в три раза дешевле GPT-4, еще никогда не было лучшего времени для использования этого мощного API в Python, так что давайте начнем!
Настройка среды
Для начала мы расскажем вам о том, как настроить среду для работы с OpenAI API на Python. Первые шаги включают установку необходимых библиотек, настройку доступа к API, работу с ключами API и аутентификацией.
Установка необходимых библиотек Python
Прежде чем приступить к работе, убедитесь, что в вашей системе установлен Python. Мы рекомендуем использовать виртуальную среду, чтобы все было организовано. Вы можете создать виртуальную среду с помощью следующей команды:
python -m venv chatgpt_env
Активируйте виртуальную среду, выполнив команду:
chatgpt_env\Scripts\activate
(Windows)источник chatgpt_env/bin/activate
(macOS или Linux)
Далее вам нужно установить необходимые библиотеки Python, которые включают клиентскую библиотеку OpenAI Python для взаимодействия с API OpenAI и пакет python-dotenv для работы с конфигурацией. Чтобы установить оба пакета, выполните следующую команду:
pip install openai python-dotenv
Настройка доступа к API OpenAI
Чтобы сделать запрос к API OpenAI, вы должны сначала зарегистрироваться на платформе OpenAI и сгенерировать свой уникальный API-ключ. Выполните следующие шаги:
- Зайдите на страницу API-ключей OpenAI и создайте новую учетную запись или войдите в систему, если у вас уже есть аккаунт.
- Войдя в систему, перейдите в раздел API-ключей и нажмите на кнопку Создать новый секретный ключ.
- Скопируйте сгенерированный ключ API для последующего использования. В противном случае вам придется генерировать новый ключ API, если вы его потеряете. Вы не сможете просмотреть API-ключи на сайте OpenAI.

Страница API-ключей OpenAI

Сгенерированный ключ API, который можно использовать прямо сейчас
Ключ API и аутентификация
После получения ключа API мы рекомендуем сохранить его в качестве переменной окружения в целях безопасности. Для управления переменными окружения используйте пакет python-dotenv. Чтобы создать переменную окружения, содержащую ваш API-ключ, выполните следующие действия:
-
Создайте файл с именем .
env
в каталоге проекта. -
Добавьте следующую строку в файл
.env
, заменивваш_api_key
на реальный ключ API, который вы скопировали ранее:CHAT_GPT_API_KEY=ваш_api_key .
-
В коде Python загрузите ключ API из файла
.env
с помощью функцииload_dotenv
из пакета python-dotenv:
import openai from openai import OpenAI import os from dotenv import load_dotenv # Загружаем ключ API из файла .env load_dotenv ( ) client = OpenAI ( api_key = os.environ.get ( "CHAT_GPT_API_KEY" ))
Примечание: В последней версии библиотеки OpenAI Python для выполнения вызовов API необходимо инстанцировать клиента OpenAI, как показано ниже. Это изменение по сравнению с предыдущими версиями, где вы могли напрямую использовать глобальные методы.
Теперь вы добавили свой API-ключ, ваша среда настроена и готова к использованию OpenAI API в Python. В следующих разделах этой статьи мы рассмотрим взаимодействие с API и создание чат-приложений с использованием этого мощного инструмента.
Не забудьте добавить приведенный выше фрагмент кода в каждый раздел кода ниже перед запуском.
Использование API OpenAI в Python
После загрузки API из файла . env
мы можем начать использовать его в Python. Чтобы использовать
OpenAI API в Python, мы можем делать вызовы API с помощью объекта-клиента. Затем мы можем передать API серию
сообщений в качестве входных данных и получить сгенерированное моделью сообщение в качестве выходного.
Создание простого запроса ChatGPT
-
Убедитесь, что вы выполнили предыдущие шаги: создали виртуальную среду, установили необходимые библиотеки, сгенерировали секретный ключ OpenAI и файл
.env
в директории проекта. -
Используйте следующий фрагмент кода, чтобы настроить простой запрос ChatGPT:
# Создание завершения чата chat_completion = client . chat . completions . create ( model = "gpt-4" , messages = [ { "role" : "user" , "content" : "query" } ] ) print ( chat_completion . choices [ 0 ] . message . content )
Здесь client.chat.completions.create
- это вызов метода на объекте клиента. Атрибут chat
открывает доступ к специфическим для чата функциям API, а completions.create
- это метод,
который запрашивает модель искусственного интеллекта сгенерировать ответ или завершение на основе предоставленных
данных.
Замените запрос
на запрос, который вы хотите запустить, и не стесняйтесь использовать любую
поддерживаемую модель GPT вместо выбранной выше GPT-4.
Обработка ошибок
При выполнении запросов могут возникнуть различные проблемы, включая проблемы с подключением к сети, превышение
лимита скорости или другие нестандартные коды состояния ответа. Поэтому очень важно правильно обрабатывать эти коды
состояния. Мы можем использовать блоки try
и except
в Python для поддержания потока
программы и лучшей обработки ошибок:
# Попытка создать завершение чата try : chat_completion = client . chat . completions . create ( model = "gpt-4" , messages = [ { "role" : "user" , "content" : "query" } ] , temperature = 1 , max_tokens = 150 # Настраиваем количество токенов по мере необходимости ) print ( chat_completion . choices [ 0 ] . message . content ) except openai . APIConnectionError as e : print ( "До сервера не удалось дозвониться" ) print ( e . __cause__ ) except openai . RateLimitError as e : print ("Получен код состояния 429; мы должны немного отступить.") except openai . APIStatusError as e : print ("Получен другой код состояния, не относящийся к диапазону 200" ) print ( e . status_code ) print ( e . response )
Примечание: чтобы использовать любую модель API OpenAI, вам необходимо иметь доступные кредитные гранты. Если с момента создания вашей учетной записи прошло более трех месяцев, скорее всего, срок действия бесплатных кредитных грантов истек, и вам придется приобрести дополнительные кредиты (минимум $5).
Вот несколько способов дополнительной настройки API-запросов:
- Max Tokens. Ограничьте максимально возможную длину выходных данных в
соответствии с вашими потребностями, задав параметр
max_tokens
. Это может быть экономией средств, но учтите, что это просто отсекает сгенерированный текст от превышения лимита, а не делает общий вывод короче. - Temperature. Настройте параметр Temperature, чтобы контролировать случайность (более высокие значения делают ответы более разнообразными, в то время как более низкие значения дают более последовательные ответы).
Если какой-либо параметр не задан вручную, то используется значение по умолчанию для соответствующей модели, например 0 - 7 и 1 для GPT-3.5-turbo и GPT-4 соответственно.
Помимо вышеперечисленных параметров, существует множество других параметров и настроек, позволяющих использовать возможности GPT именно так, как вам нужно. Для ознакомления рекомендуется изучить документацию OpenAI по API.
Тем не менее, эффективные и контекстные подсказки по-прежнему необходимы, независимо от количества настроек параметров.
Продвинутые техники интеграции API
В этом разделе мы рассмотрим продвинутые методы интеграции OpenAI API в ваши Python-проекты, сосредоточившись на автоматизации задач, использовании Python-запросов для получения данных и управлении крупномасштабными API-запросами.
Автоматизация задач с помощью API OpenAI
Чтобы сделать ваш проект на Python более эффективным, вы можете автоматизировать различные задачи с помощью API OpenAI. Например, вы можете автоматизировать генерацию ответов на электронные письма, ответы службы поддержки или создание контента.
Вот пример того, как можно автоматизировать задачу с помощью API OpenAI:
def automated_task ( prompt ) : try : chat_completion = client . chat . completions . create ( model = "gpt-4" , messages = [ { "role" : "user" , "content" : prompt } ], max_tokens = 250 ) return chat_completion . choices [ 0 ] . message . content except Exception as e : return str ( e ) # Пример использования generated_text = automated_task ( "Напишите короткую заметку, состоящую менее чем из 50 слов, команде разработчиков с просьбой сообщить текущий статус обновления программного обеспечения" ) print ( generated_text )
Эта функция принимает запрос и возвращает сгенерированный текст в качестве вывода.
Использование запросов Python для получения данных
Вы можете использовать популярную библиотеку requests для взаимодействия с API OpenAI напрямую, не полагаясь на библиотеку OpenAI. Этот метод дает вам больше контроля над получением запроса и гибкость при вызове API.
Следующий пример требует наличия библиотеки requests (если у вас ее нет, то сначала выполните pip install
requests
):
headers = { 'Content-Type' : 'application/json' , 'Authorization' : f'Bearer { api_key } ' , } data = { 'model' : 'gpt-4' , # Обновление до нужной модели 'messages' : [ { 'role' : 'user' , 'content' : 'Напишите интересный факт о Рождестве'. } ] } response = requests . post ( 'https://api.openai.com/v1/chat/completions' , headers = headers , json = data ) print ( response . json ( ) )
Этот фрагмент кода демонстрирует выполнение POST-запроса к API OpenAI с заголовками и данными в качестве аргументов. Ответ в формате JSON может быть разобран и использован в вашем проекте на Python.
Управление крупными запросами к API
При работе с крупными проектами важно эффективно управлять API-запросами. Этого можно добиться с помощью таких методов, как пакетная обработка, дросселирование и кэширование.
- Пакетирование. Объедините несколько запросов в один вызов API, используя
параметр n
в библиотеке OpenAI:n = number_of_responses_need .
- Дросселирование. Реализуйте систему ограничения скорости выполнения вызовов API, чтобы избежать чрезмерного использования или перегрузки API.
- Кэширование. Сохраняйте результаты выполненных API-запросов, чтобы избежать повторных вызовов по аналогичным запросам.
Чтобы эффективно управлять запросами к API, отслеживайте их использование и соответствующим образом изменяйте настройки конфигурации. При необходимости используйте библиотеку времени для добавления задержек или таймаутов между запросами.
Применение этих передовых методов в ваших проектах на Python поможет вам получить максимальную отдачу от API OpenAI, обеспечивая эффективную и масштабируемую интеграцию API.
Практические применения: API OpenAI в реальных проектах
Внедрение API OpenAI в ваши реальные проекты может дать множество преимуществ. В этом разделе мы рассмотрим два конкретных применения: интеграцию ChatGPT в веб-разработку и создание чат-ботов с помощью ChatGPT и Python.
Интеграция ChatGPT в веб-разработку
API OpenAI можно использовать для создания интерактивного, динамического контента, адаптированного к запросам или потребностям пользователей. Например, вы можете использовать ChatGPT для создания персонализированных описаний товаров, увлекательных постов в блоге или ответов на распространенные вопросы о ваших услугах. Возможности API OpenAI и небольшого количества кода на Python безграничны.
Рассмотрим этот простой пример использования вызова API из бэкенда Python:
def generate_content ( prompt ) : try : response = client . chat . completions . create ( model = "gpt-4" , messages = [ { "role" : "user" , "content" : prompt } ] ) return response . choices [ 0 ] . message . content except Exception as e : return str ( e ) # Используйте эту функцию для генерации содержимого description = generate_content ( "Напишите краткое описание походного рюкзака" )
Вы также можете написать код для интеграции описания
в HTML и JavaScript для отображения
сгенерированного контента на вашем сайте.
Создание чат-ботов с помощью ChatGPT и Python
Чат-боты на базе искусственного интеллекта начинают играть важную роль в повышении качества обслуживания пользователей. Объединив возможности обработки естественного языка ChatGPT с Python, вы сможете создавать чат-боты, которые понимают контекст и разумно реагируют на ввод пользователя.
Рассмотрим пример обработки пользовательского ввода и получения ответа:
def get_chatbot_response ( prompt ) : try : response = client . chat . completions . create ( model = "gpt-4" , messages = [ { "role" : "user" , "content" : prompt } ] ) return response . choices [ 0 ] . message . content except Exception as e : return str ( e ) # Получение пользовательского ввода из командной строки user_input = input ( "Enter your prompt: " ) response = get_chatbot_response ( user_input ) print ( response )
Но поскольку цикла нет, скрипт завершится после одного запуска, поэтому подумайте о добавлении условной логики. Например, мы добавили базовую условную логику, в которой скрипт будет продолжать искать подсказки пользователя до тех пор, пока он не произнесет стоп-фразу "exit" или "quit".
Учитывая приведенную логику, наш финальный код для запуска чатбота на конечной точке OpenAI API может выглядеть следующим образом:
from openai import OpenAI import os from dotenv import load_dotenv # Загружаем ключ API из файла .env load_dotenv ( ) client = OpenAI ( api_key = os . environ . get ( "CHAT_GPT_API_KEY" ) ) def get_chatbot_response ( prompt ) : try : response = client . chat . completions . create ( model = "gpt-4" , messages = [ { "role" : "user" , "content" : prompt } ] ) return response . choices [ 0 ] . message . content except Exception as e : return str ( e ) while True : user_input = input ( "Вы: " ) if user_input . lower ( ) in [ "exit", "quit" ] : print ( "Сеанс чата завершился." ) break response = get_chatbot_response ( user_input ) print ( "ChatGPT:" , response )
Вот как это выглядит при запуске в командной строке Windows.

Надеемся, эти примеры помогут вам начать экспериментировать с ИИ ChatGPT. В целом OpenAI открыл перед разработчиками широкие возможности для создания новых, интересных продуктов с помощью своего API, и возможности эти безграничны.
Ограничения и цены API OpenAI
Хотя API OpenAI очень мощный, у него есть несколько ограничений:
Хранение данных. OpenAI хранит ваши данные API в течение 30 дней, и использование API подразумевает согласие на хранение данных. Будьте внимательны к данным, которые вы отправляете.
Вместимость модели. Модели чата имеют максимальный лимит токенов. (Например, GPT-3 поддерживает 4096 токенов.) Если запрос API превышает этот лимит, вам придется усечь или опустить текст.
Ценообразование. API OpenAI не предоставляется бесплатно и имеет свою собственную схему ценообразования, отдельную от подписки на модели. Более подробную информацию о ценах можно найти на сайте OpenAI. (Опять же, GPT-4 Turbo в три раза дешевле GPT-4!).
Заключение
Использование потенциала API модели ChatGPT в Python может значительно продвинуть различные приложения, такие как поддержка клиентов, виртуальные помощники и создание контента. Интегрировав этот мощный API в свои проекты, вы сможете легко использовать возможности моделей GPT в своих приложениях на Python.
Эта статья является экземпляром Текста-спринтера. Такие тексты отлично продвигают сайты в ТОП органического поиска Яндекс и Google. Здесь я пишу об этом более подробно.

Искренне Ваш,
Nikita Interactive
Это реальная история!
Раздел с Текстами-спринтерами привлек 18 090 пользователей за 9 месяцев.
На новом сайте. Без ссылок.
Измеримые результаты и устойчивый успех.