from core_domain import ChatCompletionRequestContract, ChatCompletionResponseContract from app.bootstrap.settings import ModelGatewayServiceSettings from app.infrastructure.provider import ModelProviderClient class ModelGatewayApplicationService: def __init__( self, *, provider_client: ModelProviderClient, settings: ModelGatewayServiceSettings) -> None: self.provider_client = provider_client self.settings = settings def create_chat_completion( self, payload: ChatCompletionRequestContract) -> ChatCompletionResponseContract: resolved_payload = payload.model_copy( update={ "model": payload.model or self.settings.default_model, } ) return self.provider_client.create_chat_completion(resolved_payload)