Spaces:
Running
Running
| # promptguru/engine.py | |
| from pathlib import Path | |
| import yaml | |
| def load_template(model_type: str) -> dict: | |
| """Load a YAML template file for a given model type (e.g., 'mistral', 'bert').""" | |
| model_type = model_type.lower() | |
| template_path = Path(__file__).parent / "templates" / f"{model_type}.yaml" | |
| if not template_path.exists(): | |
| raise FileNotFoundError(f"Template file not found for model: {model_type}") | |
| with open(template_path, "r", encoding="utf-8") as f: | |
| return yaml.safe_load(f) | |
| class PromptEngine: | |
| """Minimal prompt templating engine. | |
| Usage: | |
| engine = PromptEngine(model_type="mistral", mode="eli5") | |
| prompt = engine.generate_prompt("Explain quantum entanglement") | |
| """ | |
| def __init__(self, model_type: str, mode: str): | |
| self.model_type = model_type.lower() | |
| self.mode = mode.lower() | |
| self._template_dict = load_template(self.model_type) | |
| def generate_prompt(self, user_input: str) -> str: | |
| """Render a template with the given input text.""" | |
| if self.mode not in self._template_dict: | |
| raise ValueError(f"Mode '{self.mode}' not found in {self.model_type}.yaml") | |
| template = self._template_dict[self.mode] | |
| return template.replace("{{input}}", user_input) | |