📚 AZBUKA-AI: Православный интеллектуальный помощник

Система векторного поиска и AI-анализа православных текстов

🎯 О сервисе

AZBUKA-AI — это микросервис для интеллектуального поиска ответов на православные вопросы на основе материалов портала «Азбука веры». Система использует современные технологии векторного поиска и искусственного интеллекта для предоставления точных и релевантных ответов со ссылками на первоисточники.

Ключевая особенность: Каждый ответ содержит прямые ссылки на документы с azbyka.ru, на основе которых был сформирован ответ. Это гарантирует проверяемость и достоверность информации.

🔍 Векторная база данных (pgvector)

В основе системы лежит PostgreSQL с расширением pgvector — специализированное решение для хранения и поиска векторных представлений текстов (embeddings).

Что такое векторный поиск?

Каждый текстовый фрагмент преобразуется в математический вектор из 1536 чисел (embedding), который представляет смысл текста. При поиске система сравнивает вектор вопроса с векторами всех сохраненных текстов и находит наиболее семантически близкие фрагменты — даже если в них нет точных совпадений слов.

Преимущества векторного подхода:

  • Семантический поиск: находит релевантные тексты даже при разной формулировке
  • Высокая точность: cosine similarity позволяет ранжировать результаты по релевантности
  • Масштабируемость: может хранить миллионы векторов с быстрым поиском (<100ms)
  • Многоязычность: работает с любыми языками, включая церковнославянский

✂️ Chunking: разбиение документов на фрагменты

Вместо хранения целых статей (которые могут содержать 5000-10000 слов), система разбивает каждый документ на небольшие семантические блоки (chunks) размером 1000 токенов (~750 слов) с перекрытием в 100 токенов между соседними фрагментами.

Пример разбиения документа:
Документ (статья на azbyka.ru)
├── Chunk #1 (токены 0-1000)
├── Chunk #2 (токены 900-1900) ← перекрытие 100 токенов
├── Chunk #3 (токены 1800-2800)
└── ...

Почему разбиение важно:

  • Точность поиска: система находит конкретный абзац, а не всю статью
  • Контекст сохраняется: перекрытие предотвращает потерю смысла на границах
  • Гибкость анализа: AI получает только релевантные части, а не весь документ
  • Эффективность: можно искать среди миллионов фрагментов вместо тысяч статей

💰 Экономия на AI: почему это критично

Векторный подход с chunking радикально снижает затраты на работу с AI-моделями (DeepSeek, GPT, Claude) при сохранении высокого качества ответов.

Без векторного поиска

  • • Отправка 3-5 полных статей в AI
  • • ~15,000-30,000 токенов контекста
  • • Много нерелевантной информации
  • Стоимость: ~$0.30-0.60 за запрос
  • • Медленная обработка (10-20 сек)

С векторным поиском

  • • Отправка 5-10 релевантных chunks
  • • ~3,000-5,000 токенов контекста
  • • Только нужная информация
  • Стоимость: ~$0.03-0.08 за запрос
  • • Быстрая обработка (2-5 сек)

💡 Экономия: до 10× меньше затрат на AI при лучшем качестве ответов!

Векторный поиск гарантирует, что AI анализирует только самую релевантную информацию, что повышает точность ответов и снижает вероятность “галлюцинаций” модели.

🎯 Точность и достоверность ответов

Комбинация векторного поиска и chunking обеспечивает высочайшую точность ответов благодаря нескольким механизмам:

Как работает система точности:

  1. 1
    Семантический анализ вопроса:

    Вопрос преобразуется в вектор, отражающий его истинный смысл, а не просто слова

  2. 2
    Поиск по similarity (cosine distance):

    Система находит chunks с similarity > 0.75 (от 0 до 1), отсекая нерелевантную информацию

  3. 3
    Контекстная отправка в AI:

    AI получает четкую инструкцию: “Отвечай ТОЛЬКО на основе предоставленных документов”

  4. 4
    Проверяемость источников:

    Каждый ответ содержит прямые ссылки на документы azbyka.ru, которые использовались

  5. 5
    Динамическое пополнение базы:

    Если релевантных chunks мало, система автоматически парсит новые статьи с azbyka.ru

Результат: Система не “выдумывает” ответы, а строит их исключительно на проверенных православных текстах с возможностью верификации через первоисточники.

🏗️ Архитектура системы

Frontend (Next.js):ChatGPT-style интерфейс с историей разговоров (24 часа)
Backend (FastAPI):REST API, парсинг azbyka.ru, обработка векторов, интеграция с AI
PostgreSQL + pgvector:Хранение документов, chunks и векторных embeddings (1536 dimensions)
Redis:Кэширование ответов (30 дней) и управление сессиями
AI Models:DeepSeek (генерация ответов), OpenAI (создание embeddings)

🔧 Технологический стек

Backend

  • • Python 3.12
  • • FastAPI
  • • SQLAlchemy
  • • BeautifulSoup4
  • • httpx/aiohttp

Frontend

  • • Next.js 14
  • • React 18
  • • TypeScript
  • • Tailwind CSS

Infrastructure

  • • Docker Compose
  • • PostgreSQL 16
  • • pgvector 0.5
  • • Redis 7
  • • Alembic

Разработано для проекта RefHold