projects/SA-support.md

9.1 KiB
Raw Permalink Blame History

Техническое задание

Разработка 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. Пример диалога

Пользователь:

Как настроить датчики температуры?

Бот:

Чтобы настроить датчики температуры в системе Агроаналитика, выполните следующие шаги:

  1. Перейдите в раздел "Оборудование".
  2. Выберите нужную площадку...
    [далее — подробная инструкция]
    Также вы можете ознакомиться с полной инструкцией здесь: [ссылка на статью в Confluence]

Схема системы