from __future__ import annotations from models.model_catalog import ModelInfo class PlaceholderModelService: """Deterministic scaffold service used until a real backend is configured.""" def __init__(self, model: ModelInfo) -> None: self.model = model def chat(self, system_prompt: str, user_prompt: str) -> str: return ( f"[Placeholder response from {self.model.display_name}]\n\n" "Real inference is not wired yet. Configure Ollama, llama.cpp, Transformers, " "or SGLang before using this as a hackathon demo.\n\n" f"System prompt: {system_prompt or '(none)'}\n" f"User prompt: {user_prompt}" ) def vision_chat(self, has_image: bool, prompt: str, image=None) -> str: del image image_state = "an uploaded image" if has_image else "no image" return ( f"[Placeholder vision response from {self.model.display_name}]\n\n" f"I received {image_state}. Real MiniCPM-V inference is not wired yet.\n\n" f"Prompt: {prompt}" )