Ботоводство



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

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

Разнообразие сфер применения ботов я хочу привести на примере собственной работы в компании Selectel. Мини-спойлер: начинал свою работу я в качестве технического писателя, теперь являюсь инженером отдела облачных решений. Путь внедрения виртуальных помощников начался с бота для отдела маркетинга, который отслеживает комментарии и упоминания компании в социальных сетях. Такая разработка является очень простой, но эффективно дополняет существующие решения на рынке, например, сервис IFTTT.

Следующими разработками в моей практике стали внутренний чат-бот для отдела HR и бот для общения с клиентами, представленный в качестве демо-стенда во время конференций SelectelTechDay в Санкт-Петербурге и Москве. Оба бота созданы с помощью разных сервисов и технологий. И прежде чем погружаться в технические подробности, рассмотрим верхнеуровневую схему устройства ботов.

Основные принципы ботостроительства


Деятельность чат-ботов строится вокруг 3 основных действий:
  • Получение или вывод информации происходит через определенные каналы связи, например, в Slack или диалогах Vk.com
  • Распознавание намерения — это комплексный анализ полученной информации для формирования ответа
  • Обработка действия — любая работа, проведенная на серверной стороне, необходимая для подготовки верного ответа. Например, если был запрошен прогноз погоды, то будет произведен запрос к некому API о погоде в городе N, и пользователю будут отправлены результаты этой команды
Основные действия чат-ботов объединяются в рамках задачи сохранения контекста для создания человекоподобной формы общения и поддержки диалога. Чат-бот должен «помнить» предмет разговора и адаптировать свои ответы соответствующим образом.

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

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

Ботостроительство
Изложенные выше 3 принципа работы чат-ботов (канал, анализ, действие) можно реализовать по-разному. Самый простой вариант — проводить сравнения поступающего текста и отправлять пользователю соответствующие ответы.


Наша цель немного выше — получить систему, в которую можно будет быстро добавлять новые сценарии и которая будет понимать пользователя в большинстве случаев.

Для этого нам необходимо понимать, о чем говорит пользователь, контролировать ход диалога и в некоторых случаях выполнять определенные действия (например, бронировать переговорные комнаты). Добиться этого можно, используя следующие инструменты:
  • DialogFlow (Google)
  • Wit.ai (Facebook)
  • Azure Bot Service (Microsoft)
  • Rasa Core (Open Source)



При выборе продукта учитываются следующие факторы:
  • Насколько критично размещение исполняемого кода бота в рамках существующих систем
  • Например, в случае Wit.ai и Dialogflow мы не контролируем полностью весь процесс — мы отдаем этим приложениям текст и получаем готовый ответ. Используя Rasa Core или Azure BotBuilder SDK, мы можем хранить всю переписку в границах внутренних систем
  • Сколько каналов связи необходимо подключить
  • Dialogflow предоставляет возможность использования ограниченного количества коннекторов, которые подключают мессенджеры и социальные сети через указание ключей доступа. Для Wit.ai и Rasa Core можно использовать любое количество каналов, но логику подключения к ним необходимо реализовать самостоятельно (зачастую это очень тривиальная задача). Azure Bot Service имеет возможность использования коннекторов к определенным каналам, но не ограничен ими, и его можно подключать также к другим источникам самостоятельно
  • Насколько просто можно вносить изменения в базу знаний бота
При создании бота в виде программного кода без использования визуального интерфейса для взаимодействия с ним мы ограничиваем круг лиц, кто может вносить изменения в диалоги и ответы бота. Функционал добавления и редактирования фраз должен быть доступен для каждого
Для нашего внутреннего виртуального помощника чат-бота Тирекса была выбрана платформа от Google Dialogflow, которая предоставляет возможность визуального редактирования намерений, а выполнение действий осуществляется внутри частного облака в Selectel. Определяющими факторами стали скорость начала работы с ботом, безопасность при передаче сообщений и наличие канала Slack в списке поддерживаемых.


