Перейти к содержанию

База данных

Основные таблицы

files

Метаданные файлов: путь, имя, расширение, размер, даты, тип документа, статус обработки, content_hash для инвалидации индекса.

file_contents

Текст по файлам. Для каждого файла — несколько записей с content_type: original, edited, anonymized. Содержит поле content и превью.

document_chunks

Фрагменты текста для эмбеддингов: связь с files и file_contents, порядок чанка, текст, статус эмбеддинга, модель, source_app_id для мультиаппликационности.

vec_embeddings (sqlite-vec)

Виртуальная таблица: chunk_id + вектор эмбеддинга (например, 1024 измерений). Используется для семантического поиска.

content_fts (FTS5)

Полнотекстовый индекс по полю content из file_contents. Синхронизация через триггеры при INSERT/UPDATE/DELETE.

Юридические сущности: статьи, пункты, ссылки на законы, номера дел, даты и т.д. — для поиска по типу «ст. 408», «ГК РФ».

anonymization_mappings

Сопоставления для анонимизации: исходный текст → плейсхолдер ([PERSON_1] и т.п.), тип сущности, позиции — для восстановления текста.

Вспомогательные таблицы

  • registered_apps — зарегистрированные приложения (LawMatic Finder, B2, TestOllama) и их модели эмбеддингов
  • embedding_metadata — модель и источник для каждого чанка
  • indexed_folders — какие папки индексировать, паттерны включения/исключения
  • processing_queue — очередь задач (извлечение, эмбеддинги, анонимизация)
  • search_history — история поиска для UX

Связи

files 1:N file_contents 1:N document_chunks 1:1 vec_embeddings
         │                        │
         └── content_fts          └── embedding_metadata → registered_apps

Совместимость эмбеддингов

При использовании одной БД разными приложениями все должны использовать одну и ту же модель эмбеддингов (например, mxbai-embed-large). В конфиге задаётся default_embedding_model и default_embedding_dimensions.