Автор выбрал Программу прямой помощи для получения пожертвования в рамках программы Пиши для Благотворительности.
Введение
Модели OpenAI GPT стали популярными благодаря своему широкому использованию для создания текстового контента для различных задач, таких как написание электронных писем, ответы на часто задаваемые вопросы клиентов и перевод текстов, чтобы назвать некоторые.
Эти модели GPT обычно используются через ChatGPT, чат-бот выпущенный OpenAI, или через API и библиотеки, которые обеспечивают больший контроль. В этом руководстве вы узнаете, как использовать эти модели, используя API OpenAI в своем веб-проекте Django. Вы узнаете, как вызывать API ChatCompletion с различными параметрами и как форматировать и использовать его ответы.
К концу этого руководства вы создадите конечную точку Django, которая при вызове отправляет запрос в OpenAI для составления короткой истории с использованием предоставленных слов и возвращает его ответ.
Необходимые навыки
Для завершения этого руководства вам понадобятся:
-
Существующий проект Django. Если вы начинаете с нуля, вы можете настроить проект Django, следуя руководству как настроить среду разработки Django.
-
Учетная запись OpenAI: Перейдите на веб-сайт платформы OpenAI и найдите кнопку “Зарегистрироваться”. После регистрации вам необходимо подтвердить свой адрес электронной почты и ввести личную информацию.
-
Ключ API OpenAI: После настройки вашей учетной записи войдите и перейдите к разделу Ключи API на вашей панели инструментов. Нажмите на кнопку “Создать новый секретный ключ”. Ваш ключ API будет сгенерирован и будет выглядеть примерно так:
sk-abcdefghijklmnop
. Обязательно сохраните этот ключ в безопасном месте, так как вы больше не сможете его увидеть. -
Пакет OpenAI для Python: Если вы следовали инструкциям в первом предварительном уроке, у вас уже должно быть активировано виртуальное окружение с именем
env
в каталоге с именемdjango-apps
. Убедитесь, что ваше виртуальное окружение активно, проверив, что его имя отображается в скобках в начале вашего приглашения командной строки. Если оно не активно, вы можете активировать его вручную, запустив следующую команду:
В вашем терминале из каталога django-apps
. Как только ваше окружение активно, выполните следующее, чтобы установить пакет OpenAI для Python:
Шаг 1 — Вызовы к OpenAI
На этом этапе вы добавите свой ключ API OpenAI в клиент OpenAI и выполните простой вызов API к API ChatCompletion. Вы также рассмотрите ответ, который вы получите от API.
Для начала откройте ваш интерпретатор Python:
Сначала импортируйте клиент OpenAI и добавьте ваш ключ API в клиент:
Замените "your-api-key"
на фактический ключ API, который вы получили от платформы OpenAI.
Теперь давайте сделаем вызов API к API ChatCompletion. Используйте метод chat.completions.create()
:
В коде выше мы указали модель для использования как gpt-3.5-turbo
, добавили один объект сообщения, содержащий роль пользователя
(другие варианты: система
и помощник
) и содержимое / подсказку считать от 1 до 10
.
Чтобы увидеть ответ от вызова API, вы можете вывести сообщение ответа, которое должно содержать числа от 1 до 10 в хорошем маленьком списке:
Вывод:
Поздравляем! Вы успешно сделали простой вызов API к OpenAI и получили ответ. В следующих шагах мы форматируем и используем ответ API, чтобы создать краткую историю.
Шаг 2 — Работа с параметрами
Теперь, когда вы успешно сделали простой вызов API к API ChatCompletion, давайте исследуем, как работать с параметрами для настройки поведения модели. Доступно несколько параметров, которые позволяют контролировать генерацию текста. Давайте рассмотрим три из них.
1. Температура: Параметр температуры определяет, насколько случайным является сгенерированный контент. Более высокое значение температуры, например, 0,8, приведет к более разнообразным и креативным ответам, в то время как более низкое значение температуры, например, 0,1, приведет к более похожим ответам. Например:
Давайте снова попробуем температура=0,1
, чтобы увидеть новый сгенерированный текст:
Текст оказался таким же. Теперь давайте попробуем температура=0,8
дважды:
2. Максимальное количество токенов: Это позволяет вам ограничить длину сгенерированного текста. Установка определенного значения гарантирует, что ответ не превысит определенного числа токенов. Токены пропорциональны количеству слов в ответе. Например:
Изменение значения на 20:
3. Поток: Это определяет, должны ли ответы быть переданы потоком или возвращены. Когда установлено значение True
, ответ API будет передан потоком, что означает, что вы будете получать вывод порциями по мере его генерации. Это полезно для длинных разговоров или приложений в реальном времени. Чтобы включить потоковую передачу, добавьте параметр поток
со значением True
к вызову API. Например:
В указанном выше коде переменная chunk_message
содержит содержимое сообщения в каждом фрагменте, возвращаемом API. Прежде чем добавить каждый в список collected_messages
, мы проверяем, является ли фрагмент None
, так как содержимое последнего фрагмента обычно None
.
Использование этих параметров позволяет настраивать поведение модели и контролировать сгенерированные ответы для лучшего соответствия вашему приложению или проекту. Экспериментируйте с разными значениями, чтобы достичь желаемых результатов.
На следующем шаге мы предоставим модели некоторый контекст в виде системного приглашения.
Шаг 3 — Создание системного приглашения
На этом шаге мы объединим всю полученную информацию и создадим системное приглашение, которое предоставит контекст модели GPT, сообщив ей ее цель и указав ее правила.
Сначала создадим модуль Python, содержащий функцию для выполнения этой задачи. Закройте интерпретатор и создайте новый файл с именем story_generator.py
в каталоге вашего проекта Django.
Затем вы можете добавить ключ OpenAI API к вашим переменным окружения, чтобы не добавлять его напрямую в файл Python:
Откройте story_generator.py
и внутри него создайте клиента openai и определите функцию с именем generate_story
, которая принимает коллекцию слов в качестве входных данных:
В этой функции мы вызываем отдельную функцию, get_short_story
, чтобы сделать вызов API к OpenAI для истории, а затем другую функцию, format_response,
, чтобы отформатировать ответ от API.
Теперь давайте сосредоточимся на функции get_short_story
. Добавьте следующее в конец вашего файла story_generator.py
:
В этой функции мы сначала настраиваем системный запрос, который информирует модель о задаче, которую ей необходимо выполнить, и указывает, какой должна быть длина истории. Затем мы передаем этот системный запрос в API ChatCompletion и возвращаем его ответ.
Наконец, мы можем реализовать функцию format_response
. Добавьте следующее в конец вашего файла story_generator.py
:
Теперь вы можете протестировать эти функции, вызвав функцию generate_story
, передав коллекцию слов в качестве аргумента, и напечатав ее ответ. Добавьте следующее в конец вашего файла story_generator.py
:
Теперь сохраните и закройте файл. Запустите скрипт, чтобы увидеть сгенерированный рассказ:
Вывод:
Довольно интересно! Давайте удалим строку со print
оператором, поскольку мы будем вызывать функцию generate_story
из представления Django. Удалите выделенную строку из вашего файла story_generator.py
:
Не стесняйтесь экспериментировать с системным приглашением и добавлять больше контекста и правил для улучшения сгенерированных историй.
Продолжайте к следующему шагу, чтобы интегрировать модуль story_generator
в ваш проект Django.
Шаг 4 – Интеграция с back-end представлением:
Вам необходимо создать представление Django и маршрут URL для интеграции модуля story_generator
в ваш проект Django. В представлении вы извлечете ожидаемые слова из запроса, вызовете функцию generate_story
и вернете ответ.
Сначала откройте файл views.py
в вашем каталоге приложения Django. Импортируйте необходимые модули и добавьте функцию представления под названием generate_story_from_words
:
Затем откройте файл urls.py
и добавьте шаблон URL для представления generate_story_from_words
:
Теперь вы можете запросить конечную точку /generate-story/
. Например, чтобы протестировать с помощью curl, вы можете выполнить GET-запрос к конечной точке с ожидаемыми словами в качестве параметра запроса. Откройте ваш терминал и выполните следующую команду:
Убедитесь, что заменили "http://your_domain"
на фактический домен, где размещен ваш проект Django. Слова "cat,book,computer,sun,water"
представляют собой ожидаемые слова, с которыми вы хотите создать историю. Вы можете изменить их на любые слова, которые предпочитаете.
После выполнения команды вы должны увидеть ответ от сервера, который будет содержать сгенерированную историю:
Вывод:
Заключение
После завершения этого урока вы научились интегрировать модели OpenAI GPT в свой проект Django, используя API OpenAI. Вы выполнили вызовы к API ChatCompletion, настроили поведение модели, работая с параметрами, такими как температура и максимальное количество токенов, и создали системный запрос для предоставления контекста модели. Вы также интегрировали модуль story_generator
в свой проект Django. Теперь вы можете генерировать короткие рассказы, запрашивая конечную точку /generate-story/
с ожидаемыми словами в качестве параметра запроса.
Чтобы дополнительно улучшить ваш проект Django, вы можете исследовать дополнительные функции API OpenAI и экспериментировать с различными системными запросами и параметрами для создания уникальных и креативных рассказов.