# **Техническое задание на разработку платформы для поиска по корпоративным данным с использованием LLM-моделей** ## **1. Введение** ### **1.1. Назначение документа** Настоящее техническое задание (ТЗ) описывает требования к разработке платформы для семантического поиска и обработки корпоративных данных с использованием LLM (Large Language Models) и RAG (Retrieval-Augmented Generation). ### **1.2. Цель проекта** Создание системы, которая: - Индексирует корпоративные данные из BookStack и других источников. - Обеспечивает поиск и генерацию ответов на основе LLM (ChatGPT, YandexGPT, GigaChat). - Интегрируется с Bitrix24 через чат-бота. - Предоставляет интерфейсы для управления и загрузки данных. --- ## **2. Описание системы** ### **2.1. Функциональные требования** #### **2.1.1. Загрузка и обработка данных** - Поддержка форматов: PDF, DOCX, TXT, XML, JSON, YAML, MD, MDX, HTML, XLS, CSV. - Загрузка через BookStack (webhook) или отдельный интерфейс платформы. - Разделение документов на чанки и их векторизация. - Хранение в векторной БД (Weaviate или PostgreSQL с pgvector). #### **2.1.2. Поиск и генерация ответов** - Прием запросов через API или чат-интерфейс. - RAG-поиск: извлечение релевантных чанков из БД. - Генерация ответов с использованием выбранной LLM (ChatGPT, YandexGPT, GigaChat). #### **2.1.3. Интерфейсы** - **Админ-панель**: управление настройками, моделями, источниками данных. - **Интерфейс загрузки файлов**: ручная загрузка документов в векторную БД. - **Веб-чат**: тестирование и проверка работы системы. - **Чат-бот для Bitrix24**: интеграция через API Bitrix. ### **2.2. Нефункциональные требования** - **Производительность**: время ответа ≤ 3 сек. - **Масштабируемость**: поддержка > 10 000 документов. - **Безопасность**: аутентификация (OAuth2, API-ключи), разграничение прав. - **Поддержка LLM**: возможность добавления новых моделей. --- ## **3. Архитектура** ### **3.1. Компоненты системы** 1. **BookStack (или аналог)**: хранение исходных документов. 2. **Maker-GPT (ядро системы)**: - API для обработки запросов. - Интеграция с векторной БД. - Подключение к LLM. 3. **Векторная БД**: Weaviate / PostgreSQL (pgvector). 4. **Интерфейсы**: - Админ-панель (Vue). - Веб-чат (Vue). - Bitrix24-бот (REST API). ### **3.2. Схема взаимодействия** ```mermaid graph TD A[BookStack] -->|Webhook| B[Maker-GPT] C[Файлы] -->|Загрузка| B B -->|Векторизация| D[Weaviate/PostgreSQL] E[Пользователь] -->|Запрос| F[API/Чат] F --> B -->|RAG + LLM| G[Ответ] B -->|Интеграция| H[Bitrix24] ``` ### **3.3 Запрос названия хим препарата** ```mermaid flowchart TD A[Пришлите мне название препарата] -->|Ответ польз-ля| B{ответ ищем по базе названий} B -->|Найдено более 1го| C{Спросить по какому из?} B -->|Найден 1 препарат| D[Запрос к БД по имени препарата] C -->|Выбран препарат| D B -->|Не найден| E{Запрос к модели для поиска похожего} E -->|есть одно имя препарата| D E -->|модель задала уточняющий вопрос| F[вопрос пользователю] F -->|ответ поль-ля| E ``` --- ## **4. Технологический стек** - **Backend**: Node.js, MongoDB . - **Векторная БД**: Weaviate / PostgreSQL + pgvector. - **LLM-интеграция**: OpenAI API, YandexGPT API, GigaChat API. - **Фронтенд**: Vue. - **DevOps**: Docker. --- ## **5. Трудозатраты и сроки** | Этап | Описание | Срок (нед.) | Трудозатраты (ч) | |------|----------|------------|----------------| | 1 | Интеграция с BookStack и векторной БД | 3 | 100 | | 2 | Разработка интерфейсов (админка, чат) | 3 | 100 | | 3 | Интеграция с Bitrix24 | 2 | 80 | | 4 | Тестирование и доработки | 2 | 60 | | **Итого** | | **10 недель** | **340 часов** | --- ## **6. Ожидаемые результаты** - Рабочая платформа с RAG-поиском на корпоративных данных. - Интеграция с BookStack и Bitrix24. - Админ-панель, интерфейс загрузки файлов, веб-чат. - Документация и инструкции по развертыванию. --- ## **7. Дополнительные требования** - **Документирование API** (Swagger). - **Логирование и мониторинг** (Prometheus). - **Резервное копирование** данных стредствами ОС. --- **Исполнитель:** ООО 1Концепт **Заказчик:** _______________ **Дата:** 24.03.2025 **Подписи:** _________________________ (Заказчик) _________________________ (Исполнитель) ---