| | from abc import ABC, abstractmethod |
| | from typing import Sequence |
| |
|
| | from PIL import Image |
| |
|
| | from services.progress import ProgressCallback |
| | from services.services import TaskType, GenerationService |
| | from services.text.TextGenerationResult import TextGenerationResult |
| |
|
| |
|
| | class TextGenerator(GenerationService, ABC): |
| | """Base class for text generation backends.""" |
| |
|
| | task_type = TaskType.TEXT |
| |
|
| | @abstractmethod |
| | def generate( |
| | self, |
| | prompt: str, |
| | images: Sequence[Image.Image] | None = None, |
| | *, |
| | progress: ProgressCallback | None = None, |
| | ) -> TextGenerationResult: |
| | """Generate text from a prompt and optional images.""" |
| | raise NotImplementedError |
| |
|