9.1 KiB
9.1 KiB
Техническое задание
Разработка Telegram-бота технической поддержки SmartAgro
1. Общие сведения
1.1 Наименование проекта
Telegram-бот технической поддержки SmartAgro.
1.2 Заказчик
ООО "СмартАгро" (SmartAgro)
1.3 Цель создания
Разработка автоматизированной системы технической поддержки через Telegram, предоставляющей пользователям информацию о продукте «Агроаналитика» (smartagro.ru) на основе данных из базы знаний (Confluence), с применением RAG и моделей сервиса Maker-GPT.
1.4 Назначение
Бот предназначен для оказания квалифицированной технической помощи в режиме реального времени по вопросам использования сервиса Агроаналитика, а также для снижения нагрузки на службу поддержки за счет автоматизации ответов на часто задаваемые вопросы.
2. Требования к функциональности
2.1 Основные функции бота:
- Прием текстовых сообщений от пользователей.
- Поиск наиболее релевантных документов/фрагментов в базе знаний (Confluence).
- Формирование контекста запроса с использованием RAG (Retrieval-Augmented Generation).
- Генерация понятного и точного ответа на основе контекста и API Maker-GPT.
- Вывод ответа пользователю в чате Telegram.
2.2 Дополнительные функции:
- Приветственное сообщение при старте.
- Возможность уточнения запроса, если он неоднозначен.
- Отправка ссылок на соответствующие статьи из Confluence.
- Логирование обращений пользователей (не персональные данные).
- Работа как с новыми, так и с зарегистрированными пользователями (по желанию).
3. Структура и источники данных
3.1 Источник информации
- База знаний: Confluence (https://doc.smartagro.ru/).
- Статьи из Confluence индексируются периодически или по запросу.
3.2 Индексация и хранение
- Контент из Confluence загружается и предобрабатывается (очистка, токенизация, деление на чанки).
- Тексты преобразуются в эмбеддинги с помощью модели (например,
paraphrase-multilingual-MiniLM-L12-v2
). - Векторы хранятся в PostgreSQL + расширение pgvector.
- Индексация может выполняться:
- Периодически (ежедневно/еженедельно).
- По требованию (через админ-панель или API).
3.3 Метод поиска
- Для входящего запроса формируется вектор.
- Выполняется поиск ближайших векторов (ближайшие фрагменты статей) в PostgreSQL.
- Полученные фрагменты используются как контекст для генерации ответа.
- Необходимо рассмотреть возможности объединения результатов поиска - векторного, семантического, через API Confluence
4. Архитектура решения
4.1 Компоненты системы:
Компонент | Описание |
---|---|
Telegram Bot | Интерфейс взаимодействия с пользователем |
API Gateway / Backend | Обработка запросов, логика работы с данными |
Confluence Parser | Модуль сбора и обработки данных из Confluence |
Vector DB (PostgreSQL + pgvector) | Хранилище эмбеддингов и текстовых фрагментов |
Maker-GPT API | Генерация ответов на основе контекста |
Scheduler | Планировщик регулярной синхронизации с Confluence |
4.2 Технологии:
- Язык программирования: JavaScript (Node.js)
- Telegram-библиотека: node-telegram-bot-api
- Maker-GPT API: GPT-4.1/GigaChat/YandexGPT
- База данных: PostgreSQL + pgvector
- Парсер Confluence: использование официального REST API Confluence
- Упаковка и запуск: Docker, PM2
5. Требования к интерфейсу
5.1 Telegram-бот
- Поддержка команд:
/start
— приветствие и описание возможностей/help
— справка/search <запрос>
— принудительный поиск по базе знаний
- Автоматическая обработка свободного текста.
- Ответы — в виде простого текста, возможно с кнопками и ссылками.
5.2 Административный интерфейс (по желанию)
- Веб-панель управления:
- Запуск ручной синхронизации с Confluence
- Просмотр истории обращений
- Ручная проверка ответов
- Управление доступом
6. Требования к безопасности
- Все данные, передаваемые между компонентами, должны быть защищены (HTTPS).
- Ключи API (Maker-GPT, Telegram, Confluence) хранятся в переменных окружения или секрет-менеджере (например, dotenv).
- Конфиденциальные данные пользователей не сохраняются без согласия.
7. Производительность и надёжность
- Ответ на запрос должен формироваться в течение не более 5 секунд.
- Бот должен работать 24/7 с минимальным временем простоя.
- Должны быть предусмотрены резервные пути (fallback) на случай недоступности OpenAI API или Confluence.
8. Этапы реализации
Этап | Описание | Срок |
---|---|---|
1. Анализ требований | Уточнение деталей, подготовка документации | 3 дня |
2. Настройка доступа | Telegram-бот, Confluence, OpenAI, PostgreSQL | 3 дня |
3. Парсер Confluence | Сбор и обработка данных | 5 дней |
4. Индексация и поиск | Реализация RAG | 5 дней |
5. Backend | Логика обработки запросов | 5 дней |
6. Тестирование | Юнит-тесты, тестирование в Telegram | 3 дня |
7. Деплой | Запуск на сервере, настройка CI/CD | 2 дня |
8. Поддержка | Исправление ошибок, доработки | после запуска |
9. Дополнительные требования
- Поддержка русского языка во всех интерфейсах.
- Возможность дальнейшего расширения: добавление новых источников знаний, модернизация под другие LLM.
- Документация по API и внутренней архитектуре.
10. Пример диалога
Пользователь:
Как настроить датчики температуры?
Бот:
Чтобы настроить датчики температуры в системе Агроаналитика, выполните следующие шаги:
- Перейдите в раздел "Оборудование".
- Выберите нужную площадку...
[далее — подробная инструкция]
Также вы можете ознакомиться с полной инструкцией здесь: [ссылка на статью в Confluence]