Стажировка по проекту
Создание автоматизированной ИИ-диагностики световых систем
Компания: ООО «Юнилайт»
Суть проекта
ЦЕЛЬ ПРОЕКТА
Создание системы для автоматической обработки обращений пользователей, их классификации, анализа неисправностей и генерации рекомендаций для инженера.
Система должна помочь операторам ускорить процесс принятия решений, улучшить качество обслуживания клиентов и обучаться в процессе работы, используя новые данные для повышения эффективности.
Система также должна поддерживать интеграцию с почтовыми сервисами и мессенджерами, возможность распознавания изображений, поддержку индивидуальных диалогов для каждого пользователя и ведение журнала обращений
Разработано несколько вариантов ТГ ботов и размещены на сервере заказчика
На базе ТГ разработана CRM и RAG система по обработке заявок от эксплуатантов (Бот приёма, первичной проверки и регистрации обращений. Бот авторизированного доступа и проведения анкетирований. Бот предоставления информации по запросу инженера: анкеты, инструкции, лицензии. Бот истории обращений. Группа для инженеров. Таблица данных CRM.) В генеративный ИИ подаётся база решений и обращение пользователя. ИИ выдаёт наиболее подходящий ответ, в том числе на основе предыдущих запросов пользователей. В группу инженеров отправляется решение от ИИ, данные пользователя и описание проблемы. Разработанный ИИ-бот выполняет сложную воронку обработки запросов, начиная от извлечения ключевых слов и векторного поиска до формирования точных и релевантных ответов
Участники
1 команды проекта
  • Николай Кус
    Тимлид проекта
  • Богданов Андрей
    Помощник тимлида
  • Соболева Валерия
    Консультант по вопросам в сфере информационной безопасности
    Принимала активное участие в тестирование, разработке и интеграции на сервер заказчика ТГ бота
  • Игнатьев Павел
    Директор по развитию
    Обработка текстов обращения, подготовка списка чанков для ЛЛМ модели, подготовка алгоритма работы телеграм бота для обработки входящих обращений, реализация бота, частичная реализация алгоритма поиска предыдущих обращений и ответа на основании проекта
  • Строкова Анастасия
    Инженер группы предпроектного анализа и внедрения систем WFM CC
    Принимала активное участие в тестирования ТГ бота
  • Стряпчиев Григорий
    Инженер отдела информатизации ГБУЗ Республики Карелия «Республиканская больница скорой и экстренной медицинской помощи»
    Принимал активное участие в тестирования ТГ бота
  • Рыжиков Владимир
    Ведущий инженер по организации строительства объектов метро
    Принимал активное участие в тестирования и разработке ТГ бота
  • Токарев Александр
    Заместитель начальника ПТО в строительстве
    1. Создание базы знаний из переписок и аудиозаписей предоставленных Заказчиком
    2. Поиск больших языковых моделей, которые будут работать на сервере без API ключей
    3. Создание телеграм бота, который будет отвечать на ключевые запросы
    4. Добавление функционала к боту - это поиск файлов в рабочей папке и выгрузке их в бот
    5. Поиск информации по существующим договорам: сроки обслуживания, объект и д.р.
    6. Создание презентации по собственному проекту
  • Игорь Кривченко
    Аналитик данных
    1. Анализ требований и планирование
    • Определение требований к боту (и другим компонентам продакшен) путём интервьюирования заказчика.
    • Моделирование пользовательских сценариев (с позиций как эксплуатантов, так и консультантов).
    • Планирование разработки (создание MVP, первичное и нагрузочное тестирования, передача в продакшен).
    2. Создание базы знаний и пула тестов
    • Сбор базы знаний (чанковой и классической баз данных), верификация полноты и содержания с заказчиком.
    • Структурирование будущих векторных данных (определение размера чанка и его метаданных).
    • Структурирование будущих табличных данных (поля, записи, атрибуты).
    • Выделение тестового пула данных.
    3. Проектирование архитектуры и выбор технологий 
    • Программное решение: 4 телеграмм-бота + 2 телеграмм-группы (для эксплуатантов и для консультантов)
    • Определение технологий бэкенда и интерфейсов фронтенда (Python, Telegram, Google), модульность и опора на API.
    • Безопасность: логины-пароли, ключи доступа.
    4. Разработка и тестирование
    • Реализация логики 4х ботов: программирование основных и допфункций, управление передачей параметров.
    • Создание пользовательского интерфейса (регистрация телеграмм-групп, определение прав доступа, встраивание ботов-администраторов).
    • Юнит-тестирование, интегральное и нагрузочное тестирования, хот-фиксинг и повторные тестирования.
    5. Развертывание и обучение
    • Настройка доступов и запуск бота в продакшен-среде.
    • Инструктаж заказчика
  • Денис Калюжный
    Системный администратор
    Написание кода сравнительного тестирования различных вариантов сочетаний моделей эмбеддингов и ллм.
    Написание роутера запросов для одного из ботов в проекте.
    Помощь участникам группы в работе со средами разработки и различными фреймворками python.
    Обучение участников деплою python проектов на выделенный сервер на примере нескольких разработанных в рамках проекта ботов.
  • Дмитрий Хонин
    Начальник отдела IT, DATA SCIENTIST
    1. Реализация Telegram бота на Python с помощью библиотеки aiogram 3.15. Реализованный функционал бота:
    • поиск информации по базе, предоставленной заказчиком, с помощью различных GPT: OpenAI, Groq, Gemini, Mistral, YandexGPT, GigaChat. Возможность выбора вышеуказанных GPT через меню бота;
    • локальный векторный поиск по базе, предоставленной заказчиком;
    • возможность выбора модели эмбеддера (sentence-transformers/all-MiniLM-L6-v2, sentence-transformers/all-mpnet-base-v2, intfloat/multilingual-e5-large), которые помогают преобразовать текст в векторы, что позволяет большим языковым моделям (LLM) понимать контекст и давать точные ответы на заданные человеком вопросы;
    • добавлен скрипт для работы с локальными базами FAISS;
    • возможность транскрибации (с помощью библиотеки whisper от OpenAI) голосовых сообщений в текстовые сообщения. В бота в качестве запроса можно посылать текстовые и голосовые сообщения;
    • логирование в файл с ротацией логов в 60 дней. Логируются запросы пользователя и ответы бота, запуск/остановка бота, используемое устройство, при инициализации обработка столбцов. Записываются время события, имя процедуры, тип события и само описание события.
    • вывод сообщения помощи и информации о боте.
    2. Активное тестирование возможностей выделенного заказчиком сервера для размещения разработанного Telegram бота. Логирование результатов тестирования. Вынос результатов тестирования на обсуждение группе разработчиков. Предложение тимлиду по возможной модернизации аппаратными ресурсами сервера заказчика по результатам тестирования.
    3. Интеграция в production реализованных Telegram ботов на выделенном сервере заказчика. Реализация запуска разработанных Telegram ботов как системных служб при помощи системы инициализации systemd. Данная система содержит такой инструмент, как systemctl. С его помощью реализовано управление работой служб, функционирующих в фоновом режиме: запуск, остановка, проверка состояния. Боты помещены в автозапуск, запускаются от имени разных пользователей (telegrambot и Igor) с разными виртуальными окружениями, разработанными конкретно под них. Количество перезапусков каждого бота (при ошибках, вылетах и т.д.) составляет 5 раз с интервалом запуска в 30 секунд.  Ко всем ботам добавлены логи службы (там можно посмотреть ошибки при запуске, информационные уведомления и т.д.) с наименованием <название_службы_бота.service.log>. Добавлены таймстампы в логи служб ко всем событиям.
    4. Активное тестирование всех разрабатываемых Telegram ботов. Внесение на обсуждение правок по работе, функционалу и рационализаторских предложений по результатам тестирования. Обсуждение новых внедряемых возможностей в функционал Telegram ботов с членами группы разработчиков; 5. Реализация скриптов подключения YandexGPT и GigaChat с помощью API библиотеки langchain отдельными файлами.
    6. Консультирование членов группы разработчиков по интеграции в production заказчика реализованного решения. Знакомство группы с операционной системой на сервере заказчика, её возможностями и тонкостям работы с ней.
    7. Публикация результатов проделанной работы на Github, в группе разработчиков Telegram и сервере заказчика.
  • Евгений Спицын
    Руководитель компании ИИ-Автоматика, занимаемся внедрением систем с Ai на предприятиях
    • Являлся руководителем мини группы;
    • Определял образ конечного продукта для заказчика;
    • Собирал и мотивировал участников;
    • Ставил и распределял задачи;
    • Помогал участникам с написанием отдельных блоков кода и в обучении размещения проекта на сервере;
    • Помогал заказчику с получением ключей к сервисам и ботам
  • Курочкин Владимир
    Инженер-программист АСУТП
    1. Разработка и интеграция бота:
    ◦ Программирование бота на базе библиотеки aiogram для работы с Telegram, обеспечивая асинхронную обработку HTTP-запросов.
    ◦ Интеграция с LangChain и OpenAI для семантического анализа и генерации ответов на запросы пользователей с использованием языковой модели GPT-4-mini
    2. Обработка и анализ данных:
    ◦ Разработка системы для обработки текстовых сообщений от пользователей и сохранение данных для дальнейшего анализа.
    ◦ Внедрение системы векторного поиска с использованием базы данных Qdrant для улучшения точности и эффективности поиска ответов на запросы.
    ◦ Разработка системы поиска по ключевым словам, позволяющей извлекать ключевые слова из запросов пользователей и использовать их для улучшения поиска в базе данных.
    3. Активное участие в командной работе:
    ◦ Принимал активное участие в обсуждении и решении проблем, возникающих у коллег при разработке ботов.
    ◦ Активно занимался поиском и анализом информации по работе библиотек, особенно LangChain, и делился полученными знаниями и решениями с коллегами, способствуя повышению общей компетентности команды.
    4. Воронка обработки запросов:
    ◦ Система начинает с извлечения ключевых слов и векторного поиска, после чего происходит анализ схожести найденных данных с запросом пользователя.
    ◦ Используя фильтрацию по уровню схожести и сортировку релевантных данных, генерируется финальный ответ, который предоставляется пользователю.
    ◦ Регулярное добавление новых данных и обновление векторной коллекции в Qdrant, улучшающее качество и точность поиска.
    5. Улучшение базы данных и управление данными:
    ◦ Реализация функционала для добавления и обновления данных в базе данных с сохранением новых фрагментов информации, улучшение векторных представлений в базе Qdrant.
    Результаты: ИИ-бот, разработанный в рамках проекта, успешно справляется со своими задачами и демонстрирует отличную работоспособность при обработке запросов клиентов.
    Заключение: Участие в проекте разработки ИИ-бота для UNILIGHT позволило мне глубже понять процессы создания современных технологических решений для улучшения клиентского обслуживания. Работа над проектом способствовала развитию моих навыков в области программирования, работы с данными и искусственного интеллекта.
  • Ерёмин Сергей
    Системный администратор, ООО «Деревенское молочко»
    1. Составление промпта для категоризации запросов пользователей
    2. Построение дерева решений для базы знаний
    3. Векторный поиск в базе знаний, обработка результатов запросов
  • Ирина Гридасова
    Учитель математики в средней школе
    Принимала активное участие в тестирования ТГ бота
