Григорий Акулин akulingreg Сбер ID
Рейтинг
1 885
№ 566 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Санкт-Петербург
Опыт работы
4 года
На сайте с
2026 года
Юридический статус
Частное лицо

Чат бот с AI для ответа на вопросы

Используемые навыки AI Chatbot Development Docker Java Telegram API

Описание

Задача: сделать чат бот, который будет отвечать на вопросы клиентов об оборудовании, помогать в настройке на основе данных с сайта wiki. Проблемы с которыми пришлось столкнуться - долгий ответ, галлюцинирование ИИ.

Решение

Для решения пришлось построить RAG-пайплайн(грубо говоря, данные переходят из одного ИИ(Llama 3, внутреннего) переходят в другой ИИ(внешний, GigaChat): парсинг вики, API-документации и собственных материалов, эмбеддинги через Ollama, поиск по векторной базе.

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

Для борьбы с галлюцинациями пришлось запретить модели придумывать факты и ссылки на магазины/документацию, разрешил общие знания только при пустом контексте.

Таблицы характеристик рендерятся картинкой вместо ломающегося markdown(таблицы характеристик уже были на wiki сайте). Картинки оборудования привязаны к подзаголовкам тематик и выгружены в отдельную папку, подсоединяются к ответу, если вопрос общий(не касается технической информации) по оборудованию.

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

Стэк:
Kotlin
Ktor
Jsoup
Ollama, GigaChat API
Telegram Bot API
Docker

Возможно потребуется туннелирование трафика для работы в Telegram, если сервер в РФ, но на некоторых серверах работает без туннеля. У клиента свой сервер и настройки туннелирования, развертывал с Docker. На примере(в картинках) локальный запуск с логгированием.

Результат

Бот отвечает по документации конкретной модели, а не общими фразами, контекст диалога поддерживается.

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

Самый важный момент - стоимость обслуживания бота. Llama запускается на сервере и не стоит обслуживания. Нужен только сервер, сполна достаточно 2 vCPU и 2-4 ГБ RAM(500 рублей в месяц) и GigaChat (500 запросов, если 2000 токенов в среднем будет тратиться - бесплатно, а если нужно больше то 1300 рублей за пакет 20000000 токенов, это 10000 ответов).

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Сайт для продвижения и продажи услуги монтажа умного дома
Сайт для продвижения и продажи услуги монтажа умного дома
70
Веб-разработка и IT Внутренняя CRM система объединяющая Telegram ботов
Внутренняя CRM система объединяющая Telegram ботов
87