ChatGTP представляет чат-бот с искусственным интеллектом от компании OpenAI, который может в диалоговом режиме отвечать на запросы. B OpenAI предоставляет API, который позволяет нам встроить взаимодействие с ChatGPT ботом в свое приложение. Рассмотрим простейший пример.
Прежде всего нам надо установить пакет openai:
pip install openai
Стоит учитывать, что API поддерживает версию Python 3.7+.
Для отправки запросов нам потребуется токен. Его можно сгенерировать в личном кабинете на сайте openai по адресу https://platform.openai.com/account/api-keys.
После нажатия на кнопку "Create new secret key" отобразится окно с сгенерированным токеном, который надо скопировать и сохранить. Затем этот токен отобразится в списке ключей, и его затем можно в любой момент удалить.
Далее определим следующий код на языке Python:
import openai # указываем ключ из личного кабинета openai openai.api_key = "sk-95Ez2Z1rtgegrRTFFDSTVTdsdfsgdv3422kjhLghnh53QiT8F" messages = [] while True: message = input("User: ") # вводим сообщение if message == "quit": break messages.append({"role": "user", "content": message}) chat = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages = messages) reply = chat.choices[0].message.content print(f"ChatGPT: {reply}") messages.append({"role":"assistant", "content": reply})
Сначала импортируем нужный нам пакет
import openai
Далее устанавливаем токен, который будет использоваться для отправки запросов к ChatGPT:
openai.api_key = "sk-95Ez2Z1rtgegrRTFFDSTVTdsdfsgdv3422kjhLghnh53QiT8F"
Далее определяем список сообщений (по умолчанию пустой)
messages = []
В бесконечном цикле считываем сообщения, введенные пользователем
message = input("User: ")
Чтобы пользователь мог выйти из диалога с чат-ботом, пусть, если пользователь ввел "quit", то завершаем диалог:
if message == "quit": break
После ввода добавляем введеное сообщение в список messages:
messages.append({"role": "user", "content": message})
Причем сообщение добавляется в виде словаря, где ключ "role" определяет, кто отправил сообщение. Для текущего пользователя в качестве роли устанавливаем "user". Другой элемент словаря - "content" собственно хранит текст сообщения, которое отправляется чат-боту.
Дальше выполняем запрос к ChatGPT:
chat = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages = messages)
Для выполнения запроса в метод create()
передается название модели и список сообщений.
После этого из переменной chat
мы сможем получить ответ чат-бота.
reply = chat.choices[0].message.content
Далее выводим ответ от ChatGPT на консоль и добавляем его ответ в список messages:
messages.append({"role":"assistant", "content": reply})
В списке сообщений все ответы от ChatGPT сопоставляются с ролью "assistant".
Пример работы программы: