services.py 857 B

1234567891011121314151617181920212223242526
  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,
  10. ) -> None:
  11. self.provider_client = provider_client
  12. self.settings = settings
  13. def create_chat_completion(
  14. self,
  15. payload: ChatCompletionRequestContract,
  16. ) -> ChatCompletionResponseContract:
  17. resolved_payload = payload.model_copy(
  18. update={
  19. "model": payload.model or self.settings.default_model,
  20. }
  21. )
  22. return self.provider_client.create_chat_completion(resolved_payload)