Michael Hu
refactor based on DDD
5009cb8
raw
history blame
785 Bytes
"""Translation service interface."""
from abc import ABC, abstractmethod
from typing import TYPE_CHECKING
if TYPE_CHECKING:
from ..models.translation_request import TranslationRequest
from ..models.text_content import TextContent
class ITranslationService(ABC):
"""Interface for translation services."""
@abstractmethod
def translate(self, request: 'TranslationRequest') -> 'TextContent':
"""
Translate text from source language to target language.
Args:
request: The translation request containing text and language info
Returns:
TextContent: The translated text
Raises:
TranslationFailedException: If translation fails
"""
pass