Комментарии, вопросы, пожелания приветствуются.
Буду рад ответить на ваши вопросы: alimbekovr@hotmail.com.

Fresh Brain - Блог программиста, графомана, менеджера

Проекты  ·  Серии постов ·  О проекте ·  Об авторе ·  Архив постов

Telegram бот — Виртуальный помощник для банков

Про ботов Telegram уже много чего сказано и написано. Сегодня я хотел бы поделиться реализацией Виртуального помощника для банков. Хотя я думаю, умельцы смогут адаптировать или переделать его под любые нужны.

Бот в течении нескольких секунд может ответить на простейшие вопросы клиентов о курсах валют, ближайших банкоматах, офисах банка и многом другом. Попробовать функционал бота вы можете добавив @sberbankkztestbot в Telegram.

Что сейчас реализовано

  • Местоположение ближайшего отделения или банкомата
  • Курс валют
  • Информация для клиента

Технологии

  • Язык программирования — PHP
  • База данных — MySQL
  • API Telegram

Немного технических деталей.
Структура Базы данных крайне простая:

Telegram бот - Виртуальный помощник для банков

Таблица message_queue — содержит так сказать очередь сообщений для каждого чата.
Таблица markers — содержит контактные данные и координаты (долгота и широта) отделения банка.
Таблица markers_schedule — содержит расписание работы отделений по дням.
Таблица text — содержит заголовок и текст факты или совета, поле type определяет тип текста.
Таблица atm — содержит данные и координаты (долгота и широта) банкоматов.

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

Расскажу более подробно об одном лайфхаке. Наверно вы замечали во многих ботах меню кнопки содержат иконку или так называемую emoji (смайлик). Как же это сделать. Для этого мы создаем массив содержащий все используемые emoji.

$emoji = array(
    'thumbsup' => json_decode('"\uD83D\uDC4D"'),
    'smilingface' => json_decode('"\uD83D\uDE03"'),
    'whiteheavycheckmark' => json_decode('"\u2705"'),
    'envelope' => json_decode('"\u2709"'),
    'smiling' => json_decode('"\uD83D\uDE0A"'),
    'star' => json_decode('"\u2B50"'),
    'telephone' => json_decode('"\uD83D\uDCDE"'),
    'officebuilding' => json_decode('"\uD83C\uDFE2"'),
    'atm' => json_decode('"\uD83C\uDFE7"'),
    'exchange' => json_decode('"\uD83D\uDCB1"'),
    'charttrend' => json_decode('"\uD83D\uDCC8"'),
    'paperclip' => json_decode('"\uD83D\uDCCE"'),
    'clock' => json_decode('"\uD83D\uDD52"'),
    'calendar' => json_decode('"\uD83D\uDCC5"'),
    'banknoteusd' => json_decode('"\uD83D\uDCB5"'),
    'banknoteeuro' => json_decode('"\uD83D\uDCB6"'),
    'ok' => json_decode('"\uD83D\uDC4C"'),
    'idea' => json_decode('"\uD83D\uDCA1"'),
    'video' => json_decode('"\uD83D\uDCF9"')
);

Как видим каждая emoji обладает уникальным кодом типа \uD83D\uDC4D. Как его найти?
Для этого я воспользовался двумя сайтами. На сайте я находил необходимый мне emoji.

Берем значение из столбца Unicode. Например U+1F601. Берем значение после +, и вставляем его в URL ttp://www.fileformat.info/info/unicode/char/1F601/index.htm Находим в таблице Encodings поле C/C++/Java source code это и будет код вашей emoji.

Возможности
Интерфейс этого бота точная копия бота Сбербанка России @SberbankBot. На мой взгляд, очень удобное меню. При желании вы можете достаточно легко его изменить.

Меню бот Telegram

Поиск ближайшего отделения
Ближайшее отделение ищется в радиусе 2 км от вашего месторасположения.
При отправке месторасположения бот отправляет пользователю название, адрес , контакты ,график работы, приблизительное расстояние в метрах и месторасположение на карте.

Поиск ближайшего отделения бот Telegram

Вывод курсов валют
Вывод курса валют осуществляется с сайта Национального Банка Республики Казахстан.

Вывод курсов валют бот Telegram

Поиск ближайшего банкомата
Ближайший банкомат ищется в радиусе 2 км от вашего месторасположения.
При отправке месторасположения бот отправляет пользователю название, адрес ,график работы, приблизительное расстояние в метрах и месторасположение на карте.

Поиск ближайшего банкомата бот Telegram

Факты и советы

Факты и советы бот Telegram

Планы по развитию

  • Вывод котировок драг. металлов, нефти
  • Быстрые команды для конвертации (пример: 5000 рублей)
  • Отправки обратной связи
  • Скрипты ответы по продуктам (замена call center по часто возникающим вопросам)
  • Разработка интерфейса для заполнения и редактирования базы данных

Новая редакция Scrum Guide — ценности

Впервые с 2013 года, в июля 2016 выпущено обновление руководства по Scrum Кеном Швабером и Джеффом Сазерлендом, и самое большое изменение в этой версии Руководства является добавление раздела Scrum ценностей.

