Blame view

translation/protocols.py 729 Bytes
5e4dc8e4   tangwang   翻译架构按“一个翻译服务 +
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  """Protocols for translation service backends."""
  
  from __future__ import annotations
  
  from typing import List, Optional, Protocol, Sequence, Union, runtime_checkable
  
  
  TranslateInput = Union[str, Sequence[str]]
  TranslateOutput = Union[Optional[str], List[Optional[str]]]
  
  
  @runtime_checkable
  class TranslationBackendProtocol(Protocol):
      """Shared protocol implemented by translation backends."""
  
      model: str
  
      @property
      def supports_batch(self) -> bool:
          ...
  
      def translate(
          self,
          text: TranslateInput,
          target_lang: str,
          source_lang: Optional[str] = None,
          context: Optional[str] = None,
          prompt: Optional[str] = None,
      ) -> TranslateOutput:
          ...