Граф Зависимостей и Картография Модулей (Codebase Knowledge Graph)
Граф Зависимостей и Картография Модулей (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)
- Канал ➔ Адаптер:
TelegramPlatformHandler/VKPlatformHandler/WebChatPlatformHandlerперехватывают событие и нормализуют вIncomingMessage. - Диспетчеризация:
core_dispatcher.process_incoming_messageвыполняет проверку блокировки, дедупликацию Redis и передает вhandlers/pipeline.py. - Хуки Плагинов:
on_before_llmпроверяет защиту от взлома (JailbreakGuardPlugin), метрики пользователя (RelationshipPlugin) и запрашивает RAG-контекст. - LLM Вызов:
LLMClientформирует динамический промпт черезcompose_templateи выполняет итерации вagent_loop.py. - Выполнение Действий:
on_after_llmисполняет сгенерированные действия (генерация изображений, синтез речи, сохранения фактовUserFact). - Отправка Ответа:
BasePlatformAdapter.send_text/send_photo/send_voiceдоставляет реплику пользователю.
2. Цепочка Векторной Индексации RAG
- Загрузка:
POST /admin/bots/{id}/documentsсохраняет файл в томuploads-data. - Очередь RAG: В БД создается запись
document_chunks_bot_{id}со статусомPENDING. - Фоновый Воркер (
rag-worker): Извлекает тексты (через MarkItDown OCR для PDF/картинок), разбивает на чанки. - TEI Векторизация: Отправляет чанки на микросервис
embeddings(TEI Granite 311M), получает вектор 768-dim и записывает в PGVector.