Проект: RAG система для каталога ювелирных изделий

Система Retrieval-Augmented Generation с семантическим кэшированием и переиндексацией внутренней базы знаний

Задачи проекта:

Описание проекта:

RAG система для каталога ювелирных изделий — это профессиональное решение для работы с каталогами ювелирных изделий, использующее подход Retrieval-Augmented Generation с возможностями семантического кэширования. Система интегрирует ChromaDB для векторного поиска, HuggingFace для эмбеддингов и OpenAI GPT для генерации ответов.

Архитектура решения

Общая архитектура

Система состоит из следующих основных компонентов:

Ключевые компоненты

VectorDatabase (ChromaDB)

  • Управление коллекциями ChromaDB для документов и кэша
  • Методы для добавления/удаления документов
  • Очистка устаревших записей кэша

RAG Рабочий процесс

  • Проверка кэша перед обработкой запроса
  • Поиск релевантных документов при отсутствии кэша
  • Генерация ответа с LLM и сохранение в кэш

Обработка документов

  • Поддержка JSON, PDF, DOCX, TXT форматов
  • Использование библиотеки Unstructured для извлечения текста
  • Разбиение на чанки с перекрытием

Конфигурация

  • Настройка путей ChromaDB
  • Параметры обработки документов
  • Настройки моделей и кэширования

Технический стек

Ключевые особенности:

Семантический поиск

  • Использование эмбеддингов HuggingFace
  • Точное извлечение релевантной информации

Система кэширования

  • Семантическое сопоставление с порогом расстояния L2
  • TTL-истечение (настраивается)
  • Инвалидация по источнику

Автоматическая индексация

  • Обнаружение изменений через хеши SHA-256
  • Инкрементальные обновления
  • Очистка удаленных файлов

Поддерживаемые форматы

  • JSON - прямой парсинг с проверкой хешей
  • PDF/DOCX - извлечение через Unstructured
  • TXT - прямая обработка текста

Режимы работы:

Схема обработки запроса

Схема обработки запроса