Он включает в себя понимание необходимости брать обязательство перед собой, смелость, сосредоточенность на ближайших целях команды, открытость и уважение. Ценности должны приниматься всей Scrum командой, так как это имеет решающее значение для успеха команды в целом. Раздел ценности Scrum гласит:

Когда ценности обязательств, смелости, внимания, открытости и уважения воплощены и живут в Scrum команде, Scrum прозрачен, инспектируем и адаптирован к жизни и укреплению доверия для всех. Члены Scrum команды узнают и изучают эти ценности, как они работают с Scrum событиями, ролями и артефактами.

Успешное использование Scrum зависит от людей, которые разделяют и используют эти пять ценностей. Люди, берут на себя обязательства по достижению целей команды. Члены команды имеют смелость сделать правильный выбор и работать над решением трудных проблем. Каждый человек сосредотачивается на работе над спринтом и целями команды во время спринта. Scrum команды и ее заинтересованные стороны согласились открыто говорить о всей работе и проблемах, возникших с выполнением работы. Члены Scrum команды уважают друг друга, как способных, независимых людей.

Новая редакция Scrum Guide - ценности

Commitment — понимание необходимости брать обязательство перед собой, перед командой, перед организацией за выполнение поставленных целей и задач на  период спринта. Это что делают члены команды на Дэйли миттинге.
Focus — это сосредоточенность на ближайшей цели команды, на выполнении того обещания, которое было дано владельцу продукта, клиенту.
Courage — это смелость, готовность к изменениям на благо продукта, клиента, команды.
Openness — открытость в отношениях внутри команды и с клиентом, когда проблемы не прячутся, и когда каждый член команды имеет право голоса.
Respect — уважение рождает доверие, открытость и взаимопонимание.

Эти ценности звучат легко? Ну, есть несколько недоразумений и общие проблемы при применении этих ценностей. Вот несколько примеров.

Ценность Непонимание Правильное значение ценности
Обязательство Совершение чего либо, что вы не понимаете, потому что вам сказал так ваш босс. Посвящает себя команде и цели спринта.
Сосредоточенность Сосредоточенность на сохранении клиента счастливым Сосредоточенность на спринте и его цели.
Открытость Рассказывать всем все обо всей вашей работе Подчеркивать, когда у вас есть проблемы и проблемы, которые препятствовали успеху
Уважение Думать, что вы помогаете команде, будучи героем Помочь людям, чтобы они узнали то, в чем вы хороши и не судить людей за то, что другие не умеют.
Смелость Даже после того, как было принято решение продолжать тормозить Быть прозрачным, но готовым к изменением, даже если это означает признание того, что вы не правы, или что ваше мнение не направлено в направление, куда идет команда.

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

Ценности  — определяют поведение людей, а поведение определяет результаты.

Успешность использования Scrum напрямую зависит от того, насколько люди разделяют пять ценностей.

Принципы обучения взрослых

На работе часто приходится сталкиваться с обучением взрослых людей, которые старше меня и не имеющие специализированного IT- образования. Поэтому обучение базовым навыкам программирования, анализа данных и другим вещам дается очень сложно. Я постараюсь рассказать об опыте, принципах и подходах обучения взрослых с которыми столкнулся в своей практике.

В обучение взрослых, я руководствуюсь следующим циклом EDAC:

Принципы обучения взрослых EDAC

Как видим основной упор надо делать на шаге — Пробовать. Разберём шаги.
Объяснить — минимум времени. Старшему поколению очень сложно объяснять на словах. Долгое объяснение приводит к потери внимания.
Показать — показать на жизненном, близкому к обучающимся примере.
Попробовать — основной фокус внимания. Больше давать пробовать, опять- таки на жизненном и близком примере.
Закрепить — даем задание для самостоятельной работы. Должно быть связано с выполняемой работой.

Принципы обучения взрослых:

  1. Потребность — обучающиеся должны понимать зачем им это, как и для чего они будут это применять
  2. Связь с опытом — если вы рассказываете о программировании людям без IT-образования, они должны понять как навык программирования поможет в их работе. И объяснять надо на примере работы. Что было и как станет. Показывать картинку будущего.
  3. Практика — снова, больше давать пробовать.
  4. Атмосфера — добродетельная, теплая атмосфера.
  5. Помощь/поддержка — обязательна помощь наставника и помощь внутри обучающей группы друг другу.

Итак, как же сформировать навык. Навык — это действие, которое в результате длительного повторения становится автоматическим. Сформировать навык — путем различных тренировок довести желаемой действие до автоматизма.

Есть пять основных этапов формирования навыков:

  1. «Я расскажу, а ты послушай»
  2. «Я сделаю, а ты посмотри»
  3. «Сделаем вместе»
  4. «Сделай сам — я подскажу»
  5. «Сделай сам и расскажи, что ты сделал»

Снова видим, что упор делается на практику, на шаг попробовать.

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

Ctrl + ↓ Ранее