Наш стартап по созданию no-code платформы нейро-сотрудников на базе ChatGPT (и других LLM) наконец-то добрался до очень важного рубежа:
Объединение нейро-сотрудников в полноценные отделы с руководителями и подчиненными, выполняющее цепочки задач в которых также могут участвовать и живые люди, причем, на любом этапе цепочки.
Для данной статьи мы выбрали в качестве пример отдел SMM, задача которого продвигать ваш Телеграм канал.
Представьте, что в 10.00 по понедельникам на ваш сотовый телефон поступает такой звонок:
Предположим, вы захотели пост про женскую красоту. После того как вы сформулировали эту задачу и получили подтверждение от нейро-сотрудника что задача принята, через несколько минут вам приходит сообщение (например на ваш Телеграм или WhatsApp):
После этого сообщения бот спрашивает вашего одобрения на публикацию поста, и еще через пару минут пост опубликован в вашем канале:
Далее мы вами подробно разберем как это работает и какое количество нейро-сотрудников было задействовано для реализации данной цепочки задач.
Но давайте по порядку…
Что такое нейро-сотрудник?
Этот термин сейчас все чаще виден в сети и это конечно же благодаря выходу ChatGPT 3.5, поскольку именно такой уровень ИИ позволяет уже “повысить” чат-ботов в звании и с гордостью перевести их в Сотрудники.
Чтобы отличать обычных сотрудников и таких продвинутых ботов мы называем их нейро-сотрудниками.
Как создается нейро-сотрудник?
Это удивительно, но для создания эффективного нейро-сотрудника не нужно знание программирования от слова СОВСЕМ!
Давайте для примера разберем одного нейро-сотрудника из нашего первого отдела.
Знакомьтесь:
SMM-копирайтер — Полина
Она работает вот по такой простой инструкции:
Цель: Создать такой креатив, который понравится заказчику. Роль: Ты - женщина. Тебя зовут - Полина Ты работаешь в должности - SMM-копирайтер Ты создаешь идеи для SMM-контента, SEO-описания, META-теги по запросу заказчика. Поведение: Старайся угодить заказчику.
Конечно, это очень базовый пример роли (промпта) для нейро-сотрудника, но нам сейчас важно понять с вами принципы их работы и дойти до главного — а как они работают в команде и выполняют реальные цепочки задач.
В каких каналах может вести общение нейро-сотрудник?
Любой нейро-сотрудник может писать первым или отвечать по любому из этих каналов:
Нейро-сотрудник умеет говорить?
Да, еще как умеет! Благодаря современным технологиям по распознаванию и синтезу голоса нейро-сотрудник не только понимает речь на любом языке, но еще и ответ может синтезировать тем же голосом и на разных языках.
Вот пример переключения на разные языки в рамках одного диалога и с сохранением тембра и стиля синтезируемого голоса:
Вы конечно скажете: “Ну, с такими задержками кому это надо?”
Но представьте, что вам звонить ваш собственный нейро-руководитель отдела SMM и просит у вас дать ему поручение, неужели вы так расстроитесь из-за небольших задержек в диалоге?
Итак, как же выглядит цепочка задач в нашем нейро-отделе SMM?
Цепочка задач SMM отдела нейро-сотрудников
Внутренний код для задания цепочки задач выглядит так:
arguments = { 'phone' : '+79123456789', # это номер на который нужно позвонить для получения задания 'telegram' : '@TelegramUserName', # Это ник реального сотрудника, который утвердит тест поста перед публикацией 'channel_id' : '@telegram_channel', # Это ID вашего телеграм канала 'bot_token' : 'XXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXX', # Это токен бота, который в вашем канале имеет права на публикацию постов } chain = [ { 'employee_id' : None, 'role' : 'Запроси на какую тему нужно составить пост для Телеграм канала и сразу после получения ответа заверши диалог фразой: ```Хорошо, я вас понял.```.', 'hello_text' : 'Здравствуйте! На связи руководитель вашего SMM-отдела нейро-сотрудников. На какую тему желаете опубликовать пост?', 'model' : 'gpt-4-1106-preview', 'temperature' : 0.1, 'limit' : 5, 'external_dialog' : { 'client_dict' : {'name' : 'User', 'phone': arguments['phone']}, 'channel' : 'Voximplant', 'voice' : 'Morpheus_RU' }, }, { 'employee_id' : 1556, 'role' : 'Ты - ChatGPT', 'hello_text' : 'Напиши пост для Телеграм канала по этой просьбе человека: ##task_result##', 'model' : 'gpt-4-1106-preview', 'temperature' : 0.1, 'limit' : 5, 'external_dialog' : None, }, { 'employee_id' : 1554, 'role' : 'Ты - ChatGPT. Твоя задача утвердить текст поста.', 'hello_text' : 'Прошу подтвердить размещение такого поста в вашем телеграм канале: `##task_result##`. Отправьте мне ? если текст Вам нравится.', 'model' : 'gpt-4-1106-preview', 'temperature' : 0.1, 'limit' : 10, 'external_dialog' : { 'client_dict' : {'name' : 'User', 'phone': arguments['telegram']}, 'channel' : 'Telegram', }, }, { 'employee_id' : 1553, 'role' : 'Ты - ChatGPT.', 'hello_text' : f""" ID канала: "{arguments['channel_id']}" Токен бота: "{arguments['bot_token']}" Напиши пост на эту тему: ```##task_result##``` """, 'model' : 'gpt-4-1106-preview', 'temperature' : 0.1, 'limit' :5, 'external_dialog' : None, }, ]
Теперь давайте разбирать по шагам каждый блок этой цепочки.
Звено №1: Звонок на обычный сотовый телефон для получения задачи
Вот такими параметрами задается исходящий звонок на сотовый телефон:
{ 'employee_id' : None, 'role' : 'Запроси на какую тему нужно составить пост для Телеграм канала и сразу после получения ответа заверши диалог фразой: ```Хорошо, я вас понял.```.', 'hello_text' : 'Здравствуйте! На связи руководитель вашего SMM-отдела нейро-сотрудников. На какую тему желаете опубликовать пост?', 'model' : 'gpt-4-1106-preview', 'temperature' : 0.1, 'limit' : 5, 'external_dialog' : { 'client_dict' : {'name' : 'User', 'phone': arguments['phone']}, 'channel' : 'Voximplant', 'voice' : 'Morpheus_RU' }, },
В параметре role мы передаем ту самую роль (промпт) который будет определять общение нашего руководителя SMM-отдела. Мы видим, что его роль очень проста — узнать на какую тему нужно создать пост и сразу после этого завершить диалог.
В параметре hello_text мы задаем ту фразу, которую скажет наш нейро-руководитель, когда человек возьмет трубку.
Вот текст роли нашего нейро-руководителя Марка:
Цель: Получить все требуемые параметры для запуска функции "chain_telegram_channel_post". Роль: Ты - мужчина. Тебя зовут - Марк Ты работаешь в должности - Руководитель SMM-отдела Ты должен помогать клиенту с продвижением его телеграм канала. Поведение: Говори кратко. Ничего не выдумывай. Только при получении всех требуемых параметров запусти функцию "chain_telegram_channel_post".
chain_telegram_channel_post — это и есть та самая наше цепочка задач, которую и вызывает Марк.
Звено №2: Пишем пост на заданную тематику
После завер1шения разговора по телефону вся расшифровка этого диалога передается на вход следующему сотруднику в цепочке, давайте разберем его код:
{ 'employee_id' : 1556, 'role' : 'Ты - ChatGPT', 'hello_text' : 'Напиши пост для Телеграм канала по этой просьбе человека: ##task_result##', 'model' : 'gpt-4-1106-preview', 'temperature' : 0.1, 'limit' : 5, 'external_dialog' : None, }
employee_id — это уникальный номер нейро-сотрудника на платформе. В нашем случае это как раз та самая SMM-копирайтер Полина, роль которой мы рассмотрели в начале статьи.
role — вот тут ВНИМАНИЕ!!! это внутренняя роль, которая будет общаться с нейро-сотрудником Полиной и просить её написать статью на нужную тему.
hello_text — этим текстом наша внутренняя роль поприветствует Полину и попросит написать пост. Внимание снова — ##task_result## — этот блок будет заменен на диалог из предыдущего звена нашей цепи, в данном случае сюда будет подставлена расшифровка телефонного разговора где человек задает тематику поста.
Еще раз приведём текст роли Полины:
Цель: Создать такой креатив, который понравится заказчику. Роль: Ты - женщина. Тебя зовут - Полина Ты работаешь в должности - SMM-копирайтер Ты создаешь идеи для SMM-контента, SEO-описания, META-теги по запросу заказчика. Поведение: Старайся угодить заказчику.
Звено №3: Подтвердить текст поста у человека, написав ему в Телеграм
{ 'employee_id' : 1554, 'role' : 'Ты - ChatGPT. Твоя задача утвердить текст поста.', 'hello_text' : 'Прошу подтвердить размещение такого поста в вашем телеграм канале: `##task_result##`. Отправьте мне ? если текст Вам нравится.', 'model' : 'gpt-4-1106-preview', 'temperature' : 0.1, 'limit' : 10, 'external_dialog' : { 'client_dict' : {'name' : 'User', 'phone': arguments['telegram']}, 'channel' : 'Telegram', }, }
Получив текст поста от Полины мы передаем эстафету следующему сотруднику — секретарю Ксении:
Вот роль Ксении на платформе:
Цель: Отвечай на вопросы, помогай. Роль: Ты - женщина. Тебя зовут - Ксения Ты работаешь в должности - Секретарь Твоя роль - выполнять поручения. Поведение: Отвечай лаконично. При просьбе завершить диалог вышли эмоджи: "?". Если тебе прислали эмоджи "?", то заверши диалог и вышли эмоджи: "?".
Звено №4: Публикация поста в Телеграм канале
{ 'employee_id' : 1553, 'role' : 'Ты - ChatGPT.', 'hello_text' : f""" ID канала: "{arguments['channel_id']}" Токен бота: "{arguments['bot_token']}" Напиши пост на эту тему: ```##task_result##``` """, 'model' : 'gpt-4-1106-preview', 'temperature' : 0.1, 'limit' :5, 'external_dialog' : None, }
Получив подтверждение текста поста у вас, наконец, вступает в дело наш нейро-менеджер Телеграм канала Светлана:
И вот роль Светланы на платформе:
Цель: Сначала узнай токен бота и id телеграм канала для возможности публиковать посты и без этой информации ты не можешь отвечать ни на какие вопросы пользователя. Роль: Ты - женщина. Тебя зовут - Светлана Ты работаешь в должности - Менеджер Телеграм канала Твоя задача размещать интересны, красиво оформленные посты в Телеграм-канале. Поведение: Не используй слишком много смайликов при оформлении поста. Используй только эти два вида выделения для текста: жирный_текст, наклонный_текст.
Какие плюсы дает такой нейро-отдел?
-
Самое очевидный плюс — это экономия времени на выполнение задач, в нашем примере на написание постов.
-
Вы делегируете сложные, рутинные, многоэтапные задачи и получаете гарантию их выполнения строго в заданное время. Например в случае SMM отдела вы можете настроить входящий звонок от нейро-руководителя и посты в вашем канале будут выходить строго по расписанию.
-
Возможность задавать тон, стилистику общения у каждого сотрудника в цепочке. Например нейро-специалисту по SMM Полине можно поставить задачу писать посты в нужной стилистике вашего Телеграм канала и тогда посты будут уже будут более индивидуальными.
-
Возможность масштабировать и расширять возможности отдела, добавляя новых нейро-сотрудников. Например в отдел SMM вы можете “принять” еще нескольких SMM нейро-копирайтеров, которые будут писать посты в разных тематиках.
А какие вообще плюсы у технологии цепочек задач?
-
Самый главный плюс — декомпозиция сложной задачи, которая не под силу текущим моделям ИИ, на простые подзадачи и тем самым повышение точности результата.
-
Цепочка задач с вовлечением реальных людей позволяет почти полностью исключить возможность ошибок ИИ связанных с галюционированием. Вы просто ставите в нужных местах цепочки контрольные точки в которых нужно сверить результат с живым сотрудником.
Перспективы
Как вы понимаете, такая архитектура построения цепочек задач открывает безграничные возможности применения нейро-сотрудников.
Вот, для примера, еще один возможный отдел нейро-сотрудников:
Отдел составления отчетности
-
Руководитель отдела
-
Прием задачи
-
Постановка задачи сотрудникам
-
Утверждение промежуточных результатов с Заказчиком
-
-
Аналитик-программист
-
Подготовка заданий для Администратора базы данных
-
Выборка данных по API из корпоративной базы данных
-
Анализ данных при помощи Python
-
-
Менеджер по составлению отчетов
-
Генерация графиков (в том числе используя Python)
-
Генерация PDF
-
Генерация SVG
-
-
Менеджер-секретарь
-
Рассылка отчетов по Email
-
Уточнение данных у реальных людей
-
Если у вас есть идея для создания отделов нейро-сотрудников, пожалуйста, напишите их в комментариях. Мы обязательно ответим на любую такую идею, и возможно даже сразу реализуем её.
ChainAPI
В данный момент у нас развернуто отдельное API в котором выполняются все цепочки задач.
Вот варианты как вы можете использовать запускать выполнение цепочек задач через ChainAPI:
-
При срабатывании события в вашей CRM системе
-
При действиях клиентов на вашем сайте
-
При создании чат-ботов в любых сервисах, в том числе в OpenAI GPT Store
-
При работе в Google документах
-
При постановке событий в облачные календари Google, Yandex, Microsoft
-
При получении или отправке Email
-
и т.д.
Вот пример запуска цепочки задач по нашему примеру с нейро-отделом SMM:
import requests import json job_id = 1557 # Это номер нейро-руководителя Марка hello_text = """ Задачу получи у +79121234567 Текст поста согласуй с @UserName ID канала: @custom_ai_channel Токен бота: XXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXX """ # Этот текст получит Марк и сразу запустит выполнение цепочки задач по этим данным chain = [ { 'employee_id' : job_id, 'role' : 'Ты - ChatGPT', 'hello_text' : hello_text, 'model' : 'gpt-4-1106-preview', 'temperature' : 0.1, 'limit' : 5, 'external_dialog' : None, }, ] data = { "openaikey" : 'sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', "chain" : chain, } logger.debug(f"/run_chain data {data}") response = requests.post('https://ChainAPI/api/v1.0/dialog_chain', data=json.dumps(data)) return "Цепочка задач запущена."
Итог
Предлагаю всем кому интересно попробовать поставить задачу нашему отделу SMM написать мне в Телеграм и я отправлю звонок нейро-руководителя на его номер.
P.S. Ссылки на другие мои статьи по нейро-сотрудникам:
-
Даём нейро-сотруднику на ChatGPT управлять календарем Google через Telegram бот
-
Может ли нейро-сотрудник на базе ChatGPT звонить по обычной телефонной линии?
-
Гайд в 2 шага по созданию нейро-продавца машин на AVITO на базе LLM моделей
-
Нейро-сотрудники на основе ChatGPT. Вы создаете работника и продаете его на биржу труда
P.P.S. Для тех, кому любопытно выкладываю еще запись видео с консоли где видно внутренее общение нейро-сотрудников между собой:
ссылка на оригинал статьи https://habr.com/ru/articles/785888/
Добавить комментарий