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, )