| | from typing import Sequence |
| |
|
| | from PIL import Image |
| |
|
| | from services.progress import ProgressCallback, call_progress |
| | from services.registry import register_service |
| | from services.text.TextGenerationResult import TextGenerationResult |
| | from services.text.TextGenerator import TextGenerator |
| |
|
| |
|
| | @register_service |
| | class DummyTextGenerator(TextGenerator): |
| | """Dummy text generator that simply echoes the prompt.""" |
| | service_id = "dummy_text" |
| |
|
| | @classmethod |
| | def default_model_name(cls) -> str: |
| | return "echo" |
| |
|
| | def close(self) -> None: |
| | return |
| |
|
| | def generate( |
| | self, |
| | prompt: str, |
| | images: Sequence[Image.Image] | None = None, |
| | *, |
| | progress: ProgressCallback | None = None, |
| | ) -> TextGenerationResult: |
| | call_progress(progress, 0.1, "Starting dummy text generation") |
| |
|
| | images = images or [] |
| | image_info = "" |
| | if images: |
| | image_info = f" (with {len(images)} image inputs)" |
| |
|
| | call_progress(progress, 0.6, "Building dummy text response") |
| |
|
| | text = f"[dummy-text]{image_info}: {prompt}" |
| |
|
| | call_progress(progress, 0.95, "Preparing dummy text result") |
| |
|
| | return TextGenerationResult( |
| | provider="dummy", |
| | model=self.model_name, |
| | text=text, |
| | raw_response=None, |
| | ) |
| |
|