Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Госуслуги в формате диалогов с чат-ботами. Как реализовать real-time приложение с чат-ботами на Python

Госуслуги в формате диалогов с чат-ботами. Как реализовать real-time приложение с чат-ботами на Python

Иван Терещук (Mos.ru) @ MoscowPython Meetup 61

"В этом докладе я расскажу о том, как мы использовали концепцию диалогов с чат-ботами для предоставления сервисов госуслуг. Какие существуют основные нюансы при написании real-time приложений, как, например, мессенджера. Как обрабатывать многоступенчатые сценарии в чат-ботах со сложной бизнес-логикой. Как все вышеописанное реализуется на Python и какие инструменты для этого существуют".

Видео: http://www.moscowpython.ru/meetup/61/gosuslugi-chatbots/

Moscow Python Meetup

November 29, 2018
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. 2

  2. 3

  3. 5 Realtime приложения • Мессенджеры, чаты • Игры • Биржи,

    финансовые платформы • Приложения для совместной работы (Google Docs...) • Системы мониторинга, web телеметрия
  4. 6 Websockets Проблемы • Разрыв соединения • Масштабирование • Нет

    поддержки в старых клиентах Преимущества • Обмен данными в реальном времени • Двунаправленная связь между клиентом и сервером • Экономия сетевого трафика • Экономия ресурсов на обработку запросов
  5. 9 Realtime фреймворки Базовые возможности: • Heartbeats, disconnect detection •

    Подтверждение доставки сообщений • Единое API поверх нескольких транспортных протоколов (long-polling, flashsockets, etc...) • Поддержка Sticky sessions или других техник для масштабирования
  6. 10 SockJS • Близкое к native Websocket API • Стабильная

    работа соединения • Минималистичен
  7. 11 Autobahn • Реализует протокол WAMP • Хорошо подходит для

    распределенных и микросервисных приложений
  8. 12 socket.io • Rooms, Broadcasts • Namespaces • Хорошо подходит

    для разработки чатов и мессенджеров • Менеджер соединений (via Redis, RabbitMq)
  9. 13 SockJS Autobahn Socket.io Backends support aiohttp, Tornado, Twisted asyncio,

    Twisted Sanic, aiohttp, Tornado, Flask, eventlet, gevent Heartbeats ✅ ✅ ✅ Protocol fallback ✅ ✅ ✅ Scaling ✅ ✅ ✅ Message ack ❌ ✅ ✅ Mobile clients ❌ ✅ ✅ Send message from outer process ❌ ✅ ✅ Chat features ❌ ❌ ✅
  10. 14 Чат-боты • Отвечают только за бизнес-логику • Работа чат-бота

    не должна зависеть от способа доставки сообщения на клиент • Каждый чат-бот имеет разную нагрузку, это зависит от популярности услуги
  11. 24 Выводы • Используйте наиболее подходящую вам библиотеку, или напишите

    все сами :) • Думайте о масштабировании! • Используйте паттерн State machine • Избегайте дедлоков • Пользуйтесь опытом других разработчиков