Граф Зависимостей и Картография Модулей (Codebase Knowledge Graph)

Документ представляет собой полную карту взаимосвязей модулей, сервисов и подсистем движка ForjBot Engine, сформированную на основе анализа графа связей исходного кода (Graphify Knowledge Graph).

graph TD subgraph CoreEngine ["Ядро Движка (app/bot)"] Disp["core_dispatcher.py"] Pipe["handlers/pipeline.py"] MediaH["handlers/media.py"] PayH["handlers/payments.py"] end subgraph Adapters ["Слой Адаптеров Платформ (app/bot/platforms)"] BaseA["base.py (BasePlatformAdapter)"] TGA["telegram.py (TelegramAdapter)"] VKA["vk.py (VKAdapter)"] WCA["webchat.py (WebChatAdapter)"] end subgraph LLMClient ["Клиент LLM и Промпты (app/llm)"] Client["client.py (LLMClient)"] PromptComp["prompts.py (compose_template)"] AgentLoop["agent_loop.py (run_agent_loop)"] ProbeCache["probe_cache.py (Redis status)"] end subgraph RAGWorker ["Подсистема RAG и Векторный Поиск"] RAGIngest["rag/ingest.py (save_text_to_kb)"] RAGSearch["rag/search.py (hybrid_search_rrf)"] TEIServer["TEI Embeddings (granite-311m)"] WorkerService["rag-worker (standalone container)"] end subgraph PluginsCatalog ["Система Плагинов (app/plugins & app/media)"] WebSearchP["web_search.py (WebSearchPlugin)"] CharP["character.py (CharacterPlugin)"] JailP["jailbreak_guard.py (JailbreakGuardPlugin)"] RelP["relationship.py (RelationshipPlugin)"] RemP["reminders.py (RemindersPlugin)"] end subgraph DBAndCrypto ["База Данных и Безопасность"] DBModels["app/db/models.py (User, BotConfig, UserFact)"] CryptoService["app/services/crypto.py (EncryptedString)"] HTTPGuard["app/shared/http_guard.py (validate_outbound_url)"] end Disp --> Pipe --> Client Pipe --> MediaH & PayH BaseA --> TGA & VKA & WCA Client --> AgentLoop & PromptComp & ProbeCache RAGIngest --> RAGSearch & TEIServer & WorkerService Pipe --> PluginsCatalog PluginsCatalog --> WebSearchP & CharP & JailP & RelP & RemP Pipe --> DBModels & CryptoService & HTTPGuard

Ключевые Цепочки Взаимосвязей

1. Цепочка Обработки Сообщения (Inbound Message Pipeline)

  1. Канал ➔ Адаптер: TelegramPlatformHandler / VKPlatformHandler / WebChatPlatformHandler перехватывают событие и нормализуют в IncomingMessage.
  2. Диспетчеризация: core_dispatcher.process_incoming_message выполняет проверку блокировки, дедупликацию Redis и передает в handlers/pipeline.py.
  3. Хуки Плагинов: on_before_llm проверяет защиту от взлома (JailbreakGuardPlugin), метрики пользователя (RelationshipPlugin) и запрашивает RAG-контекст.
  4. LLM Вызов: LLMClient формирует динамический промпт через compose_template и выполняет итерации в agent_loop.py.
  5. Выполнение Действий: on_after_llm исполняет сгенерированные действия (генерация изображений, синтез речи, сохранения фактов UserFact).
  6. Отправка Ответа: BasePlatformAdapter.send_text / send_photo / send_voice доставляет реплику пользователю.

2. Цепочка Векторной Индексации RAG

  1. Загрузка: POST /admin/bots/{id}/documents сохраняет файл в том uploads-data.
  2. Очередь RAG: В БД создается запись document_chunks_bot_{id} со статусом PENDING.
  3. Фоновый Воркер (rag-worker): Извлекает тексты (через MarkItDown OCR для PDF/картинок), разбивает на чанки.
  4. TEI Векторизация: Отправляет чанки на микросервис embeddings (TEI Granite 311M), получает вектор 768-dim и записывает в PGVector.