Главная » Хабрахабр » Жизнь спустя год после внедрения роботов: пока равноправия не просят

Жизнь спустя год после внедрения роботов: пока равноправия не просят

Восстание роботов. Кажется, что это — что-то невероятное. А даже если и вероятное, то произойдет нескоро. Однако стоит задуматься — штат роботов у наших партнеров за год вырос на 22 машины. И они явно не собираются останавливаться. А вдруг очередная модернизация пойдет не по плану и робот откажется от неё. Или скажет, что ему надоело работать в бухгалтерии. Подробнее под катом!

Ведём бухгалтерию, решаем юридические вопросы и забираем рутину.
Кнопка — бэк-офис для предпринимателей.

Эта статья — продолжение этой: Восстание машин: Как роботы захватили бухгалтерию.

Передаю слово автору.

Сколько роботов и зачем они нам

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

Пробуем разные варианты для этого. Для автоматизации работы бухгалтера мы плотно взаимодействуем с базами в 1С. Расскажем подробнее.

Мы получили надёжную работу на запись в базу 1С, но встретили минусы: Взаимодействие через COM. Исторически — это первый способ, которым удалось наладить взаимодействие.

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

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

Плюсы:

  • Подключение к базе происходит очень быстро.
  • Можно работать сразу с целым кластером баз 1С, что увеличивает скорость обработки на порядки.

Минусы:

  • Работает только на чтение из базы. Теоретически работу на запись тоже можно сделать, но для этого нужно повторить всю логику 1С — нецелесообразно.
  • Разработка более трудоёмка и поддержка процесса сложнее, чем в способе COM.

Взаимодействие через OData. Попробовали его недавно.

Плюсы:

  • Нет проблем с зависанием или обрывами соединений

Минусы:

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

Взаимодействие через веб-сервисы. Этот подход опробовали относительно недавно.

Плюсы:

  • Работает быстро и без задержек.

Минусы:

  • Нужна разработка внутри платформы 1С, окружение для нас нестандартное, поэтому пока не хватает компетенций и требуется дополнительная инфраструктура, чтобы полноценно внедрить CI.
  • Как и в случае COM и OData задачи можно решать только внутри одной базы 1С.

Роботов нужно контролировать

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

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

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

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

Он следит за тем, чтобы входящие документы правильно учитывались в 1С. Например, важный для нас — робот-проводник. Напомним, что мы обслуживаем 1300 предпринимателей. Робот делает один обход всех баз 1С за 3-4 часа — пол рабочего дня. Скорее всего только на следующий день бухгалтер заметит, что робот не заглянул в конкретную базу. В каждый обход робот в какие-то базы не заходит.

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

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

Роботов нужно менять

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

Консолидация роботов

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

Роботов, которые работают над задачей вместе с человеком, мы держим всегда «на посту» в ожидании работы, которую они получают от человека.

Раньше этим занимались совместно несколько роботов: Возьмём, например, процесс превращения сканов бумажных документов в документы, учтённые в 1С.

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

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

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

Первый превращает архивы и pdf файлы в документы, которые уже можно отправлять в 1С. Для нового решения, мы разобрали роботов на запчасти и собрали двух новых. Второй робот сразу подхватывает документ после проверки, сохраняет и проводит его в 1С. Дальше работу проверяет человек, если нужно — что-то правит.

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

Совершенствование робота

После сокращения времени проведения документа в 1С мы столкнулись с другой проблемой. Мы зафиксировали случаи, когда на нашей стороне документы терялись. Приходилось запрашивать их у клиента повторно, что крайне неприятно. Как раз решаем сейчас эту задачу. И похоже снова разберём и соберём новых роботов.

Это дало прирост точности в 1%. Также мы переобучили нейронные сети для классификации и поворота документов на более нейронные и сетчатые. Ещё несколько сот страничек в неделю больше не требуют внимания человека.

Модернизация роботов из-за смены платформы

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

Новые роботы

Тэгун

Клиенты пишут нам по разным вопросам. Чтобы эти вопросы находили своего исполнителя, мы их категоризируем тегами. Сначала это делали люди, но мы решили облегчить им труд и написали робота. А назвали его — テ軍 (Тэгун).

Работа в нашем приложении устроена в виде переписок с ветками. Первая версия была очень простая. Робот категоризировал — ставил тег, опираясь на то, какой тег стоял в этой переписке. В одной ветке может быть несколько задач. В такой реализации робот обрабатывал 40% работы людей, при этом ошибался в 10% случаев. Очевидно, что в новых ветках, где ещё нет тега, робот ничего не делал.

Для этого использовали логистическую регрессию и градиентный бустинг для предсказания, в сочетании с tf-idf и WordToVec для чтения. Чтобы робот смог определять исполнителя в новых ветках, мы научили его читать. Знание — сила! Последняя версия робота позволила забрать 60% работы людей. Хоть ошибаться робот стал в 15% случаев, задачи всё равно стали быстрее приходить к исполнителям.

Отправка отчётов

Далеко не всегда требуется интеллект, чтобы выполнять нужную и полезную работу. Программисты и бухгалтеры знают, что до 80% времени может занимать рутина. Например, чтобы отправить отчёт СЗВ-М бухгалтер-зарплатник должен открыть базу 1С, нажать порядка десяти кнопок, в промежутках вводить данные, дождаться, когда 1С скажет «всё ок» и закрыть базу.

Немного. Каждая такая операция занимает 5 минут. Несколько роботов-клонов, которые делают примерно то же самое, справляются с задачей за день. Но чтобы сделать это для всех клиентов кнопки, которым нужен отчёт (таких около 600), придётся потратить 5*600/60/8 = 6 рабочих дней непрерывного механического труда. Треть рабочего времени одного бухгалтера уходила бы только на непрерывную отправку отчёта. Напомним, что такой отчёт нужно сдавать каждый месяц, а рабочих дней в месяце — 20.

Синхронизация с 1С

Еще один важный класс роботов, появившихся за последний год — синхронизаторы.
В нашем приложении есть документы и банковские выписки, которые тесно связаны с данным в объектах 1С. Для нас важно, чтобы состояние приложения максимально точно соответствовало состоянию дел в 1С. Мы используем это для поиска дублей, для удобного поиска объектов и чтобы отображать клиентам корректные данные. Используя взаимодействие через базу postgreSQL, мы смогли отслеживать изменения, которые происходят в 1С и быстро отражать их в базе приложения. На текущий момент расхождение данных по времени не превышает 5 минут.

Приносят ли роботы пользу

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

Это позволяет нам «репетировать отчётность» за месяц до реальной отчётности. Наши бухгалтеры уже во многом ориентируются на метрики, которые показывают результат того или иного робота. Это огромный шаг к прозрачности и надёжности процесса бухгалтерии для клиента. Планировать в реальных днях, сколько нам нужно времени, чтобы успеть сформировать отчётность и сдать её вовремя.

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

Благодарим за статью Максима Ахмадинурова movemind.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Репост со стороннего Telegram-канала (PHP MadelineProto)

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

Тесла планирует устанавливать новые массивные стационарные аккумуляторные батареи в Калифорнии

Источник На первом этапе, Тесле достался объем в 730 МВт*ч (мощность 182,5 МВт*ч нужно отдавать на протяжении 4 часов), в дальнейшем может расшириться до 1,2 ГВт*ч.Документ по проекту Летом 2018-го года Тесла стала одной из 4 компаний, которые обеспечат Калифорнию ...