Идея создания чат-бота давно витала в воздухе компании, особенно учитывая, какие проблемы можно было решить с ним:
  • Рост числа сотрудников компании, а вместе с этим увеличивающийся поток однотипных вопросов вроде «Как пользоваться корпоративной библиотекой?» и «Где пообедать?»
  • Регулярное бронирование переговорных и оформление пропусков
  • Поиск информации и документов в корпоративной базе знаний


Создание и подключение бота в Dialogflow занимает несколько минут. В начале рассмотрим принципы работы чат-бота в системе, а затем добавим выполнение сложных действий.

Создание бота в Dialogflow
Создание архитектуры
Далее в тексте мы будем оперировать такими понятиями, как:
  • Намерение — формализованная задача, которую хочет выполнить пользователь
  • Параметры — набор данных, необходимых для выполнения задачи
  • Ответ — функция или программа, выполняемая в ответ на распознанное намерение
  • Тренировочная фраза — пример сообщения от пользователя, на котором чат-бот обучается
Dialogflow обрабатывает естественный язык и извлекает все необходимые данные для выполнения сложных команд. Для этого создаются агенты, которые содержат в себе несколько намерений. Каждое из намерений позволяет подготовить чат-бот к пониманию нюансов и тонкостей при формулировании запросов.

Намерение включает в себя тренировочные фразы, параметры и ответы. Внутри тренировочной фразы мы выделяем параметры (например, время или место), которые необходимы для формирования корректного ответа.

Ответ указывается либо в намерении, либо Dialogflow отправляет запрос на наш сервер, который выполняет необходимую работу и возвращает обратно ответ на примере нашего чат-бота:
  • На простые вопросы (например, «Есть ли у нас программа страхования заграницей?») ответ закладывается в намерение
  • На более сложные задачи как «Есть ли свободные переговорные сейчас?» ответ формируется с помощью дополнительного запроса к серверу, который определяет свободное время для всех участников и комнат


Работа с намерениями
Рассмотрим работу с Dialoglow на примере бронирования переговорной. Мы создаем агент управления бронированиями и определяем следующие намерения:
  • Просмотреть существующие бронирования
  • Забронировать переговорную
Каждое из намерений вызывается тренировочными фразами. Чем больше их добавлено, тем вероятнее будет выполнено нужное действие. В нашем примере намерение «Забронировать переговорную» будем вызывать следующими фразами:
  • Забронируй на сегодня в 23.15 на 30 минут на меня
  • Привет. Прошу забронировать на 08.11.2018 переговорную с 15:00 до 16:00
  • Забронируй
  • Мне нужна переговорная


Принцип работы сбора данных в намерениях следующий:
  • Dialogflow на основе полученного ввода понимает, о каком намерении идет речь. В нашем примере — бронирование переговорных
  • Если обязательные параметры не были указаны в первом сообщении (например, время встречи), то чат-бот задаст уточняющие вопросы
  • После получения всех данных Dialogflow отправит запрос на наш сервер в VPC для бронирования нужной комнаты
Посмотрим на этот процесс в действии:


Обработка действия осуществляется отправкой запроса со всеми данными на заранее добавленный адрес сервера действий (Webhook URL):


По адресу website.ru/webhook находится сервер, который выполняет обработку сложных команд (в нашем примере возвращает строку «Привет от сервера!»). Github Gist для быстрого старта:


Создание бота с помощью RASA
Для использования чат-бота без сторонних сервисов для распознавания текста можно использовать инструменты наподобие Rasa, которые позволяют полностью управлять всем процессом работы бота. Rasa — набор программных компонентов с открытым исходным кодом, которые содержат распознавание речи и управление диалогами. Уже сейчас можно посмотреть на Boilerplate, который я подготовил для знакомства с платформой, а более подробную инструкцию мы опубликуем, если будут запросы от Habr-сообщества.

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

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

Облачные патенты: за пять лет их стало вдвое больше

Последние десять лет ИТ-отрасль уверенно движется в сторону облачных технологий. Раньше интерес к облакам в первую очередь был обусловлен желанием компаний получить гибкую и масштабируемую ИТ-инфраструктуру. Сейчас, помимо классических преимуществ, в облаках видится ключ к внедрению подрывных инноваций современности — Интернета вещей, big data и ноу-хау на основе моделей искусственного интеллекта. Часто облачные решения используются для улучшения функциональности инструментов, в основе которых лежат эти технологии.

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

