class SupportBotLLM(CustomLLM): @property def metadata(self) -> LLMMetadata: return LLMMetadata( context_window=2048, num_output=64, model_name="support-bot-llm", ) def answer_from_prompt(self, prompt: str) -> str: prompt_text = prompt.lower() has_owner = "ticket 7421 belongs to maya" in prompt_text has_queue = "docs-review queue" in prompt_text if has_owner and has_queue: return "owner=Maya; escalation=docs-review" return "missing ticket owner or escalation queue" @llm_completion_callback() def complete(self, prompt: str, formatted: bool = False, **kwargs): return CompletionResponse(text=self.answer_from_prompt(prompt)) @llm_completion_callback() def stream_complete(self, prompt: str, formatted: bool = False, **kwargs): text = self.answer_from_prompt(prompt) for token in text.split(): yield CompletionResponse(text=text, delta=f"{token} ")