← Knowledge Store

Стек и структура

knowledge-store · workzone
Backend
стек — библиотеки
Фреймворк / БД
FastAPI Pydantic v2 SQLAlchemy 2.0 · async asyncpg
Хранилище → Три проекции
PostgreSQL pgvector · HNSW tsvector · GIN recursive SQL · CTE Alembic
Фоновая доводка → Curation Pass
SAQ cron Redis · очередь → Cache & Workers
Эмбеддинги → Embeddings-рантайм
embeddings · внешний сервис
структура — файлы · achilles/knowledge_store/
knowledge_store/   модуль = отдельный пакет
├── *.py           constants · models · schemas
├── services/      бизнес-логика — папка сразу
├── repositories/  доступ к данным — папка сразу
└── retrieval/     четыре примитива поиска + fusion
Почему retrieval/ отдельной папкой
Четыре парадигмы поиска (точная · векторная · лексическая · граф) и их слияние — самостоятельный слой поверх репозиториев: каждый примитив кладётся отдельным модулем, fusion собирает их в один ответ.
Выделенные движки — не в v1. Qdrant (вектора) и Neo4j (граф) в v1 не используются: вектора и граф живут в одном PostgreSQL ради единого ACL-запроса — несущее решение модуля. Отдельный графовый движок (Neo4j) — v2, если рекурсивного SQL станет недостаточно.