Теперь OpenAI поддерживает модели до GPT-4 Turbo, и у разработчиков Python есть невероятная возможность изучить передовые функциональности ИИ. Этот учебник даёт глубокое представление о том, как интегрировать API ChatGPT в свои скрипты Python, проводя вас через начальные этапы настройки и приводя к эффективному использованию API.
API ChatGPT относится к программному интерфейсу, который позволяет разработчикам взаимодействовать с и использовать модели GPT для генерации ответов в контексте диалога. Но на самом деле это универсальный API от OpenAI, работающий со всеми их моделями.
Поскольку GPT-4 Turbo является более продвинутым и в три раза дешевле, чем GPT-4, никогда не было лучшего времени, чтобы использовать это мощное API в Python, так что приступим!
Настройка Вашей среды
Для начала мы проведем вас через процесс настройки вашей среды для работы с API OpenAI на Python. Начальные шаги включают установку необходимых библиотек, настройку доступа к API и обработку API-ключей и аутентификации.
Установка необходимых библиотек Python
Перед тем как начать, убедитесь, что Python установлен на вашей системе. Мы рекомендуем использовать виртуальную среду для поддержания всего в организованном виде. Вы можете создать виртуальную среду с помощью следующей команды:
python -m venv chatgpt_env
Активируйте виртуальную среду, выполнив:
chatgpt_env\Scripts\activate
(Windows)source chatgpt_env/bin/activate
(macOS или Linux)
Далее вам нужно будет установить необходимые библиотеки Python, которые включают клиентскую библиотеку OpenAI для взаимодействия с API OpenAI и пакет python-dotenv для обработки конфигурации. Чтобы установить оба пакета, выполните следующую команду:
pip install openai python-dotenv
Настройка доступа к API OpenAI
Чтобы сделать запрос к API OpenAI, сначала необходимо зарегистрироваться на платформе OpenAI и сгенерировать свой уникальный API-ключ. Следуйте этим шагам:
- Перейдите на страницу API Key OpenAI и создайте новый аккаунт или войдите, если у вас уже есть аккаунт.
- После входа перейдите в раздел API-ключей и нажмите на Создать новый секретный ключ.
- Скопируйте сгенерированный API ключ для последующего использования. В противном случае, если вы его потеряете, вам придется сгенерировать новый API ключ. Через веб-сайт OpenAI вы не сможете просматривать API ключи.
страница API ключей OpenAI
Сгенерированный API ключ, который можно использовать сейчас
API Key и аутентификация
После получения вашего API ключа, мы рекомендуем хранить его как переменную окружения для целей безопасности. Для управления переменными окружения используйте пакет python-dotenv. Чтобы установить переменную окружения, содержащую ваш API ключ, выполните следующие шаги:
-
Создайте файл с именем
.env
в вашем проектном каталоге. -
Добавьте следующую строку в файл
.env
, заменивyour_api_key
на фактический API ключ, который вы скопировали ранее:CHAT_GPT_API_KEY=your_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 необходимо создать клиент OpenAI для выполнения вызовов API, как показано ниже. Это изменение по сравнению с предыдущими версиями, где вы использовали глобальные методы напрямую.
Теперь вы добавили свой API-ключ и ваша среда настроена и готова к использованию API OpenAI в Python. В следующих разделах этой статьи мы рассмотрим взаимодействие с API и создание чат-приложений с помощью этого мощного инструмента.
Не забудьте добавить приведенный выше фрагмент кода в каждую секцию кода ниже перед запуском.
Использование API OpenAI в Python
После загрузки API из файла .env
, мы можем начать его использовать в Python. Чтобы использовать API OpenAI в 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
является вызовом метода на объекте client
. Атрибут chat
предоставляет доступ к функциональности API, специфичной для чата, и completions.create
— это метод, который запрашивает у модели ИИ создание ответа или завершения на основе предоставленного ввода.
Замените query
на ваш запрос, и не стесняйтесь использовать любую поддерживаемую модель 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("The server could not be reached")
print(e.__cause__)
except openai.RateLimitError as e:
print("A 429 status code was received; we should back off a bit.")
except openai.APIStatusError as e:
print("Another non-200-range status code was received")
print(e.status_code)
print(e.response)
Примечание: вам необходимо иметь доступные кредитные гранты, чтобы использовать любую модель API OpenAI. Если прошло более трех месяцев с момента создания вашего аккаунта, ваши бесплатные кредитные гранты, скорее всего, истекли, и вам придется покупать дополнительные кредиты (минимум $5).
Теперь вот несколько способов дополнительно настроить ваши запросы к API:
- Максимальные Токены. Ограничьте максимальную возможную длину вывода в соответствии с вашими потребностями, установив параметр
max_tokens
. Это может быть мерой по экономии затрат, но учтите, что это просто обрезает генерируемый текст, не делая общий вывод короче. - Температура. Настройте параметр температуры для управления случайностью. (Более высокие значения делают ответы более разнообразными, а более низкие значения обеспечивают более последовательные ответы.)
Если какой-либо параметр не установлен вручную, он использует соответствующее значение по умолчанию для модели, например 0 — 7 и 1 для GPT-3.5-turbo и GPT-4 соответственно.
Помимо вышеуказанных параметров, существует множество других параметров и настроек, которые вы можете выполнить для использования возможностей GPT именно так, как вы хотите. Рекомендуется изучить документацию API OpenAI для справки.
Тем не менее, эффективные и контекстуальные подсказки все еще необходимы, независимо от количества настроек параметров.
Продвинутые методы интеграции API
В этом разделе мы рассмотрим передовые методы интеграции API OpenAI в ваши проекты на Python, сосредоточившись на автоматизации задач, использовании библиотеки requests для получения данных и управлении масштабными запросами к 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("Write an short note that's less than 50 words to the development team asking for an update on the current status of the software update")
print(generated_text)
Эта функция принимает в качестве входных данных запрос и возвращает сгенерированный текст в качестве выходных данных.
Использование библиотеки requests для получения данных
Вы можете использовать популярную библиотеку requests для взаимодействия с API OpenAI напрямую, не полагаясь на библиотеку OpenAI. Этот метод дает вам больше контроля над запросом GET и гибкость в своих вызовах API.
Следующий пример требует наличия библиотеки requests (если у вас ее нет, запустите pip install requests
):
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}',
}
data = {
'model': 'gpt-4', # Обновите до желаемой модели
'messages': [{'role': 'user', 'content': 'Write an interesting fact about Christmas.'}]
}
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 = количество_необходимых_ответов
. - Регулирование скорости. Реализуйте систему для ограничения скорости, с которой делаются вызовы 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("Write a short description of a hiking backpack")
Затем вы также можете написать код для интеграции description
с вашим 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”.
Учитывая упомянутую логику, наш полный окончательный код для запуска чат-бота на конечной точке API 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"))
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("You: ")
if user_input.lower() in ["exit", "quit"]:
print("Chat session ended.")
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.
Если вам понравился этот урок, вам также могут понравиться следующие:
Source:
https://www.sitepoint.com/python-build-ai-tools-openai-api/