Single-Label Classification
Spam Detection
Let’s start with a simple spam classifier that categorizes messages as SPAM or NOT_SPAM.Define the Schema
First, define an enum for your classification labels:spam_classifier.baml
Create the Classification Function
spam_classifier.baml
{{ ctx.output_format }} macro automatically injects instructions for the LLM to return valid enum values.
Test Your Classifier
spam_classifier.baml
Usage in Code
- Python
- TypeScript
Support Ticket Classification
Here’s a more sophisticated example that classifies support tickets into categories:ticket_classifier.baml
Multi-Label Classification
For cases where an item can belong to multiple categories simultaneously, use arrays:multi_label.baml
Multi-Label Test Cases
multi_label.baml
Usage in Code
- Python
- TypeScript
Best Practices
1. Use Descriptive Enum Values
2. Add Context to Complex Classifications
3. Test Edge Cases
Advanced: Classification with Confidence Scores
- Python
- TypeScript
Next Steps
- Learn about Data Extraction for more complex structured outputs
- Explore Tool Calling to combine classification with actions
- Check out Prompt Engineering Tips for better accuracy