Spaces:
Runtime error
Runtime error
Make dependency injection configuration more readable
Browse files- 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
|
40 |
-
schedule_service
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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)
|