Все кейсы

Помощник юриста: поиск по базе из 3000 дел прямо в переписке

19 января 2026 г.
Помощник юриста: поиск по базе из 3000 дел прямо в переписке
Результаты
  • 3000+ документов в базе (с автоматическим пополнением)
  • 30 000+ чанков в векторной таблице для семантического поиска
  • Поиск по делу: из ручного перебора → в ответы за секунды
  • Гибридный поиск: точные ответы по номеру дела + поиск по смыслу
  • Автозагрузка PDF: клиент добавляет файлы, система обрабатывает сама
  • Логирование запросов/ответов для аналитики и контроля качества

Юридическая компания обратилась с задачей: в базе почти 3000 судебных документов, она постоянно пополняется, а поиск нужного дела вручную отнимает много времени. Нужно было сделать инструмент, который позволит юристу быстро находить конкретное дело по номеру и одновременно искать по смыслу по всей базе.

Я реализовал решение в формате RAG ЮРИСТ — бот для юристов в Telegram, который работает по гибридному сценарию:

  1. Точный поиск (SQL) — когда в запросе есть номер дела или конкретный реквизит.
  2. Семантический поиск (pgvector) — когда запрос “по смыслу”: события, обстоятельства, формулировки, похожие кейсы.
  3. AI-роутинг — бот определяет тип вопроса и отправляет его в нужную ветку, чтобы не терять точность.

Архитектура и стек: — n8n (2 workflow: загрузчик и бот) — Supabase (PostgreSQL) + pgvector — OpenAI Embeddings для векторизации — ChatGPT как агент для формирования структурированного ответа — Яндекс.Диск как источник PDF (пакетная загрузка) — Telegram как интерфейс (команды, кнопки, удобный UX)

Как устроена загрузка документов: Клиент загружает PDF пачкой в папку на Яндекс.Диске. Загрузчик в n8n автоматически забирает документы по одному, извлекает текст, достаёт реквизиты через AI-агента в формате JSON, сохраняет дело в таблицу Cases, режет текст на чанки, создаёт эмбеддинги и записывает их в таблицу case_chunks для семантического поиска. После обработки файл переносится в папку “обработано”.

Как устроен бот: Пользователь пишет в Telegram. Бот определяет команду или вопрос, дальше AI-роутинг решает: SQL-ветка (точно по делу) или векторная ветка (по смыслу). Ответ формируется структурированно. Если ответ длинный — бот упаковывает результат в .txt и добавляет краткое summary, чтобы не упираться в лимиты Telegram. Все запросы и ответы логируются в Supabase для аналитики и улучшения качества.

В конце кейса я записал видео с подробной демонстрацией: показываю оба workflow в n8n, структуру таблиц Supabase, роутинг запросов, гибридный поиск, чанкинг и пример работы бота на реальном запросе.