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 .config import AppConfig
\ No newline at end of file
from .config import AppConfig
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
# Instantiate one manager per worker
manager = WebSocketManager()
class 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)
from core import DIContainer
......
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