Разочарование Amazon
Платформа IPlytics в 2018 году провела интересное исследование, подсчитав количество патентных заявок за прошедшие восемь лет. Специалисты компании выполняли поиск в базах данных патентов, анализируя их содержание (заголовок, аннотации, описание) по ключевым словам и дополнительно используя методы стемминга и семантического индексирования.

Результаты исследования показали, что за последние пять лет общее число облачных патентов увеличилось более чем в два раза. Если в 2013 году насчитывалось 46 273 патента, то в 2018 году их стало 117 135. Начиная с 2010-го, количество патентных заявок растет из года в год, и, скорее всего, 2019-й год не станет исключением.

На данный момент обладателями большинства облачных патентов являютcя три ИТ-гиганта — IBM, Microsoft и Google. Удивил и даже немного разочаровал Amazon, который со своей дочерней компанией AWS, крупнейшим cloud-провайдером мира, не попал даже в первую пятерку. С показателем в 3 373 патента он расположился лишь на шестом месте. Отметим, что в топ-10 ключевых владельцев входят шесть американских компаний и только одна европейская — немецкая SAP SE. Трое остальных родом из Азии.

Патентный троллинг неизбежен
Сегодня лидирующую позицию в сфере облачных патентов занимает США. Именно на эту страну приходится 60% всех одобренных заявок на патенты. На втором и третьем месте находятся Китай и 38 стран-членов Европейской патентной организации (в основном — страны ЕС), соответственно.

Однако для американских технологических новаторов не все оказалось таким радужным. Активность патентозаявителей привела к побочному эффекту в виде огромного количества судебных разбирательств, связанных с патентами. За период с 2012 по 2016 год их число увеличилось на 700%! В компании IPlytics такой всплеск объясняют бурной деятельностью так называемых PAE (patent assertion entities) или, как метко окрестили их пользователи, патентых троллей. Эти организации скупают патенты обанкротившихся фирм и подают в суд на компании, обвиняя их в нарушениях патентного права при использовании технологий в своих продуктах. Опасаясь стать жертвой патентных троллей, в свое время Snap Inc. приобрела у Mobli (конкурента, закрывшего бизнес несколько лет назад) патент на облачный геофильтр стоимостью в 7,7 млн долларов.

Заключение
Активное получение патентов на облачные вычисления во всем мире подтверждает, что cloud computing является определяющий технологией для внедрения других инноваций будущего. Именно поэтому на облачные продукты делают ставку крупнейшие игроки ИТ-рынка, постоянно регистрируя новые патенты, и именно поэтому в них продолжают активно вкладывать инвесторы.


colobridge.net

Hetzner Online expands management team



Международный оператор веб-хостинга и центров обработки данных Hetzner Online расширил свою исполнительную команду в начале года.

Стефан Конвицкова и Гюнтер Мюллер уже много лет являются сотрудниками компании и уже сыграли важную роль в позитивном развитии компании в качестве уполномоченных подписантов. Теперь оба будут управлять компанией вместе с основателем компании Мартином Хецнером.

Я очень рад, что Стефан и Гюнтер присоединились к руководителю», — говорит Мартин Хетцнер. «У меня всегда было большое доверие к ним обоим, и мы работали вместе как очень солидное подразделение, чтобы руководить компанией. Этим решением я хотел повысить их роль в качестве руководителей компании

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

Backblaze Hard Drive Stats for 2018



Мы опубликовали наш первый отчет «Статистика жесткого диска» чуть более 5 лет назад, 21 января 2014 года. Мы назвали этот отчет «Какой жесткий диск мне следует купить». Оглядываясь назад, это могло бы показаться немного чрезмерным, но мы были публиковать данные, которых в принципе не было.

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

По состоянию на 31 декабря 2018 года у нас было 106 919 вращающихся жестких дисков. Из этого числа было 1 965 загрузочных дисков и 104 954 дисков с данными. В этом обзоре рассматривается частота отказов жесткого диска для моделей дисков данных, работающих в наших центрах обработки данных. Кроме того, мы рассмотрим новые модели жестких дисков, которые мы добавили в 2018 году, в том числе наши жесткие диски Toshiba емкостью 12 ТБ и 14 ТБ. По пути мы поделимся наблюдениями и знаниями по представленным данным, и мы с нетерпением ждем, чтобы вы сделали то же самое в комментариях.

