Назад к кейсам
Финансы

AI-ассистент по документам

3453453455463456
3123123123
33331123123
1 / 3
Интеграций
Yandex Disk / Ollama
Экономия времени
Поиск за минуты
Разработанных модулей
Каталог + AI-поиск

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

Разработан веб-портал для интеллектуального поиска по PDF-библиотеке. Система превращает набор книг, регламентов, инструкций, отчётов и методических материалов в удобный каталог с обложками, фильтрами, смысловым поиском и AI-ответами со ссылками на конкретные страницы источников.

Решение работает локально внутри инфраструктуры: PDF-файлы, текст, embeddings, векторная база и ответы не передаются во внешние AI-сервисы. Пользователь задаёт вопрос обычным языком и получает структурированный ответ с указанием документа, автора, страницы и найденного фрагмента.

Моя роль — архитектор и разработчик решения. Я спроектировал архитектуру backend, frontend, векторного поиска и локального AI-контура, настроил обработку PDF, гибридный поиск, интеграцию с Ollama и Qdrant, а также реализовал пользовательский сценарий от загрузки документа до ответа с источниками.

Бизнес-задача

Было:

  • Документы хранились в виде разрозненных PDF-файлов
  • Поиск нужной информации занимал много времени
  • Пользователю приходилось открывать десятки документов вручную
  • Поиск работал только по словам, без понимания смысла вопроса
  • Не было удобной связи между ответом и конкретной страницей источника
  • Передача документов во внешние AI-сервисы была нежелательна из-за конфиденциальности

Задача: Создать локальную AI-библиотеку, которая позволяет быстро искать информацию по большому архиву PDF, получать ответы на естественном языке и сразу переходить к нужной странице документа без передачи данных наружу.

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

Система построена как локальный веб-портал с backend, frontend, очередями обработки, полнотекстовым и векторным поиском. Документы загружаются в систему, проходят обработку, индексируются и становятся доступны для поиска и AI-вопросов.

  • Backend: Python 3.12, Django, Django REST Framework
  • Frontend: Next.js, React, TypeScript, Tailwind CSS
  • Очереди и фоновые задачи: Celery, Redis
  • Работа с PDF: PyMuPDF, PDF.js
  • База данных: PostgreSQL
  • Векторное хранилище: Qdrant
  • Embeddings: BAAI/bge-m3
  • Локальная LLM: qwen3:14b через Ollama
  • Хранение файлов: Docker volumes для PDF и обложек
  • Авторизация: JWT
  • Администрирование: Django Admin

Логика обработки документа:

  • Загрузка PDF вручную, по ссылке или через Яндекс.Диск
  • Извлечение текста, метаданных, языка и количества страниц
  • Генерация обложки из первой страницы PDF
  • Разбиение текста на смысловые фрагменты
  • Создание embeddings через BGE-M3
  • Сохранение векторов в Qdrant
  • Создание полнотекстового индекса в PostgreSQL
  • Гибридный поиск по смыслу и ключевым словам
  • Формирование AI-ответа через локальную LLM
  • Вывод источников, страниц и найденных фрагментов

Технологии

Ollama RAG React SQL Аналитика Архитектура Итеграции

Что было реализовано

Спроектировал архитектуру локального AI-портала для работы с PDF-библиотекой.
Разработал backend на Django и Django REST Framework.
Настроил авторизацию через JWT и ролевую модель через Django Admin.
Разработал каталог PDF-документов с обложками, фильтрами и сортировкой.
Настроил автоматическое извлечение названия, автора, языка, количества страниц и метаданных.
Реализовал генерацию обложек из первой страницы PDF.
Добавил ручную загрузку PDF и импорт документов из публичных ссылок.
Настроил импорт PDF из папки Яндекс.Диска через OAuth API.
Реализовал статус OCR_REQUIRED для документов без текстового слоя.
Настроил прогресс индексации по каждой книге.
Разработал пайплайн разбиения текста на чанки и подготовки данных для поиска.
Настроил semantic search через Qdrant.
Реализовал full-text search через PostgreSQL.
Спроектировал гибридное ранжирование результатов.
Интегрировал локальную LLM через Ollama для ответов по библиотеке.
Настроил embeddings через BAAI/bge-m3.
Реализовал AI-вопросы по всей библиотеке и по конкретной книге.
Добавил ответы с источниками: документ, автор, страница и найденный фрагмент.
Интегрировал PDF.js viewer для открытия документа на нужной странице.
Разработал историю запросов пользователя.
Настроил удобную админку с обложками, фильтрами и сортировкой.

Результаты

Пользователь получает ответ по библиотеке за минуты вместо ручного поиска по десяткам PDF.
Система показывает не только AI-ответ, но и конкретные источники: документ, страницу и фрагмент.
Документы остаются внутри инфраструктуры и не передаются во внешние AI-сервисы.
PDF-архив превращён в полноценную базу знаний с каталогом, фильтрами и смысловым поиском.
Поиск работает не только по ключевым словам, но и по смыслу вопроса.
Появилась возможность быстро работать с книгами, методичками, регламентами, отчётами и обучающими материалами.
Решение можно использовать как основу для корпоративной базы знаний, учебного портала или экспертного архива.
Система снижает нагрузку на сотрудников, которым раньше приходилось вручную искать ответы в большом количестве документов.

Хотите реализовать похожий проект?

Давайте обсудим архитектуру вашего решения

Написать на email