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:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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}) |
Сначала импортируем нужный нам пакет
1
|
import openai |
Далее устанавливаем токен, который будет использоваться для отправки запросов к ChatGPT:
1
|
openai.api_key = "sk-95Ez2Z1rtgegrRTFFDSTVTdsdfsgdv3422kjhLghnh53QiT8F" |
Далее определяем список сообщений (по умолчанию пустой)
1
|
messages = [] |
В бесконечном цикле считываем сообщения, введенные пользователем
1
|
message = input ( "User: " ) |
Чтобы пользователь мог выйти из диалога с чат-ботом, пусть, если пользователь ввел "quit", то завершаем диалог:
1
|
if message = = "quit" : break |
После ввода добавляем введеное сообщение в список messages:
1
|
messages.append({ "role" : "user" , "content" : message}) |
Причем сообщение добавляется в виде словаря, где ключ "role" определяет, кто отправил сообщение. Для текущего пользователя в качестве роли устанавливаем "user". Другой элемент словаря - "content" собственно хранит текст сообщения, которое отправляется чат-боту.
Дальше выполняем запрос к ChatGPT:
1
|
chat = openai.ChatCompletion.create(model = "gpt-3.5-turbo" , messages = messages) |
Для выполнения запроса в метод create()
передается название модели и список сообщений.
После этого из переменной chat
мы сможем получить ответ чат-бота.
1
|
reply = chat.choices[ 0 ].message.content |
Далее выводим ответ от ChatGPT на консоль и добавляем его ответ в список messages:
1
|
messages.append({ "role" : "assistant" , "content" : reply}) |
В списке сообщений все ответы от ChatGPT сопоставляются с ролью "assistant".
Пример работы программы:
Автор: Евгений Морковин
0 комментариев