32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
from app.modules.agent.module import AgentModule
|
|
from app.modules.agent.repository import AgentRepository
|
|
from app.modules.chat.repository import ChatRepository
|
|
from app.modules.chat.module import ChatModule
|
|
from app.modules.rag.repository import RagRepository
|
|
from app.modules.rag.module import RagModule
|
|
from app.modules.shared.bootstrap import bootstrap_database
|
|
from app.modules.shared.event_bus import EventBus
|
|
from app.modules.shared.retry_executor import RetryExecutor
|
|
|
|
|
|
class ModularApplication:
|
|
def __init__(self) -> None:
|
|
self.events = EventBus()
|
|
self.retry = RetryExecutor()
|
|
self.rag_repository = RagRepository()
|
|
self.chat_repository = ChatRepository()
|
|
self.agent_repository = AgentRepository()
|
|
|
|
self.rag = RagModule(event_bus=self.events, retry=self.retry, repository=self.rag_repository)
|
|
self.agent = AgentModule(rag_retriever=self.rag.rag, agent_repository=self.agent_repository)
|
|
self.chat = ChatModule(
|
|
agent_runner=self.agent.runtime,
|
|
event_bus=self.events,
|
|
retry=self.retry,
|
|
rag_sessions=self.rag.sessions,
|
|
repository=self.chat_repository,
|
|
)
|
|
|
|
def startup(self) -> None:
|
|
bootstrap_database(self.rag_repository, self.chat_repository, self.agent_repository)
|