Telegram Multi-User Client
Last updated
Last updated
Рассмотрим пример робота, который демонстрирует работу телеграм клиента с несколькими пользователями. Каждый пользователь может общаться с Chat GPT (при этом используется индивидуальная история чата). В переменной $NameSession указывается имя сессии, после чего необходимо авторизоваться в клиенте.
Важно! Данные о подключении к Телеграм можно найти по пути: c:\Users\User\AppData\Roaming\Sherpa RPA Data\Telegram\
Проект робота состоит из двух диаграмм.
Основная диаграмма проекта выглядит так (для удобства блоки диаграммы пронумерованы):
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Процесс” позволяет создавать сценарии, состоящие из нескольких диаграмм. Выполнение сценария продолжится с блока “Старт” указанной диаграммы проекта. Выполнение сценария вернётся к текущему блоку и продолжится в текущей диаграмме как только будет достигнут блок “Конец” во внешней диаграмме. Для блока “Процесс” указано свойство “Имя диаграммы” (имя файла диаграммы, в которой продолжится выполнение сценария).
Блок “Клиент. Создать подключение” позволяет создать подключение к Telegram в виде клиента. Для данного блока указаны следующие свойства:
Имя сессии (имя сессии);
Время ожидания (время ожидания ответа от сервера Telegram в секундах).
На выходе получено “Подключение” – переменная с объектом текущего подключения к Телеграм. В остальных блоках необходимо указывать именно эту переменную.
Важно! Для сохранения авторизации необходимо задать уникальное имя сессии и впоследствии для подключения использовать его. При первом запуске откроется форма авторизации. Для авторизации необходимо будет ввести телефон, затем сервис отправит код, который придет в уже подключенный клиент Telegram (например на телефоне). Затем ввести этот код и нажать “Авторизоваться”.
Блок “Клиент. Получить сообщение” позволяет получить сообщение из очереди. Для данного блока указано свойство “Подключение” (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram). На выходе получено “Сообщение” (возвращается объект сообщения. Доступные свойства: Id - id сообщения; Date - дата; From - от кого сообщение; To - кому сообщение; FromId - Id пользователя от кого сообщение; Title - название чата; Text - текст сообщения; Type - текстовое обозначение типа сообщения; IsFile - указывает, есть ли в сообщении файл (здесь можно более точно определить тип с помощью свойств IsDocument, IsPhoto). Например: $TMessage.IsPhoto - если равно $true, то в сообщении есть фото).
Примечание: если сообщений в очереди нет, то генерируется ошибка.
Блок “Присвоить значение переменной” устанавливает новые значения для одной или нескольких переменных. В данном случае, в свойствах указано одно значение, которое необходимо присвоить одной переменной, соответственно.
Блок “Получить путь” позволяет узнать полный путь к файлу/директории. Для данного блока указаны следующие свойства:
Путь к папке (путь к папке, в которой располагается необходимый файл);
Имя файла (имя файла).
Блок “Контейнер” позволяет сворачивать содержимое. Под содержимым понимаются блоки, исходящие от текущего через нижний коннектор. Для правильной работы блоки этого контейнера должны заканчиваться блоком “Конец”. По окончании работы внутренних блоков будет произведен переход по коннектору “Выход”. В данном случае, в контейнере "Загружаем данные клиента" Вы можете переключить "Промты" (или задать свои) и этим указать поведение чат бота.Содержимое блока “Контейнер” для данной диаграммы выглядит так:
7.1 Блок “Загрузить из CSV” позволяет загрузить таблицу данных из CSV-документа. Для данного блока указаны следующие свойства:
Путь к файлу (путь к документу, из которого необходимо загрузить информацию в Таблицу Данных);
Разделитель (символ разделителя,по умолчанию используется точка с запятой);
Кодировка (кодировка файла).
7.2 Блок “Выполнить выражение” запускает выполнение одного или нескольких выражений на языке, совместимом с PowerShell. В данном случае используются два выражения.
7.3 Блок “ToDo” используется как заглушка или напоминание для планируемых к реализации функций. В отличие от блока “Комментарий” данный блок является элементом сценария, но не выполняет никаких действий.
7.4 – 7.11 Блоки “Добавить строку” позволяют добавить строку в таблицу данных. Для данных блока указаны следующие свойства:
Таблица (таблица данных, в которую добавляется строка);
Значения (список значений новой строки).
7.12 и 7.13 Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).
Блок “Добавить строку” позволяет добавить строку в таблицу данных. Для данного блока указаны следующие свойства:
Table/Таблица (таблица данных, в которую добавляется строка);
Values/Значения (список значений новой строки).
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота ID клиента и его текстовое сообщение. В Оркестраторе данное сообщение робота будет помечено как “Info”.
Блок “Запрос к ChatGPT” позволяет отправлять запросы к новым генеративным моделям от Open AI начиная с ChatGPT. С его помощью вы можете создавать новые тексты по запросу, выполнять разнообразные задачи классификации, суммаризации, перевода и рерайтинга текстов, написание прототипов кода на разных языках программирования, парсить полуструктурированные и неструктурированные данные, извлекать и обрабатывать факты, поддерживать диалог на разнообразные темы, и многое другое. Оплата за использование данного функционала списывается с лицевого счета клиента на платформе. Для тестовых целей каждому новому пользователю дается возможность протестировать данный функционал без оплаты. При использовании данного функционала после окончания разработки робота необходима оплата. Для данного блока указаны следующие свойства:
История чата (историю чата, на основе контекста которого нейросеть должна сгенерировать ответ);
Модель (модель для генерации ответа);
Температура (десятичное дробное число от 0 до 1, показывающее степень "случайности" или "креативности" результата, где 0 - наименее креативный результат, а 1 - максимально случайный.);
Максимальная длина (максимальная длина результата, выраженная в условных токенах);
Автоограничение длины (установленный флаг включает автокоррекцию максимальной длины результата);
Таймаут (максимальное время ожидания ответа в секундах).
Блок “Добавить строку” позволяет добавить строку в таблицу данных. Для данного блока указаны следующие свойства:
Table/Таблица (таблица данных, в которую добавляется строка);
Values/Значения (список значений новой строки).
Блок “Лог” позволяет выводить в лог произвольные сообщения и/или значения переменных в процессе работы сценария робота. Для данного блока указано свойство “Значение”. В кавычках указана текстовая константа, а имя переменной начинается с символа $. Т.е., данный блок записывает в лог робота ID клиента и ответ на его запрос. В Оркестраторе данное сообщение робота будет помечено как “Info”.
Блок “Клиент. Отправить сообщение” позволяет отправить текстовое сообщение. Для данного блока указаны следующие свойства:
Подключение (объект подключения клиента. Название переменной в данном свойстве должно совпадать с названием переменной в свойстве "Подключение", блока "Клиент. Создать подключение" из группы Telegram, который ранее использовался для подключения клиента Telegram);
Назначение (объект назначения. Данная строка может содержать следующие значения: Id чата, название чата, Id пользователя, комбинацию "FirstName LastName" пользователя, значение Username пользователя, телефон пользователя);
Ответ на сообщение (ID сообщения, на которое необходимо ответить);
Текст (текст сообщения).
Блок “Сохранить в CSV” позволяет сохранить таблицу данных в CSV-документ. Для данного блока указаны следующие свойства:
Таблица Данных (таблица данных, которую необходимо сохранить в документе);
Путь к файлу (путь к документу, в который необходимо сохранить Таблицу Данных);
Разделитель (символ разделителя, по умолчанию используется точка с запятой);
Кодировка (кодировка файла);
Записать заголовки (установленный флаг включает запись заголовков таблицы).
Блок “Пауза” приостанавливает выполнение работы сценария на заданное время. Для данного блока указаны следующие свойства:
Единица измерения (единица измерения, в которой задана длительность паузы);
Длительность (значение промежутка времени в заданных единицах измерения).
Блок “Требуется остановка” проверяет необходимость остановки сценария.
Для данного блока на выходе, в строке “Результат” указана переменная $NeedStop.
Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).
Диаграмма “Настройки”
Блок “Старт” (с этого блока начинается любая диаграмма).
Блок “Объединить путь” объединяет строки в путь. Для данного блока указано свойство “Начальный путь”.
Блок “Создать папку” позволяет создать новую папку. Для данного блока указано свойство “Имя папки” (полное имя новой папки).
Блок “Конец” (этим блоком завершается работа сценария или возврат диаграммы подпроцесса в основной процесс).