Главная страница
Навигация по странице:

  • 4.2 BotFather. Настройка бота

  • 4.3 Подключение библиотеки ДКА Fysom

  • 4.4 ApiTelegramBot

  • 4.5 Технология добавления новых веток в КДА

  • 5 ИНТЕРФЕЙС И ТЕСТИРОВАНИЕ TELEGRAM БОТА “РОБОТ-ЮРИСТ”

  • ЗАКЛЮЧЕНИЕ

  • авыа ыва ыва. Diplomnaya.Rabota._цуеуцеыы1_ — копия. ЫНаучный руководитель ученая степень, должность


    Скачать 1.57 Mb.
    НазваниеЫНаучный руководитель ученая степень, должность
    Анкоравыа ыва ыва
    Дата18.05.2022
    Размер1.57 Mb.
    Формат файлаdocx
    Имя файлаDiplomnaya.Rabota._цуеуцеыы1_ — копия.docx
    ТипРеферат
    #537003
    страница2 из 7
    1   2   3   4   5   6   7

    4.1.1 Telegram Бот
    Боты телеграмм – аккаунты, которые управляются специальными разными программами. Они используются для:

    - Выполнения команд в чатах;

    - Поиска в интернете;

    - Развлечения;

    - Бизнеса и т.д.

    Он может выполнять за своего владельца какую-либо деятельность. Например, одни из полезных функций ботов является: массовая рассылка, перевод с одного языка на другой, и так далее. Список функций для ботов достаточно широк.

    Чтобы подключить бот достаточно:

    - Войти в telegram;

    - Открыть поиск;

    - Ввести имя бота. Это может быть, например, @telerobot – робот Антон – один из самых популярных в телеграмм.

    После этого, можно задать команды, которые он будет выполнять.

    Каждый выполняет свои команды. Чтобы узнать какие, достаточно всего лишь написать “Помощь” В ответ придёт список команд, которыми можно будет воспользоваться.

    Возможности бота достаточно большие. Многие предприятия и фирмы используют возможность создать свой бот. Это позволяет расширить границы работы и увеличить численность клиентов и обслуживание.

    В данной работе мы используем Telegram Бот в качестве интерфейса для экспертной системы. Данная система поможет ответить на базовые вопросы об алгоритме и перспективах защиты ваших интеллектуальных прав.
    4.2 BotFather. Настройка бота
    Для начала нужно зарегистрировать саму оболочку бота в самом мессенджере, получить присвоенный ей ID, который является также токеном. В Телеграмм помощь при такой регистрации оказывает виртуальный помощник @BotFather.

    Как это сделать:

    1. Ввод команды /start для запроса инструкции.

    2. Отправка установки /newbot.





    1. @BotFather предлагает придумать имя для создаваемого бота. Оно должно заканчиваться словом «bot».





    1. Далее помощник присылает токен нового виртуального пользователя и url для добавления его в список контактов.

    Полученную комбинацию желательно протестировать этой ссылкой: api.telegram.org/bot/getMe.

    Готово, у нас присутствует токен, для дальнейшей работы.
    4.3 Подключение библиотеки ДКА Fysom
    У нас есть метод для создания нашего автомата, в котором есть объект fsm в который мы передаем параметры:

    1. Параметр: список начального состояния в котором состояние ‘waiting_start’.



    1. Перечисление всех событий с переходами.



    Как устроен один из переходов:

    У нас адрес названия состояния откуда мы начинаем (finals) и в состояние, которое мы перейдем ‘show_sections’

    Чтобы совершить переход, нам необходимо вызвать метод, название которого мы указываем здесь:

    Далее, после того, как мы описали все состояния и что необходимо вызвать для их перехода мы описываем callbaks.

    Каждому коллбэку мы даем название и название самого метода, который будет обрабатываться:

    В колбэках мы описываем то, что будет происходить при попадании на такое состояние. Есть определенное соглашение, что название коллбэка должно быть в соответствии с названием состояния и иметь частичку “on” мы даем название которое будет отвечать за происходящее, которое будет отвечать за это состояние.

    Далее то же самое попадая на состояние мы должны будем описать далее, что будет происходить на этом состоянии.

    Например возьмем состояние если мы попадем на него, сработает коллбэк.

    Далее, что происходит в данном коллбэке:

    Описываем работу обработчика события ‘onwaiting_start’.

    будет реагировать на нажатие кнопки /start в интерфейсе Telegram бота. После нажатия на кнопку start запускается метод

    Который заставляет бота отправить сообщение. Далее будет адресован ответ который мы берем из хранилища response_storage.py, обращаемся к нему и обращаемся к переменной , которая обращается к хранилищу и берет данную строку после сохраняет наш chat_id.



    далее вызывается метод для перехода из этого состояния Вся работа этого коллбэка заключалась в том, чтобы отправить нам строку из хранилища и перейти из этого состояния waiting_start. Далее из этого состояния мы переходим дальше

    Дальше смотрим на коллбэк назначанный на ‘show_sections’.

    Здесь мы берем клавиатуру из файла ‘utils’, который находится в отдельном файле со всеми кнопками и попросили бота отправить нам сообщение, где в сообщении содержится новая строка.


    И помимо строки будет содержаться клавиатура.


    В следствии чего мы увидим на экране список с категориями и клавиатуру, чтобы можно было выбрать одну из них.

    Следующий этап - выбор из списка категорий.

    Для того, чтобы бот дальше действовал, нам нужно получить ответ от пользователя.

    Допустим, пользователь нажал на кнопку 3 то у нас callback_data будет 3



    Далее проверяем в каком состоянии мы находились:



    После нажатия на 3 у нас callback_data 3 мы выбрали третью ветку

    и запустили этот метод fsm.selected_third() это означает что мы из состояния show_sections перешли в одно из первых состояний третьей ветки

    Дальше в third1 тоже назначан соответствующий callback

    где тоже берется клавиатура и отправляется пользователю один из вопросов из нашего хранилища response_storage

    вызывается метод где в качестве первого параметра идет в качестве второго параметра мы передаем номер сообщения который у нас идет по счету. Раз мы в первом состоянии нашей 3 ветки, значит это будет под номером 1 и передаем тип

    • сообщения answer или questions



    Это означает, что мы из массива берем соответствующее сообщение.

    И отправляет пользователю и будет ждать ответа на кнопку “Да” или “Нет”

    за которым кроется коллбэк 1 или 2



    После нажатия на соответствующую кнопку, например 1 вызывается этот метод:



    Так мы показали как работают коллбэки в библиотеке Fysom


    4.4 ApiTelegramBot
    Структура библиотеки для ДКА вся расписана, а вот основное содержание всех действий в каждом состоянии работают за счет работы bot api

    Для начала мы подключаем и создаем объект нашего бота.



    После берем токен, который мы получили от BotFather изначально в самом Telegram.

    После мы апперируем всеми методами через библиотеку бота.

    Это некая обертка pyTelegramApi, где все методы расписаны и достаточно при вызове передать параметр. После создания объекта мы обращаемся к этим методам передавая лишь необходимый параметр, что убирает необходимость на более низком уровне взаимодействовать c api


    4.5 Технология добавления новых веток в КДА
    Рассмотрим добавление 7-ой ветки.

    1. Добавляем новую кнопку в Utils.py;






    2) Добавляем в дереве переход;



    3) Добавляем в обработчик всех кнопок;



    после вызова метода автоматически срабатывает переход из состояния ‘show_sections’ в состояние ‘seventh1’.

    4) описываем то, что будет происходить в этом состоянии, для этого прописываем callback .

    5) описываем его работу:



    6) обращаемся к нему в response.storage:



    7) добавляем в категориях:



    8) далее для перехода после нажатия на кнопку No добавляем следующее состояние:



    Далее, если после нажатие No переходим в результативное финальное состояние нам нужно его добавить в finals, чтобы принудильно привести его в начальное состояние после завершения.



    Далее как мы указали изначально разрешаем всем, кто в finals перейти в начальное состояние show_sections:



    также создаем для него коллбэк

    и описываем его, в котором выдаем результат

    и возвращаемся в начальное состояние :



    Таким образом мы описали метод добавления новых веток в нашу экспертную систему.

    5 ИНТЕРФЕЙС И ТЕСТИРОВАНИЕ TELEGRAM БОТА “РОБОТ-ЮРИСТ”


    1. Находим бот в поиске по адресу @itislawyer_bot



    1. Отправляем начальную команду для бота /start

    2. Получаем приветствие и выбор категорий (Рис.5.1).




    Рис.5.1. Приветствие и выбор категорий
    4) Выбираем интересующую категорию и нажимаем на соответствующую кнопку (Рис.5.2).


    Рис.5.2.
    5) Далее нажимаем “Да” и переходим по вопросам по интересующей информации после чего получаем результат, основанный на экспертной системе (Рис.5.3).



    Рис.5.3.
    После чего бот выдает результат и возвращает в исходное состояние (Рис.5.4).


    Рис.5.4.
    Тестируем в боте все кнопки и проверяем все выводы. “Робот-Юрист” готов!

    ЗАКЛЮЧЕНИЕ



    Физическое или юридическое лицо, которое обращается за консультацией, теперь может в удобном и доступном для него виде бесплатно получить экспертную оценку по юридическим вопросам. В конечном итоге мы решили проблему ограниченности физических возможностей. При увеличении объема обращений за консультациями к боту теперь не снизится качество и нет необходимости сокращать количество обращений путем повышения стоимости консультаций, с помощью бота первоначальную помощь по консультациям можно получить благодаря экспертной оценке Telegram бота. Представшая проблема несоответствия возможностей консультанта потребностям консультируемого эффективно решилась автоматизацией. При этом важность чтобы автоматизированное решение было надежным сохранилась (на его решения можно опираться, оно подкреплено ссылками на юридические документы, юридические статьи), представляет собой простой и удобный интерфейс для консультируемого (доступность, быстрое решение вопросов), возможность расширения возможностей по консультации для юристов.

    Для автоматизации решений этих решений я воспользовался экспертной системой на основе баз знаний заранее проверенных самими юристами. Считаю что работа успешно закончена, все цели достигнуты, а задачи решены.






    СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

    1. “Правовая охрана программ и баз данных” [Электронный ресурс]. - Режим доступа: http://compress.ru/article.aspx?id=10582, свободный.

    2. “Экспертная система” [Электронный ресурс]. - Режим доступа: https://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D1%81%D0%BF%D0%B5%D1%80%D1%82%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0, свободный.

    3. “CLIPS” [Электронный ресурс]. - Режим доступа: https://ru.wikipedia.org/wiki/CLIPS, свободный.

    4. “JavaScript” [Электронный ресурс]. - Режим доступа: https://ru.wikipedia.org/wiki/JavaScript, свободный.

    5. “PHP” [Электронный ресурс]. - Режим доступа: https://ru.wikipedia.org/wiki/PHP, свободный.

    6. 6. “Пишем бота для Telegram на языке Python” [Электронный ресурс]. - Режим доступа: https://www.gitbook.com/book/groosha/telegram-bot-lessons/details, свободный.

    7. “Модуль time” [Электронный ресурс]. - Режим доступа: https://pythonworld.ru/moduli/modul-time.html, свободный

    8. “Библиотека Fysom” [Электронный ресурс]. - Режим доступа: https://github.com/mriehl/fysom, свободный

    9. “Callbaks” [Электронный ресурс]. - Режим доступа: https://github.com/tyarkoni/transitions#transition-callbacks, свободный

    10. “Конечные автоматы. Пишем ДКА” [Электронный ресурс]. - Режим доступа: https://habrahabr.ru/post/141503/, свободный

    1   2   3   4   5   6   7


    написать администратору сайта