LiKenun commited on
Commit
47ead95
·
1 Parent(s): 455b194

Make dependency injection configuration more readable

Browse files
Files changed (1) hide show
  1. src/ctp_slack_bot/containers.py +53 -18
src/ctp_slack_bot/containers.py CHANGED
@@ -36,21 +36,56 @@ __load_plugins("ctp_slack_bot/mime_type_handlers")
36
 
37
  class Container(DeclarativeContainer): # TODO: audit for potential async-related bugs.
38
  settings = Singleton(Settings)
39
- event_brokerage_service = Singleton(EventBrokerageService)
40
- schedule_service = Resource(ScheduleServiceResource, settings=settings)
41
- mongo_db = Resource(MongoDBResource, settings=settings) # TODO: generalize to any database.
42
- vectorized_chunk_repository = Resource(MongoVectorizedChunkRepositoryResource, settings=settings, mongo_db=mongo_db)
43
- vector_database_service = Singleton(VectorDatabaseService, settings=settings, vectorized_chunk_repository=vectorized_chunk_repository)
44
- embeddings_model_service = Singleton(EmbeddingsModelService, settings=settings)
45
- vectorization_service = Singleton(VectorizationService, settings=settings, embeddings_model_service=embeddings_model_service)
46
- content_ingestion_service = Singleton(ContentIngestionService, settings=settings, event_brokerage_service=event_brokerage_service, vector_database_service=vector_database_service, vectorization_service=vectorization_service)
47
- context_retrieval_service = Singleton(ContextRetrievalService, settings=settings, vectorization_service=vectorization_service, vector_database_service=vector_database_service)
48
- language_model_service = Singleton(LanguageModelService, settings=settings)
49
- answer_retrieval_service = Singleton(AnswerRetrievalService, settings=settings, event_brokerage_service=event_brokerage_service, language_model_service=language_model_service)
50
- 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)
51
- slack_bolt_app = Singleton(AsyncApp, token=settings.provided.SLACK_BOT_TOKEN().get_secret_value())
52
- slack_service = Resource(SlackServiceResource, event_brokerage_service=event_brokerage_service, slack_bolt_app=slack_bolt_app)
53
- socket_mode_handler = Singleton(lambda _, app, app_token: AsyncSocketModeHandler(app, app_token), slack_service, slack_bolt_app, settings.provided.SLACK_APP_TOKEN().get_secret_value())
54
- mime_type_handler_factory = Callable(lambda mime_type: MimeTypeHandlerMeta._registry[mime_type]())
55
- google_drive_service = Singleton(GoogleDriveService, settings=settings)
56
- # file_monitor_service = Singleton(FileMonitorService, settings=settings, google_drive_service=google_drive_service, mime_type_handler_factory=mime_type_handler_factory)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  class Container(DeclarativeContainer): # TODO: audit for potential async-related bugs.
38
  settings = Singleton(Settings)
39
+ event_brokerage_service = Singleton(EventBrokerageService)
40
+ schedule_service = Resource (ScheduleServiceResource,
41
+ settings=settings)
42
+ mongo_db = Resource (MongoDBResource, # TODO: generalize to any database.
43
+ settings=settings)
44
+ vectorized_chunk_repository = Resource (MongoVectorizedChunkRepositoryResource,
45
+ settings=settings,
46
+ mongo_db=mongo_db)
47
+ vector_database_service = Singleton(VectorDatabaseService,
48
+ settings=settings,
49
+ vectorized_chunk_repository=vectorized_chunk_repository)
50
+ embeddings_model_service = Singleton(EmbeddingsModelService,
51
+ settings=settings)
52
+ vectorization_service = Singleton(VectorizationService,
53
+ settings=settings,
54
+ embeddings_model_service=embeddings_model_service)
55
+ content_ingestion_service = Singleton(ContentIngestionService,
56
+ settings=settings,
57
+ event_brokerage_service=event_brokerage_service,
58
+ vector_database_service=vector_database_service,
59
+ vectorization_service=vectorization_service)
60
+ context_retrieval_service = Singleton(ContextRetrievalService,
61
+ settings=settings,
62
+ vectorization_service=vectorization_service,
63
+ vector_database_service=vector_database_service)
64
+ language_model_service = Singleton(LanguageModelService,
65
+ settings=settings)
66
+ answer_retrieval_service = Singleton(AnswerRetrievalService,
67
+ settings=settings,
68
+ event_brokerage_service=event_brokerage_service,
69
+ language_model_service=language_model_service)
70
+ question_dispatch_service = Singleton(QuestionDispatchService,
71
+ settings=settings,
72
+ event_brokerage_service=event_brokerage_service,
73
+ content_ingestion_service=content_ingestion_service,
74
+ context_retrieval_service=context_retrieval_service,
75
+ answer_retrieval_service=answer_retrieval_service)
76
+ slack_bolt_app = Singleton(lambda settings: AsyncApp(token=settings.SLACK_BOT_TOKEN.get_secret_value()),
77
+ settings)
78
+ slack_service = Resource (SlackServiceResource,
79
+ event_brokerage_service=event_brokerage_service,
80
+ slack_bolt_app=slack_bolt_app)
81
+ socket_mode_handler = Singleton(lambda _, app, settings: AsyncSocketModeHandler(app, settings.SLACK_APP_TOKEN.get_secret_value()),
82
+ slack_service,
83
+ slack_bolt_app,
84
+ settings)
85
+ mime_type_handler_factory = Callable (lambda mime_type: MimeTypeHandlerMeta._registry[mime_type]())
86
+ google_drive_service = Singleton(GoogleDriveService,
87
+ settings=settings)
88
+ # file_monitor_service = Singleton(FileMonitorService,
89
+ # settings=settings,
90
+ # google_drive_service=google_drive_service,
91
+ # mime_type_handler_factory=mime_type_handler_factory)