Файл: Телеграммбот построения маршрута с использованием общественного транспорта города Киева.pdf

ВУЗ: Не указан

Категория: Дипломная работа

Дисциплина: Не указана

Добавлен: 12.01.2024

Просмотров: 199

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Поскольку остановки общественного транспорта меняются не часто, мы можем хранить информацию о них в базе данных, чтобы не тратить время и ресурсы для поиска. Аналогично мы можем сделать с информацией о маршрутах и графиках общественного транспорта.
Также пользователь захочет видеть график прибытия общественного транспорта на остановку, тип и маршрут. Для того чтобы находить остановки общественного транспорта, находящиеся неподалеку от пользователя, мы должны получить доступ от пользователя на отслеживание его местонахождение.
Пользователю предоставляется возможность ввести нужный ему адрес или выбрать необходимую остановку и в зависимости от выбранного адреса или остановки телеграмм-бот строит для пользователя оптимальный маршрут передвижения по городу
Киеву с использованием общественного транспорта.
Письмо
ИТ51.320БАК.002 ПО
9
Изм.
Письмо
№ докум.
Подпись
Дата

3 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

Проанализировав все возможные варианты создания данного чат-бота было обнаружено, что для написания такого бота необходимо использовать один из языков серверного программирования: Ruby, Node.JS, Python, PHP. Необходимо определить, какой именно язык лучше всего подходит для написания такого бота.
Также важно умение работать с REST (Representational State Transfer) API (Application
Programming Interface), которые предоставляют мессенджеры, а в данном случае это
– TelegramBotAPI. После этого важно определиться с типом бота:
а) боты, имеющие способность к обучению (т.е. понимающие естественные языки), умеющие использовать логику при общении с пользователем и обрабатывать естественный язык для создания ответа на сообщения;
б) заскриптированные боты (боты, которые не способны понять естественный язык), у них диалог с пользователем – это заранее сформированный набор слов или предложений, а «скрипт» – это своеобразное дерево решений, в котором сценарий, запрограммированный заранее, является ответом на вопросы пользователя . Диалоги у них в большинстве случаев линейны и структурированы.
И в заключение, нужно определить цель бота, поскольку у него должна быть определенная цель, потому что в противном случае он не будет иметь смысла.
Письмо
ИТ51.320БАК.002 ПО
10
Изм.
Письмо
№ докум.
Подпись
Дата

4 ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ
4.1. Приложение Eway
В ходе детального изучения предметной области, было найдено приложение
“Eway” и соответствующий веб-сайт.
Поскольку приложения начинают терять популярность, большая часть людей начинает использовать телеграммы-боты в повседневной жизни, я решил выбрать тему: телеграмм-боты для построения маршрута с использованием общественного транспорта в городе Киеве. Поэтому для того чтобы создать телеграмм-бота, который будет иметь возможности web-сайта и приложения, нужно определить основные возможности приложения и web-сайта.
Приложение "Eway" подойдет, прежде всего, для того, чтобы отслеживать нужный вам транспорт на маршруте. Вы сможете выйти из дома и дойти до остановки как раз до прибытия. Единственный минус – пока еще не все транспортные средства снабжены GPS-маячками, поэтому их движение нельзя увидеть на карте. Но, что касается Киева, почти все маршруты «Киевпасстранса» и крупных транспортных компаний уже синхронизированы с приложением, правда, часть из них не отображается в режиме реального времени.
Пользоваться приложением несложно: нужно включить GPS на своем устройстве, и дальше Eway сам установит ваш город по умолчанию и найдет ближайшие остановки. Среди них выбирается нужная, далее – соответствующий маршрут из списка транспорта. Приложение показывает ожидаемое время прибытия транспорта конкретного маршрута на остановку на закладке с общей информацией, а также информацию об интервале движения транспорта, времени его работы и стоимости проезда. В подменю «Карта» видно, где именно находится нужный вам троллейбус/трамвай/маршрутка.
Среди других полезных функций следует отметить прокладку маршрутов с прорисовкой на карте города (метрополитен тоже учитывается).
Кстати, сейчас сервис работает в меньшем количестве городов Украины, чем вначале, из-за конфликтов с компаниями, установившими права на
Письмо
ИТ51.320БАК.002 ПО
11
Изм. Письмо
№ докум.
Подпись
Дата

