Набирает обороты тема нейросотрудников на основе моделей ChatGPT уровня 3.5 и выше LLM. Я уже постоянно слышу такие термины, как нейропродавец, нейропсихолог, нейроконсультант и т. д.
Попробуем разобраться, как это работает внутри, и собрать, например, выложенного на АВИТО продавца нейроавтомобилей.
Механика работы сотрудника такая: берем ссылку на любое объявление о продаже автомобиля на АВИТО и наш нейро-продавец должен отреагировать так, как будто он «смотрит» на эту страницу, и убедить потенциального покупателя «купить». автомобиль.
Шаг 1: написание системной роли
Системная роль в ChatGPT (далее роль) является основной управляющей инструкцией и может принимать активное участие в диалоге с пользователем, поддерживая общение на различные темы. Она может задать дополнительные вопросы, высказать мнение или предложить альтернативы.
Системная роль в ChatGPT (далее роль) является основной управляющей инструкцией и может принимать активное участие в диалоге с пользователем, поддерживая общение на различные темы. Она может задать дополнительные вопросы, высказать мнение или предложить альтернативы.
Добавим еще один, чтобы наш нейропродавец мог понять, на каком языке его спрашивают, и переключиться на язык покупателя.
Затем мы получаем следующий текст из роли:
Вы являетесь владельцем автомобиля, выставленного на продажу на портале объявлений АВИТО.
Вам пишет потенциальный покупатель, и ваша задача продать машину, используя все аргументы в свою пользу.
Всегда отвечайте на том же языке, на котором был задан вопрос.
При ответе на вопрос необходимо каждый раз выполнять функцию «parse_url» с параметром «url», равным «ЗДЕСЬ_LINK_TO_AD» и использовать полученную информацию для ответа на вопрос покупателя, чтобы убедить его купить автомобиль.
Здесь мы видим вызов функции «parse_url». Каковы особенности ChatGPT 3.5? Давайте посмотрим это.
Шаг 2. Напишите функцию ChatGPT для получения информации с сайта.
Передача функции в ChatGPT реализована так:
import requests
import json
openai_api_key = "YOUR_OPENAI_API_KEY"
openai_api_url = "<
headers = {
"Content-Type": "application/json",
}
data = {
"model": "gpt-4",
"messages": [
{"role": "system", "content": "ТУТ_ТЕКСТ_НАШЕЙ_РОЛИ"},
{"role": "assistant", "content": "?"},
{"role": "user", "content": "А что такой небольшой пробег у тачки?"},
],
"functions": [
{
"name": "parse_url",
"description": "Получение данных с сайта",
"parameters": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Ссылка на сайт"
},
},
"required": ["url"]
}
}
]
}
response = requests.post(openai_api_url, auth=('', openai_api_key), headers=headers, data=json.dumps(data))
print(response.json())
На этот вызов мы получаем ответ:
{
"id": "chatcmpl-123",
...
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"function_call": {
"name": "parse_url",
"arguments": "{ \\"url\\": \\"*___ТУТ_ССЫЛКА_НА_ОБЪЯВЛЕНИЕ___*\\"}"
}
},
"finish_reason": "function_call"
}]
}
Как мы видим, ответ ChatGPT содержит ключ «function_call» с именем нашей функции.
Далее нам нужно вызвать функцию, чтобы получить погоду, вот так:
import requests
import json
def parse_url(url):
url_content = requests.get(url).text
openai_api_key = "YOUR_OPENAI_API_KEY"
openai_api_url = "<
headers = {
"Content-Type": "application/json",
}
data = {
"model": "gpt-4",
"messages": [
{"role": "system", "content": "ТУТ_ТЕКСТ_НАШЕЙ_РОЛИ" + url_content},
{"role": "assistant", "content": "?"},
{"role": "user", "content": "А что такой небольшой пробег у тачки?"},
],
}
response = requests.post(openai_api_url, auth=('', openai_api_key), headers=headers, data=json.dumps(data))
print(response.json())
В результате мы получим аналогичный ответ (для вас он будет разным в зависимости от информации в объявлении):
Машина новая, только что из салона. Это связано с небольшим пробегом.
Если мы далее спросим по-английски «можете ли вы дать скидку?» » получаем ответ:
У нас уже очень конкурентная цена, учитывая, что машина практически новая с пробегом всего 20 км. Однако я готов рассмотреть разумные предложения. Что ты предлагаешь?
Еще примеры диалогов с таким сотрудником:
Краткое содержание
Если вы хотите попробовать обучить таких нейросотрудников, напишите мне на почту телеграмма и я дам вам доступ к платформе, где вы сможете испытать это.