Skip to content

Latest commit

 

History

History
104 lines (75 loc) · 3.01 KB

File metadata and controls

104 lines (75 loc) · 3.01 KB

Tutorial Examples

This directory contains Python script versions of the tutorial notebooks, suitable for running directly or studying the code.

Files

example.py

General introduction to Mellea with basic examples.

simple_email.py

Email generation example - the classic "Hello World" of Mellea.

instruct_validate_repair.py

Walkthrough of the instruct-validate-repair paradigm.

compositionality_with_generative_stubs.py

Tutorial on composing generative functions.

context_example.py

Working with contexts and context management.

document_mobject.py

Using document MObjects for text processing.

table_mobject.py

Working with table data structures.

model_options_example.py

Configuring model options and parameters.

sentiment_classifier.py

Building a sentiment classification system.

mcp_example.py

Model Context Protocol integration examples.

Relationship to Notebooks

Each file in this directory corresponds to a Jupyter notebook in notebooks/:

  • example.pyexample.ipynb
  • simple_email.pysimple_email.ipynb
  • instruct_validate_repair.pyinstruct_validate_repair.ipynb
  • etc.

Running the Examples

# Run any example directly
python docs/examples/tutorial/simple_email.py

# Or with uv
uv run docs/examples/tutorial/simple_email.py

Learning Path

Recommended order for learning Mellea:

  1. simple_email.py - Start here for basic concepts
  2. instruct_validate_repair.py - Core paradigm
  3. compositionality_with_generative_stubs.py - Building blocks
  4. context_example.py - Context management
  5. model_options_example.py - Configuration
  6. sentiment_classifier.py - Complete application
  7. document_mobject.py - Working with documents
  8. table_mobject.py - Working with structured data
  9. mcp_example.py - Advanced integration

Key Concepts Covered

  • Sessions: Creating and managing Mellea sessions
  • Instructions: Generating text with natural language instructions
  • Requirements: Constraining outputs with validation
  • Validation: Checking outputs against requirements
  • Repair: Automatically fixing invalid outputs
  • Generative Stubs: Type-safe LLM functions
  • Contexts: Managing conversation and generation history
  • Model Options: Configuring model behavior
  • MObjects: Working with structured data types

Differences from Notebooks

  • No Interactive Output: Scripts don't show intermediate results
  • Linear Execution: Runs from top to bottom
  • Easier to Version Control: Plain Python files
  • Better for CI/CD: Can be run in automated pipelines
  • Easier to Import: Can import functions from these files

Converting to Notebooks

To convert a script to a notebook:

# Install jupytext
uv pip install jupytext

# Convert
jupytext --to notebook docs/examples/tutorial/simple_email.py

Related Documentation

  • See notebooks/ for interactive Jupyter versions
  • See other example directories for specialized topics
  • See main README.md for getting started guide