передачу GPS-данных. Отслеживание маршрутов есть в Киеве, Днепре, Каменском,
Полтаве, Дрогобыче, Хмельницком, Кропивницком, Львове.
Среди преимуществ данного приложения можно выделить следующие: пользователь может получить необходимую информацию об общественном транспорте, его местонахождении, времени прибытия, ближайших остановках и возможности построить маршрут.
Основными недостатками являются:
а) отсутствие GPS-маячков на всех транспортных средствах; б) медленная скорость работы;
в) отсутствие телеграмм-бота.
Поскольку нет телеграмм-бота, который был бы связан с нашей предметной областью, мы рассмотрим телеграмм бот «Синоптик»@synbot.
4.2. Synbot
Synbot – это бот, главная цель которого состоит в информировании пользователя о последнем прогнозе погоды. Этот бот может предоставлять информацию о прогнозе погоды не только на текущий день, но и на несколько последующих.
Каждое утро люди интересуются прогнозом погоды. Иногда для получения последнего прогноза погоды с помощью обозревателя или приложения не хватает времени. Synbot минимизирует затраты времени на получение прогноза погоды, достаточно открыть приложение Telegram и войти в чат с ботом, который поможет помочь определиться с гардеробом. Именно благодаря быстродействию этот бот становится все популярнее.
Рассмотрим основные функции данного бота. Как только мы открываем диалог с ботом, пользователю сразу предоставляется возможность узнать прогноз погоды на текущий день. Далее бот позволяет выбрать параметры отображения прогноза погоды, такие как: период времени, город, максимальная и
Письмо
ИТ51.320БАК.002 ПО
12
Изм.
Письмо
№ докум.
Подпись
Дата
минимальная температура воздуха, преимущественное направление ветра и возможность осадков.
Если есть необходимость, пользователь может сохранить ранее введенные параметры и настроить автоматические оповещения, то есть сообщения от бота с прогнозом погоды.
Преимущества Synbot:
а) удобство интерфейса;
б) возможность регулировать и сохранять параметры; в) быстродействие;
г) простой алгоритм действия; д) автосообщение.
Письмо
ИТ51.320БАК.002 ПО
13
Изм.
Письмо
№ докум.
Подпись
Дата

5 РАЗРАБОТКА TELEGRAM-БОТА
5.1 Регистрация чат-бота для Telegram Bot API
Первым шагом для разработки бота является регистрация у специального чат-бота BotFather. Регистрация начинается с команды "/newbot", после чего предлагается ввести название чат-бота с обязательным условием: в конце название должно быть указано "Bot" или "_bot". Если все условия были выполнены, то BotFather выдает токен (специальный набор символов для доступа к HTTP API Telegram Bot) и URL-адрес для доступа из чат-бота.
Для установки дополнительных параметров, таких как иконка чат-бота, поздравительное сообщение, описание чат-бота, а так же удаление имеющихся чат- ботов, существуют следующие команды (таблица 5.1.1).
Таблица 5.1.1 – Доступные команды для смены чат-ботов
Команда
/setname
Описание
Изменение существующего имени
Присваивает текст,
отображаться при первом открытии
Присваивает текст в поле «О чат-боте»
Присваивает выбранную картинку позволяет создать список доступных команд
Удаляет выбранного чат-бота какой будет
/setdescription
/settabouttext
/setuserpic
/setcommands
/deletebot
Кроме команд для изменения основных параметров чат-бота существует ряд команд, позволяющих выводить неизменные параметры (токен), а так же присваивать значения, представленные в таблице 5.1.2.
Письмо
ИТ51.320БАК.002 ПО
14
Изм.
Письмо
№ докум.
Подпись
Дата


Таблица 5.1.2. – Доступные команды для дополнительной настройки чат-бота
Команда
/ token
Описание
Возвращает полученный ранее токен у выбранного бота
Аннулирует токен доступа к боту
Включает или отключает возможность вызвать бота из других чатов
Включает или выключает возможность передачи местоположения бота с другого чата
Позволяет получать информацию о количестве избранных пользователями команд
Определяет, может ли быть добавлен в групповые диалоги бот
Включает режим конфиденциальности. В этом режиме бот получает, обрабатывает и отправляет обратно информацию отдельно для каждого пользователя в чате.
/ revoke
/ setinline
/setinlinegeo
/setinlinefeedback
/setjoingroup
/setprivacy
После настроек на стороне Telegram и получения токена можно приступить к разработке программной части чат-бота.
5.2 Размещение чат-бота на удаленном сервере Heroku
Для постоянного и быстрого получения доступа к нашему чат-боту после разработки его необходимо разместить на локальном сервере. В качестве платформы был выбран Heroku. Размещение на облачной PaaS-платформе
Heroku схоже с работой распределенной системы контроля версий (Git).
Письмо
ИТ51.320БАК.002 ПО
15
Изм.
Письмо
№ докум.
Подпись
Дата