Участники
2 команды проекта
  • Николай Кус
    Тимлид проекта
  • Готова Наталья
    Исполнительный директор Ассоциации содействия производителям интеллектуальных систем в электроэнергетике и ЖКХ «ИНСИСТ ЭНЕРГО»
    1.Разметка данных и создание датасетов
    • Создала датасет инструкций и вручную разметила обращения.
    • Настроила систему автоматического сопоставления запросов и инструкций.
    • Разработала систему меток для классификации вопросов.
    2.Разработка и тестирование AI-моделей
    • Провела файн-тюнинг Llama 3.2 1B, но она показала слабые результаты.
    • Протестировала Llama 3 8B, которая работала лучше без дообучения.
    • Доработала алгоритмы RAG, улучшила фильтрацию ответов.
    • Настроила sentence transformer для поиска релевантных инструкций.
    3.Разработка Telegram-бота
    • Создала бота для инженеров и клиентов с журналированием заявок.
    • Настроила автоматическую классификацию обращений и выдачу инструкций.
    • Оптимизировала процесс диагностики неисправностей через прокликивание этапов.
    • Внедрила систему напоминаний и логирования диалогов.
    4.Оптимизация RAG и базы знаний
    • Изучила платформу Unstructured для улучшенного чанкинга PDF.
    • Доработала поиск инструкций, внедрила контроль генерации ответов.
    • Разработала механизм предобработки запросов перед отправкой в LLM.
    5.Тестирование и доработка моделей
    • Протестировала 152 вопроса, выявила проблемы с RuT5.
    • Настроила гибридную схему работы: RuT5 передает запрос Llama 8B при сложных вопросах.
    • Разработала категоризацию вопросов и обучила модель для точной классификации.
    • Внедрила RLHF (обучение с обратной связью) для улучшения классификации.
    6.Финальная оптимизация Telegram-бота
    • Внедрила систему фидбэка (лайки, комментарии).
    • Подготовила финальную версию AI-бота для тестирования в Telegram/Facebook.
    • Оптимизировала время ответа, интегрировав Fi2-Engineer.
    • Подготовила презентацию проекта.
  • Аникеев Михаил
    Тимлид команды разработчиков в IT-компании
    1. Разработка системы RAG
    • Подготовил основу для RAG, адаптировал ноутбуки по векторизации БЗ и тестированию вопросов.
    • Провел оптимизацию базы знаний для более точного поиска инструкций.
    2. Тестирование LLM и автоматическая оценка ответов
    • Протестировал 150 вопросов, добавил автоматическую оценку на основе эмбеддингов.
    • Настроил универсальный ноутбук для тестирования разных LLM (OpenAI, RuQwen, GigaChat, Llama 1B, 3B и 8B).
    3. Оптимизация векторизации и работы LLM
    • Разработал систему гибкой векторизации с GigaChat + внешние эмбеддинги.
    • Протестировал разные модели.
    • Добавил поддержку других LLM (YandexGPT, Llama 3.1) в универсальный ноутбук
  • Старкин Сергей
    Оценщик
    1. Работа с RAG-алгоритмами
    • Изучил теорию RAG, ознакомился с алгоритмами.
    • Разработал и тестировал RAG-алгоритм.
    2. Тестирование моделей и промтов
    • Разрабатывал промпт, который закрывает неправильные вопросы.
  • Плужников Михаил
    Юрист
    1. Разработка и интеграция Telegram-бота
    • Создан чат-бот для эксплуатантов, интегрированный с базой данных Airtable для автоматического сохранения обращений, их фильтрации и визуализации в реальном времени.
    • Добавлена интеграция с речевой моделью для автоматического формирования ответов инженеров.
    • Подготовил презентацию.
    2. Разработка UniLight Assist
    • Разработан прототип UniLight Assist — система диагностики и устранения неисправностей в реальном времени.
    • Интеграция Llama 3 для создания нейро-консультанта техподдержки.
    3. Работа с базой знаний и улучшение модели
    • Настроил Llama 3 для классификации вопросов, использования базы знаний и формирования релевантных ответов.
    • Провел тестирование модели и оптимизация промта.
  • Ткачева Маргарита
    Проектный менеджер в Научно-консультационном центре
    1. Создание инструкций и классификация проблем
    • Разработала инструкции в Markdown.
    • Написала скрипт на базе Sentence Transformer. для классификации проблем.
    2. Эксперименты с ответами на вопросы пользователей
    • Подготовила 45 вопросов из таблицы обращений с ответами.
    • Тестировала поиск ответов в инструкциях и через GPT.
    • Размечала инструкции для повышения точности поиска информации.
    3. Массовое тестирование и работа с промтами
    • Протестировала 45 "правильных" вопросов на ноутбуке массового тестирования.
    • Провела эксперименты с различными промтами, но баланс точности.
    • Разработала скрипт для сравнения 5 промтов, чтобы определить лучший вариант.
  • Кульков Сергей
    Руководитель подразделения в торговой компании
    1. Транскрибирование и обработка текстов
    • Распознал и подготовил аудиозаписи в текстовом формате
    • Провел суммаризацию текстов для последующего использования в RAG.
    2. Создание инструкций из аудио
    • Разработал инструкции по устранению неисправностей на основе аудиозаписей
    • Подготовил шаблон вопросов для классификации неисправностей.
    3. Сбор данных из чатов и формирование базы знаний
    • Извлек полезную информацию из чатов с клиентами и инженерами.
    • Провел анализ возможных вариантов сбора данных с помощью Gemini и ChatGPT.
    4. Оптимизация работы Telegram-бота
    • Разработал алгоритм обработки заявок в боте с использованием Gigachat API, Gemini и ChatGPT.
  • Тишкин Андрей
    Заместитель генерального директора по Информационным технологиям на мясоперерабатывающем комбинате
    1. Изучение материалов и тестирование моделей
    • Ознакомился с доступными LLM, протестировал несколько вариантов для чат-бота.
    • Запустил тестового бота и проанализировал поведение моделей в разных сценариях.
    • Выявил, что малые модели не всегда корректно обрабатывают запросы.
    2. Fine-tuning и оптимизация LLM
    • Протестировал модели с квантизацией в GGUF для запуска на CPU.
    • Выбрал и дообучил Qwen2.5 3B RU Q6 K GGUF, улучшив качество обработки запросов.
    • Оптимизировал промты, чтобы минимизировать текстовые инструкции внутри запроса.
    3. Разработка стратегии улучшения бота
    • Исследовал возможности RAG для улучшения работы с базой знаний.
    • Проанализировал стратегию дальнейшего дообучения или интеграции RAG.
    • Подготовил тестовый набор промтов и сценарии для будущей оптимизации.