Complete guide for evaluating Bedrock models for workflow generation.
from evaluation.prepare_dataset import add_test_case
# Add your Rick Astley example
add_test_case("rick_astley_session.json", "complex", "youtube_rick_astley")
# Add more test cases
add_test_case("simple_click.json", "simple", "single_click")
add_test_case("search_form.json", "medium", "search_and_click")python -m evaluation.run_complete_evaluationThis will:
- Prepare your dataset
- Evaluate all 3 models (Nova Pro, Nova Lite, Claude Sonnet)
- Generate comparison reports and charts
Check evaluation/results/analysis/ for:
model_comparison.xlsx- Side-by-side comparisonscore_comparison.png- Quality scores chartcost_performance.png- Cost vs quality scatter plotdecision_report.txt- Recommendation with rationale
Place your session JSON files in:
evaluation/test_cases/simple/- Simple workflowsevaluation/test_cases/medium/- Medium complexityevaluation/test_cases/complex/- Complex workflows
Or use the helper:
from evaluation.prepare_dataset import add_test_case
add_test_case("path/to/session.json", "category", "unique_name")# Run everything
python -m evaluation.run_complete_evaluation
# Or run individually:
python -m evaluation.run_fmeval # Evaluate models
python -m evaluation.analyze_results # Analyze resultsOpen the Excel files and view charts in evaluation/results/analysis/
The evaluation measures:
-
Selector Accuracy (30% weight)
- Keyboard actions have
selector: null - Mouse actions have proper selectors
- Keyboard actions have
-
DRAG Parameters (15% weight)
- DRAG actions include
end_xandend_y
- DRAG actions include
-
Element Extraction (25% weight)
- Element names used when available
-
Key Format (15% weight)
- Keys don't have "Key." prefix
-
Action Grouping (15% weight)
- Sequential typing is grouped properly
Edit evaluation/config.py to:
- Change models to evaluate
- Adjust quality thresholds
- Update pricing information
No test cases found?
- Add test cases using
add_test_case()
Model access denied?
- Enable models in AWS Bedrock console → Model access
Results look wrong?
- Check
evaluation/results/*.jsonfor raw data - Verify test cases are valid
Use these outputs:
model_comparison.xlsx- Show in slidescore_comparison.png- Visual comparisoncost_performance.png- Cost-benefit analysisdecision_report.txt- Justification for model choice
---
## ✅ **ALL FILES CREATED!**
You now have a complete evaluation system:
evaluation/ ├── config.py # Configuration ├── custom_metrics.py # Workflow quality metrics ├── prepare_dataset.py # Dataset preparation ├── run_fmeval.py # Model evaluation ├── analyze_results.py # Results analysis ├── run_complete_evaluation.py # Main pipeline ├── README.md # Usage guide ├── test_cases/ # Your test sessions │ ├── simple/ │ ├── medium/ │ └── complex/ ├── ground_truth/ # Expected outputs └── results/ # Evaluation outputs └── analysis/ # Charts & reports