Существует три способа развертывания:
а) Heroku Git и Container Registry используя Heroku CLI; б) подключение аккаунта GitHub с автоматическим развертыванием; в) подключение аккаунта Dropbox с автоматическим развертыванием.
В работе был выбран способ и использование Heroku CLI.
а) для развертывания чат-боты были выполнены следующие действия: б) регистрация на облачную SaaP-платформу Heroku;
в) загружен и установлен Heroku CLI;
г) в терминале операционной системы или встроенном в IDE выполнен вход в аккаунт Heroku команду «heroku login»;
д) клонированный репозиторий из удаленного Git-сервера
Heroku на локальную машину с помощью команды heroku git: clone -a
;
е) зафиксированные изменения в коде с помощью команд git add. И «git commit
- am »;
ж) все зафиксированные изменения были отправлены на удаленный сервер облачных вычислений Heroku командой git push heroku master.
После выполнения всех указанных команд в правильной последовательности начинается передача данных на удаленный сервер. Если развертывание прошло успешно, то на терминале отобразится справочная информация о состоянии программы и режиме доступа к нему.
Таким образом, чат-бот был развернут на удаленном сервере облачных вычислений Heroku, что позволит пользователям получать бесперебойный доступ.
5.3 Среда разработки
Visual Studio Code Visual Studio Code – это понятный, лаконичный, но многофункциональный редактор исходного кода, совместимый с Windows,
MacOS и Linux.
Письмо
ИТ51.320БАК.002 ПО
16
Изм. Письмо
№ докум.
Подпись
Дата


IDE поддерживает большое количество популярных языков программирования.
Поддерживаемые расширения и среды выполнения представлены ниже:
а) JavaScript;
б) TypeScript;
в) Node.js;
г) C++;
д) C#;
е) Java;
ж) Python;
з) PHP;
и) Go;
к) .NET;
л) Unity.
Visual Studio Code включает в себя встроенный отладчик, удобство для разработки программных продуктов, инструменты для работы с Git- репозиториями, подсветку синтаксиса, средства для рефакторинга и IntelliSence
(технология автодополнения, которая предложит команду по первым буквам).
Visual Studio Code был основан на фреймворке Electron, позволяющем используя
Node.js разрабатывать настольные приложения, работающие на двигателе Blink.
Письмо
ИТ51.320БАК.002 ПО
17
Изм.
Письмо
№ докум.
Подпись
Дата

5.4 Язык программирования – Python
Python – это язык программирования общего назначения, который направлен прежде всего на увеличение производительности самого разработчика ПО, чем кода, который он пишет.
Если говорить простым языком, Python позволяет написать практически все: веб-/настольные приложения, игры, автоматизированные информационные системы, комплексные системы, системы управления жизнеобеспечением и многое другое. Кроме того, порог вхождения низкий, а код во многом немногословен и понятен даже для того, кто никогда на нем не писал. За счет простоты кода, будущее сопровождение программ, написанных на Python, становится легче и приятнее по отношению к Java или C. А с точки зрения бизнеса это дает сокращение затрат и повышение эффективности трудовых ресурсов.
Практически на всех платформах и операционных системах был реализован интерпретатор Python, являющийся несомненным преимуществом. Первым таким языком был С, однако его типы данных на разных машинах довольно часто занимали разное количество памяти, а это представляет некое препятствие при написании больших программ.
Также важная черта – расширяемость языка, этому придается большое значение и, как пишет сам автор Гвидо ван Россум, язык был задуман именно как расширяемый. Это означает, что есть возможность усовершенствования языка всеми заинтересованными разработчиками. Интерпретатор был разработан на языке программирования С и исходный код доступен для любых изменений.
При необходимости можно вставить его в свою программу и использовать как собственную встроенную оболочку. Или же, написав на C дополнение к Python и скомпилировав приложение, получить "расширенный" интерпретатор с новыми возможностями.
Письмо
ИТ51.320БАК.002 ПО
18
Изм.
Письмо
№ докум.
Подпись
Дата