services.py 845 B

123456789101112131415161718192021222324
  1. from core_domain import ChatCompletionRequestContract, ChatCompletionResponseContract
  2. from app.bootstrap.settings import ModelGatewayServiceSettings
  3. from app.infrastructure.provider import ModelProviderClient
  4. class ModelGatewayApplicationService:
  5. def __init__(
  6. self,
  7. *,
  8. provider_client: ModelProviderClient,
  9. settings: ModelGatewayServiceSettings) -> None:
  10. self.provider_client = provider_client
  11. self.settings = settings
  12. def create_chat_completion(
  13. self,
  14. payload: ChatCompletionRequestContract) -> ChatCompletionResponseContract:
  15. resolved_payload = payload.model_copy(
  16. update={
  17. "model": payload.model or self.settings.default_model,
  18. }
  19. )
  20. return self.provider_client.create_chat_completion(resolved_payload)