PromptGuru / promptguru /engine.py
GenAIDevTOProd's picture
Upload folder using huggingface_hub
bccc7f1 verified
# 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)