Показатели отказов жестких дисков 2018 года: что говорят нам более 100 000 жестких дисков
В конце 2018 года компания Backblaze провела мониторинг 104 954 жестких дисков, используемых для хранения данных. Для нашей оценки мы исключаем из рассмотрения те диски, которые использовались в целях тестирования, и модели, для которых у нас не было как минимум 45 дисков (см. Почему ниже). Это оставляет нам с 104 778 жестких дисков. В таблице ниже показано, что произошло только в 2018 году.


Примечания и наблюдения
Если в модели накопителя частота отказов составляет 0%, это означает, что в течение 2018 г. не было отказов накопителей этой модели.

В 2018 году заявленный годовой процент отказов (AFR) обычно довольно солидный. Исключение составляют случаи, когда в данной модели накопителей имеется небольшое количество накопителей (менее 500) и / или небольшое количество дней накопителей (менее 50 000). В этих случаях APR может быть слишком шатким, чтобы его можно было надежно использовать для принятия решений о покупке или выходе на пенсию.

Было 176 дисков (104 954 минус 104 778), которые не были включены в список выше. Эти диски либо использовались для тестирования, либо у нас не было как минимум 45 дисков данной модели. Мы используем 45 накопителей той же модели, что и минимальное количество, при составлении квартальной, годовой и пожизненной статистики накопителей. Это историческое число, основанное на количестве дисков, необходимых для заполнения одного модуля хранения Backblaze (версия 5 или более ранняя).

Годовая частота отказов (AFR) для 2018 года для всех моделей приводов составила всего 1,25%, что значительно ниже показателей предыдущих лет, о чем мы поговорим позже в этом обзоре.

Что нового в 2018 году
В 2018 году основной тенденцией стала миграция жестких дисков: замена дисков с меньшей плотностью 2, 3 и 4 ТБ на 8, 10, 12 и в Q4, 14 ТБ. В 2018 году мы перенесли 13 720 жестких дисков и добавили еще 13 389 жестких дисков, увеличив общий объем хранилища с примерно 500 петабайт до более 750 петабайт. Таким образом, в 2018 году специалисты нашего центра обработки данных мигрировали или добавляли 75 дисков в день в среднем каждый день в году.

Вот краткий обзор того, что нового в 2018 году.
  • Приводов Western Digital емкостью 4 ТБ не более; последний из них был заменен в 4 квартале. Это оставляет нам только 383 накопителя Western Digital — все диски емкостью 6 ТБ. Это 0,37% нашего парка автомобилей. У нас есть много накопителей от HGST (принадлежащих WDC), но за эти годы мы так и не смогли получить необходимое количество накопителей Western Digital по разумной цене.
  • Говоря о дисках HGST, в четвертом квартале мы добавили 1200 дисков HGST объемом 12 ТБ (модель: HUH721212ALN604). Ранее мы тестировали эти диски в Q3 без сбоев, поэтому мы заполнили хранилище Backblaze 1200 дисками. Примерно через месяц у нас был только один сбой, так что они начали хорошо.
  • У накопителей HGST есть свои пути, так как в четвертом квартале мы также добавили 6 045 накопителей Seagate 12 ТБ (модель: ST12000NM0007), чтобы довести нас до 31 146 накопителей этой модели. Это 29,7% нашего парка автомобилей.
  • Наконец, в четвертом квартале мы добавили 1200 дисков Toshiba объемом 14 ТБ (модель: MG07ACA14TA). Это заполненные гелием приводы PMR (перпендикулярная магнитная запись). Начальная годовая частота отказов (AFR) составляет чуть более 3%, что аналогично другим новым моделям, и мы ожидаем, что AFR будет со временем падать по мере установки накопителей.

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

