Commit a2f45412 authored by salma's avatar salma

move DI to it's own file

parent 13ca82ce
from .enums import MessageType, ResponseStatus, StudentNationality, Models, StudyLanguage from .enums import MessageType, ResponseStatus, StudentNationality, Models, StudyLanguage
from .config import AppConfig from .config import AppConfig
\ No newline at end of file from .container import DIContainer
\ No newline at end of file
import os
from pathlib import Path
import sys
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
class DIContainer:
def __init__(self):
from . import AppConfig
from repositories import MinIOStorageRepository
from services import (
AudioService, ChatService, HealthService, ResponseService,
ResponseManager, OpenAIService, AgentService, ConnectionPool,
LanguageSegmentationService, DataIngestionService
)
self.config = AppConfig.from_env()
self.storage_repo = MinIOStorageRepository(self.config)
self.response_manager = ResponseManager()
# Initialize OpenAI and Agent services
self.openai_service = OpenAIService()
self.pool_handler = ConnectionPool(
dbname=os.getenv("POSTGRES_DB"),
user=os.getenv("POSTGRES_USER"),
password=os.getenv("POSTGRES_PASSWORD"),
host=os.getenv("DB_HOST"),
port=int(os.getenv("DB_PORT"))
)
print(os.getenv("DB_HOST"), os.getenv("POSTGRES_DB"), os.getenv("POSTGRES_USER"))
self.agent_service = AgentService(pool_handler=self.pool_handler)
self.data_ingestion_service = DataIngestionService(pool_handler=self.pool_handler)
# Initialize services
self.audio_service = AudioService(self.storage_repo, self.config.minio_bucket)
self.segmentation_service = LanguageSegmentationService()
self.chat_service = ChatService(
self.storage_repo,
self.response_manager,
self.config,
self.openai_service,
self.agent_service,
self.segmentation_service
)
self.response_service = ResponseService(self.response_manager, self.audio_service)
self.health_service = HealthService(self.storage_repo, self.config)
\ No newline at end of file
...@@ -34,41 +34,7 @@ from schemas.mcq import QuestionResponse, QuizResponse, MCQListResponse, QuizSub ...@@ -34,41 +34,7 @@ from schemas.mcq import QuestionResponse, QuizResponse, MCQListResponse, QuizSub
# Instantiate one manager per worker # Instantiate one manager per worker
manager = WebSocketManager() manager = WebSocketManager()
class DIContainer: from core import DIContainer
def __init__(self):
self.config = AppConfig.from_env()
self.storage_repo = MinIOStorageRepository(self.config)
self.response_manager = ResponseManager()
# Initialize OpenAI and Agent services
self.openai_service = OpenAIService()
self.pool_handler = ConnectionPool(
dbname=os.getenv("POSTGRES_DB"),
user=os.getenv("POSTGRES_USER"),
password=os.getenv("POSTGRES_PASSWORD"),
host=os.getenv("DB_HOST"),
port=int(os.getenv("DB_PORT"))
)
print(os.getenv("DB_HOST"), os.getenv("POSTGRES_DB"), os.getenv("POSTGRES_USER"))
self.agent_service = AgentService(pool_handler=self.pool_handler)
self.data_ingestion_service = DataIngestionService(pool_handler=self.pool_handler)
# Initialize services
self.audio_service = AudioService(self.storage_repo, self.config.minio_bucket)
self.segmentation_service = LanguageSegmentationService()
self.chat_service = ChatService(
self.storage_repo,
self.response_manager,
self.config,
self.openai_service,
self.agent_service,
self.segmentation_service
)
self.response_service = ResponseService(self.response_manager, self.audio_service)
self.health_service = HealthService(self.storage_repo, self.config)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment