A prompt template is a reusable prompt structure with variable placeholders — instead of writing a fresh prompt by hand for every request, the application fills in a fixed, tested structure.
A Basic Template
SUPPORT_SUMMARY_TEMPLATE = """
Summarize the following support ticket in 2 sentences:
the customer's core issue, and the current resolution status.
Ticket:
{ticket_text}
"""
# At request time:
prompt = SUPPORT_SUMMARY_TEMPLATE.format(ticket_text=actual_ticket)
The instruction wording is fixed and tested once; only the data (ticket_text) changes per request.
Why Templates Matter in Production
- Consistency — every request uses the exact same tested instruction wording, not a slightly different hand-written variant each time
- Testability — you can evaluate a template against many example inputs and know changes affect every use consistently
- Maintainability — improving the prompt means editing one template, not hunting down every place a similar prompt was hand-written
- Version control — templates can be tracked, reviewed, and rolled back like any other code
A Template With Multiple Variables and Conditional Sections
EMAIL_DRAFT_TEMPLATE = """
Write a {tone} email responding to this customer inquiry.
{context_section}
Customer message: {customer_message}
"""
context_section = f"Relevant order info: {order_details}" if order_details else ""
prompt = EMAIL_DRAFT_TEMPLATE.format(
tone="professional and empathetic",
context_section=context_section,
customer_message=message
)
Practical Use Case
Any application making the same kind of LLM call repeatedly with different data (summarization, classification, extraction, drafting) should use a template rather than constructing prompt strings ad hoc throughout the codebase — this is standard practice, not an advanced technique.
Common Mistakes
- Hand-writing similar-but-slightly-different prompts scattered across a codebase instead of a single tested, reusable template — makes systematic improvement and evaluation much harder
- Not validating that user-supplied variables inserted into a template are properly handled — see Prompt Injection for the security angle of unsanitized inputs in templates
Interview Relevance
"Why use prompt templates instead of writing prompts inline in application code?" — consistency, testability, and maintainability are the core reasons, the same reasons you wouldn't hardcode SQL queries as raw strings scattered throughout an app.
Practice Question
Design a prompt template (with named variables) for generating a personalized product recommendation email, given a customer's name, past purchase category, and a recommended product.