Guardrails
~3 min read
Concept & How It Works
Why Does It Exist?
LLMs can generate harmful content, leak sensitive data, go off-topic, or be manipulated by users. Guardrails enforce business rules, safety policies, and quality standards — essential for customer-facing and enterprise AI applications.
Real-World Analogy
Guardrails are like bouncers and quality inspectors at a factory — bouncers check who's coming in (input validation), inspectors check what's going out (output filtering), and both enforce the house rules.
Visual Workflows
What is Guardrails?
Example
Scenario
A healthcare chatbot has guardrails that: block non-medical queries (input), redact patient names from responses (output), and refuse to provide diagnoses (system prompt + output filter).
Solution
In Security & Guardrails, apply Guardrails to this scenario: A healthcare chatbot has guardrails that: block non-medical queries (input), redact patient names from responses (output), and refuse to provide diagnoses (system prompt + output filter). Identify the inputs, run the technique, validate the output, and note one thing you would monitor in production.
Practice Task
Do this before moving to the next module — reading alone is not enough.
Open the Code Walkthrough below and run it locally. Change one parameter related to Guardrails (e.g. model, temperature, top_k, or tool name), observe the difference in output, and write 2–3 sentences explaining what changed.
Code Walkthrough
Highlighted lines show where Guardrails happens in the code.
1from openai import OpenAI # import dependencies2
3client = OpenAI() # create API client4
5def moderate_input(text: str) -> bool: # define a reusable function6 result = client.moderations.create(input=text) # call the API7 return not result.results[0].flagged # return the result8
9def check_output(response: str, allowed_topics: list[str]) -> str: # define a reusable function10 check = client.chat.completions.create( # call the API11 model="gpt-4o-mini",12 messages=[{13 "role": "user",14 "content": f"Is this response about {allowed_topics}? Reply yes/no.\n{response}",15 }],16 temperature=0,17 )18 if "no" in check.choices[0].message.content.lower():19 return "I can only help with topics related to our products." # return the result20 return response # return the resultCommands to Remember
Commands to Remember
pip install guardrails-ai # input/output validationpip install presidio-analyzer # PII detection
Common Mistakes
- Relying only on system prompts for safety (no hard guardrails)
- No input validation before sending to LLM
- Not logging blocked content for review
- Single guardrail layer — need defense in depth
Cheat Sheet
Quick recap — the most important points from this module.
Cheat Sheet
quick ref- •moderations.create() for toxicity
- •PII regex: email, phone, SSN
- •Input + output guardrails
- •Safe fallback responses
- •Layer fast checks first
- •Log all blocked content