Skip to content

Architecture

Nereus Bot edited this page Aug 11, 2026 · 2 revisions

Архитектура

main.py ──► src/nereus/core/graph.py   (LangGraph StateGraph)
                 │
            ┌────┴────┐
            │ NereusState │   (pydantic TypedDict)
            └────┬────┘
        ┌────────┼────────┐
        │ Coach  │ Tutor  │ Examiner │   (agents/* + llu/*.py)
        │ (roadmap + diag)│ (materials)│ (assessment)│
        └────────┼────────┘
                 ▼
        llm/inference.py   (StructuredInferenceClient, retry x2)
                 │
        LLM_PROVIDER = stub | openrouter

LLM_PROVIDER=stub — in‑memory, без сети (тесты / CI / демо). LLM_PROVIDER=openrouter — chat + embeddings через OpenRouter.

Слои

  1. Automaton — src/nereus/core/graph.py собирает StateGraph и фиксирует allowlist сериализуемых объектов; core/factory.py:build_nereus_graph() — централизованная сборка.
  2. LLM runtime — llm/prompts.py (реестр ролей), llm/schema.py (Pydantic‑контракты ответов), llm/params.py (per‑role), llm/inference.py (клиент с ретраями, LLMUnavailableError).
  3. Память — core/session.py:LearningSession (агрегация прогресса и слабых мест, dump/load, trim_context), core/context.py truncate/summarize.
  4. RAG — db/chroma.py:ChromaStore (upsert/search по темам), llm/retriever.py, retrieval‑узел в графе.
  5. Хранилище пользователей — core/user_store.py: UserStore (SQLite + memory) и UserStoreRedis (Redis hash, graceful fallback на memory); фабрика build_user_store() диспатчит на USER_STORAGE.
  6. Чекпоинтер — core/persistence.py:build_checkpointer (memory/sqlite/redis) для cross‑restart resume в CLI и Chainlit.
  7. UI — src/nereus/ui/app.py (Chainlit).

Конфиг

Все пути/модели/таймауты читаются через Pydantic‑settings (src/nereus/config/settings.py); переменные можно переопределять через .env (см. .env.example и Development).

Clone this wiki locally