LiKenun's picture
Test MongoDB code
4f2cb88
raw
history blame
3.17 kB
from dependency_injector.containers import DeclarativeContainer
from dependency_injector.providers import Factory, List, Singleton
from slack_bolt.async_app import AsyncApp
from ctp_slack_bot.core.config import Settings
from ctp_slack_bot.db.mongo_db import MongoDB
from ctp_slack_bot.db.repositories import MongoVectorizedChunkRepository
from ctp_slack_bot.services.answer_retrieval_service import AnswerRetrievalService
from ctp_slack_bot.services.content_ingestion_service import ContentIngestionService
from ctp_slack_bot.services.context_retrieval_service import ContextRetrievalService
from ctp_slack_bot.services.embeddings_model_service import EmbeddingsModelService
from ctp_slack_bot.services.event_brokerage_service import EventBrokerageService
from ctp_slack_bot.services.language_model_service import LanguageModelService
from ctp_slack_bot.services.question_dispatch_service import QuestionDispatchService
from ctp_slack_bot.services.slack_service import SlackService
from ctp_slack_bot.services.vector_database_service import VectorDatabaseService
from ctp_slack_bot.services.vectorization_service import VectorizationService
class Container(DeclarativeContainer):
settings = Singleton(Settings)
event_brokerage_service = Singleton(EventBrokerageService)
slack_bolt_app = Factory(AsyncApp, token=settings.provided.SLACK_BOT_TOKEN().get_secret_value())
mongo_db = Singleton(MongoDB, settings=settings) # TODO: generalize to any database.
vectorized_chunk_repository = Singleton(
MongoVectorizedChunkRepository,
mongo_db=mongo_db
)
vector_database_service = Singleton(VectorDatabaseService, settings=settings, mongo_db=mongo_db)
embeddings_model_service = Singleton(EmbeddingsModelService, settings=settings)
vectorization_service = Singleton(VectorizationService, settings=settings, embeddings_model_service=embeddings_model_service)
content_ingestion_service = Singleton(ContentIngestionService, settings=settings, event_brokerage_service=event_brokerage_service, vector_database_service=vector_database_service, vectorization_service=vectorization_service)
context_retrieval_service = Singleton(ContextRetrievalService, settings=settings, vectorization_service=vectorization_service, vector_database_service=vector_database_service)
language_model_service = Singleton(LanguageModelService, settings=settings)
answer_retrieval_service = Singleton(AnswerRetrievalService, settings=settings, event_brokerage_service=event_brokerage_service, language_model_service=language_model_service)
question_dispatch_service = Singleton(QuestionDispatchService, settings=settings, event_brokerage_service=event_brokerage_service, content_ingestion_service=content_ingestion_service, context_retrieval_service=context_retrieval_service, answer_retrieval_service=answer_retrieval_service)
slack_service = Singleton(SlackService, event_brokerage_service=event_brokerage_service, slack_bolt_app=slack_bolt_app)
primordial_services = List(settings, event_brokerage_service, slack_bolt_app, slack_service, vectorized_chunk_repository, question_dispatch_service, content_ingestion_service)