"""Выбор бэкенда векторного индекса по настройке VECTOR_BACKEND. Единая точка входа: задачи (search / plagiarism) зовут get_backend().search(...) / .add_vectors(...) / .save(...), не зная, какой бэкенд под капотом — FAISS (файловый синглтон в RAM воркера, дефолт) или Qdrant (сетевой сервис, снимает SPOF и допускает конкурентную запись). Оба класса имеют одинаковый classmethod-интерфейс. """ import logging from app.config import settings logger = logging.getLogger(__name__) def get_backend(): """Вернуть класс активного векторного бэкенда согласно settings.VECTOR_BACKEND.""" if settings.VECTOR_BACKEND == "qdrant": from app.qdrant_manager import QdrantManager return QdrantManager from app.faiss_manager import FAISSManager return FAISSManager