Spaces:
Runtime error
Runtime error
from dependency_injector.containers import DeclarativeContainer | |
from dependency_injector.providers import Factory, Singleton | |
from openai import OpenAI | |
from ctp_slack_bot.core.config import Settings | |
from ctp_slack_bot.db.mongo_db import MongoDB | |
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.event_brokerage_service import EventBrokerageService | |
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) | |
mongo_db = Singleton(MongoDB, settings=settings) | |
# Repositories | |
# transcript_repository = Factory( | |
# # Your transcript repository class | |
# db=db | |
# ) | |
open_ai_client = Factory(OpenAI, api_key=settings.provided.OPENAI_API_KEY) # TODO: poor practice to do it this way; create a LanguageModelService that creates an OpenAI client. | |
vector_database_service = Singleton(VectorDatabaseService, settings=settings, mongo_db=mongo_db) | |
vectorization_service = Singleton(VectorizationService, settings=settings, client=open_ai_client) | |
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) | |
answer_retrieval_service = Singleton(AnswerRetrievalService, settings=settings, event_brokerage_service=event_brokerage_service, client=open_ai_client) | |
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, settings=settings, event_brokerage_service=event_brokerage_service) | |