К нам обратился стартап с идеей проекта, которая заключалась в создании AI-помощника для помощи в спортивных ставках своим пользователям - чат бот на основе ChatGPT должен обрабатывать запросы пользователей о спортивной статистике и анализировать множество числовых данных, чтобы дать ответ.
Таким образом решение должно соответствовать следующим требованиям:
Основной челлендж проекта состоит в том, что обычно языковая модель (LLM) анализирует текстовые данные, а не таблицы, наполненные числовыми параметрами.
Разработанная нами система отличается надежностью и гибкостью. Она включает в себя пользовательский интерфейс, LLM (Large Language Model), API-шлюз, блок предварительной обработки данных, модуль векторизации, базу данных векторов на PostgreSQL и внешний провайдер спортивной статистики.
Такая структура обеспечивает эффективную обработку запросов пользователей, начиная с их отправки и заканчивая отображением персонализированных данных.
Для себя мы выделили следующие задачи:
Используя React.js, команда разработчиков создала удобный интерфейс, который интуитивно понятен, поскольку повторяет интерфейс всех чат-ботов, ставших популярными в последние годы.
Особое внимание уделялось поиску решения для чата с открытым исходным кодом, которое может быть быстро интегрировано в сайт заказчика, а также для обеспечения гибкой настройки по мере развития проекта на последующих этапах.
Бэкенд-инфраструктура системы строится на базе .NET Core и является основой разработанного приложения. Она включает в себя API-шлюз для управления запросами и взаимодействия с GPT для обработки естественного языка, а также встроенные библиотеки Python.
Интеграция OpenAI's GPT представляет собой ключевой аспект нашей системы, что позволяет нашему AI-ассистенту обрабатывать запросы пользователей.
Тонкая настройка позволяет генерировать персонализированные ответы, предлагая пользователям точную спортивную статистику, прогнозную аналитику и информацию о ставках. Искусственный интеллект будет доучиваться в процессе использования, улучшая общий пользовательский опыт.
Пример вопросов, которые можно задать языковому помощнику выглядит следующим образом. Здесь и частотные вопросы про количество чего-то и вопросы, требующие арифметических исчислений - вычислить среднюю, посчитать события при каком-то условии.
Разработанное приложение опирается на спортивные данные, предоставляемые через надежные API от известных поставщиков спортивных данных.
Провайдеры данных зачастую используют программное ограничение на количество запросов в минуту, поэтому наладить оперативное взаимодействие по API не представлялось возможным.
Единственно верным решением в таком случае является организовать свою БД , которая периодически обновляет информацию по мере ее поступления. При этом языковая модель общается напрямую к новой БД, которая содержит все необходимые для клиента статистические данные. Данная структура проекта предоставляет хорошие возможности для масштабирования при росте количества пользователей в будущем.
Для наполнения нашей БД исходные данные ото провайдера нуждались в предварительной обработке. В задачу предварительной обработки входило получение, очистка и организация этих данных, что позволило бы подготовить их к анализу и формированию ответов в соответствии с запросами пользователей. Благодаря этому обеспечивается точность и актуальность информации, предоставляемой пользователям.
В процессе обработки данных мы научили OpenAI GPT генерировать SQL запросы для доступа к числовым и табличным данным. Затем уже данные необходимо было проинтерпретировать и ответить на вопрос пользователя.
Пользователи, которые делают спортивные ставки на регулярной основе у нашего клиента, получили мощный инструмент для доступа к спортивной статистике и аналитике в режиме чата с AI-ассистентом и в формате умного помощника.