Lab: Prompt Templates
Build type-safe prompt templates with variable substitution.
Objectives
- Create reusable templates
- Implement variable validation
- Build a prompt library
Demo Code
See demos/course4/week2/prompt-engineering/
Lab Exercise
See labs/course4/week2/lab_2_6_prompt_templates.py
Key Implementation
#![allow(unused)] fn main() { pub struct PromptTemplate { template: String, variables: Vec<String>, } impl PromptTemplate { pub fn render(&self, vars: &HashMap<String, String>) -> Result<String, PromptError> { let mut result = self.template.clone(); for var in &self.variables { let value = vars.get(var) .ok_or(PromptError::MissingVariable(var.clone()))?; result = result.replace(&format!("{{{}}}", var), value); } Ok(result) } } }