В эпоху цифровых технологий правительственные организации активно открывают доступ к различным типам государственных данных, стремясь сделать информацию более прозрачной и доступной для граждан, исследователей и бизнеса. Однако огромное количество данных требует эффективных методов поиска и обработки, что становится сложной задачей для пользователей, не обладающих специальными навыками работы с большими массивами. Решением этой проблемы выступают современные чатботы, которые с помощью искусственного интеллекта и технологий обработки естественного языка (NLP) позволяют быстро и точно получать нужные ответы на запросы пользователей. Одним из примеров таких решений является чатбот, разработанный для работы с открытыми данными портала data.gov.
ma, сочетающий передовые NLP-модели, технологию Faiss для индексирования и поиска, а также подключение через REST API и интеграцию с CMS Drupal. Эта система демонстрирует высокую эффективность за счет использования нескольких ключевых технологий, таких как тонкая настройка модели Bert, мощные векторные представления и контейнеризация с помощью Docker, обеспечивающая простоту развертывания и масштабирования. Тонкая настройка модели Bert, особенно ее версии CamemBERT, представляет собой основу для точной классификации запросов пользователей. Благодаря адаптации на специализированных датасетах, модель способна различать типы вопросов — будь то общие справочные данные или конкретные запросы к базе данных. Это важно, так как позволяет направлять запросы к соответствующим модулям обработки и обеспечивать максимально релевантные ответы.
В частности, CamemBERT хорошо справляется с французским языком, который является одним из основных в обработке данных марокканского портала. Для обработки запросов и быстрого поиска по большим объемам текстовых данных используется библиотека Faiss от Facebook. Faiss позволяет эффективно выполнять поиск по высокоразмерным векторам, созданным из текстов с применением моделей SentenceTransformer. Этот подход, основанный на представлении текстов в форме эмбеддингов, значительно ускоряет поиск информации и повышает качество результатов за счет учета семантической близости, а не только точного совпадения слов. Особое внимание уделяется работе с несколькими языками, в частности арабским и французским.
Для трансляции и нормализации текстов используется модель Helsinki-NLP, что позволяет обеспечить корректную обработку запросов независимо от выбора языка пользователем. Кроме того, интеграция с spaCy обеспечивает дополнительный инструментарий для обработки текста, включая токенизацию и исправление орфографических ошибок, что позитивно сказывается на качестве вводимых данных и последующем анализе. Безопасность и управление доступом реализованы через проверку API-ключей и токенов, которые шифруются с помощью криптографической библиотеки Fernet. Это гарантирует, что только авторизованные пользователи могут обращаться к API, а также позволяет защитить данные и предотвратить несанкционированные обращения. Поддержка динамического обновления конфигурации и токенов через наблюдатель изменений файлов позволяет гибко управлять доступом и параметрами приложения без необходимости его перезапуска.
Инфраструктурно приложение построено на современном и масштабируемом web-фреймворке FastAPI, который обеспечивает асинхронную обработку запросов и простоту интеграции с внешними сервисами. Приложение разворачивается в контейнерах Docker, что обеспечивает соответствие стандартам современного DevOps, легкость переноса и управления версиями. Для фронтенда и управления контентом используется система Drupal, позволяющая создавать пользовательские интерфейсы и управлять данными через мощный и гибкий CMS. Такой подход облегчает внедрение и поддержку чатбота для конечных пользователей и администраторов. Процесс развёртывания включает в себя подготовку модели и данных, их загрузку и интеграцию в индекс Faiss, а также настройку конфигурационных файлов, что автоматизируется и документируется с помощью скриптов и утилит.