Примечания и наблюдения
  • В 2016 году средний объем используемых жестких дисков составил 4,5 ТБ. К 2018 году средний размер вырос до 7,7 ТБ.
  • Годовая частота отказов в 1,28% в 2018 году была самой низкой из всех зарегистрированных за год.
  • Ни один из 45 дисков Toshiba объемом 5 ТБ (модель MD04ABA500V) не вышел из строя со второго квартала 2016 года. Несмотря на то, что количество накопителей небольшое, это все еще довольно хороший пробег.
  • Диски Seagate 10 ТБ (модель: ST10000NM0086) продолжают впечатлять, поскольку их AFR на 2018 год составлял всего 0,33%. Это основано на 1220 дисках и почти 500 000 гоночных дней, что делает AFR довольно солидным.

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


Жесткий диск Статистика вебинар
Мы представим вебинар « Backblaze Hard Drive Stats для 2018 года » в четверг, 24 января 2019 года, в 10:00 по тихоокеанскому времени. На вебинаре будут более подробно рассмотрены ежеквартальные, годовые и пожизненные характеристики накопителей на жестких дисках, а также годовая и пожизненная статистика по размеру накопителя и производителю. Для просмотра вебинара вам необходимо подписаться на канал Backblaze BrightTALK. Зарегистрируйтесь сегодня www.brighttalk.com/webcast/14807/346376

Статистика по жесткому диску
Полный набор данных, использованный для создания информации, использованной в этом обзоре, доступен на нашей странице с данными испытаний жесткого диска. Вы можете скачать и использовать эти данные бесплатно в своих целях. Все, что мы просим, ​​- это три вещи: 1) вы цитируете Backblaze в качестве источника, если вы используете данные, 2) вы соглашаетесь с тем, что несете полную ответственность за то, как вы используете данные, и 3) вы не продаете эти данные кому-либо; это свободно.

Если вы просто хотите, чтобы сводные данные использовались для создания таблиц и диаграмм в этом сообщении в блоге, вы можете загрузить ZIP-файл, содержащий CSV-файл.

DNS flag day



В связи с тем, что 1 февраля пройдёт событие под названием «DNS flag day», которое связано с началом постепенного перехода некоторых DNS-сервисов и производителей DNS-серверов на протокол EDNS, некоторые пользователи выражают неподдельный интерес к этой теме.

Команда Айхор Хостинг в курсе предстоящего события. Мы уже запланировали обновление ПО для решения возникшей ситуации. Обновление не затронет работу клиентских сервисов.

https://www.ihor.ru/

Самые быстрые KVM VDS в Москве и Европе

Здравствуйте.



Предоставляем самые быстрые KVM VDS в Москве и Европе hostiman.ru/ssd-vps-vds
RuVDS1: 3800 MHz / 1 Gb DDR4 / 20 Gb NVMe SSD — 350 руб/мес
RuVDS2: 2x3800 MHz / 3 Gb DDR4 / 40 Gb NVMe SSD — 750 руб/мес
RuVDS3: 3x3800 MHz / 5 Gb DDR4 / 60 Gb NVMe SSD — 1200 руб/мес
RuVDS4: 4x3800 MHz / 7 Gb DDR4 / 80 Gb NVMe SSD — 1600 руб/мес

Провели несколько тестов на RuVDS1 при помощи утилит fio и dd.
Random read/write:
read: io=3071.7MB, bw=343233KB/s, iops=85808, runt= 9164msec
write: io=1024.4MB, bw=114460KB/s, iops=28615, runt= 9164msec
Random read:
read: io=4096.0MB, bw=700218KB/s, iops=175054, runt= 5990msec
Random write:
write: io=4096.0MB, bw=299700KB/s, iops=74925, runt= 13995msec

hdparm
~# hdparm -Tt /dev/vda

/dev/vda:
Timing cached reads: 33096 MB in 1.99 seconds = 16615.28 MB/sec
Timing buffered disk reads: 4236 MB in 3.00 seconds = 1411.76 MB/sec

~# dd if=/dev/zero of=test bs=64k count=128k conv=fdatasync
131072+0 records in
131072+0 records out
8589934592 bytes (8.6 GB, 8.0 GiB) copied, 8.23027 s, 1.0 GB/s

А какие результаты у вашего старого VDS?
1 место по результатам TestVPS.ru — Выбирайте лучших!