A reference implementation for learning and building AI evaluation systems.
π Start the AI Evaluation Series β’ π» GitHub Releases β’ π Report an Issue
Wayfinder is a reference implementation for building and understanding AI evaluation systems.
It evolves a single AI-powered flight search application through rule-based evaluation, human evaluation, LLM-as-a-Judge, online evaluation, and experiment comparison.
The repository was built alongside the AI Engineering Fundamentals β AI Evaluation article series, with each stage introducing the next layer of the evaluation system.
Software Tests vs AI Evals
β
Evaluation Fundamentals
β
Rule-Based Evaluation
β
Human Evaluation
β
LLM-as-a-Judge
β
Online Evaluation
β
Evaluation Experiments
Each stage builds on the same Wayfinder application, showing how an evaluation system can evolve as an AI application moves from development toward production.
Building an AI application is only the beginning.
The real engineering challenge is answering questions like:
- Is my AI application improving?
- Did my latest change introduce regressions?
- How do I evaluate subjective qualities like helpfulness or groundedness?
- How can I scale evaluations beyond manual review?
- How do I confidently ship AI applications to production?
Wayfinder explores these questions through practical implementations of modern AI evaluation techniques.
- AI-powered flight search reference application
- Rule-Based Evaluation
- Human Evaluation
- LLM-as-a-Judge
- Online Evaluation
- Real user interaction tracing and explicit feedback
- Reference-free evaluation of production interactions
- Evaluation datasets and scoring rubrics
- LangSmith tracing and evaluation integration
- Evaluation experiment comparison
- Target and regression-guard evaluation cases
- Repeated evaluation runs
src/
βββ wayfinder/
βββ agent/
βββ evaluators/
βββ models/
βββ services/
βββ tools/
examples/
βββ wayfinder_cli.py
βββ rule_based_evaluation/
βββ human_evaluation/
βββ llm_judge_evaluation/
βββ online_evaluation/
βββ experiment_comparison/
- Python 3.12+
- uv
Clone the repository:
git clone https://github.com/DivakarUngatla/wayfinder.git
cd wayfinderInstall dependencies:
uv syncCopy the example environment file.
cp .env.example .envThe interactive Wayfinder assistant and Human Evaluation examples use OpenAI models.
Create an API key:
https://platform.openai.com/api-keys
Then update your .env file.
OPENAI_API_KEY=your_api_key
Note
OpenAI is only required for examples that generate AI responses.
LangSmith is required for interaction tracing and the LangSmith-based evaluation examples, including Online Evaluation and Experiment Comparison.
Create an account and API key:
https://docs.langchain.com/langsmith/create-account-api-key
Then update your .env file.
LANGSMITH_API_KEY=your_api_key
LANGSMITH_PROJECT=wayfinder
uv run python examples/wayfinder_cli.pyInteract with the AI assistant directly from your terminal.
uv run python examples/human_evaluation/generate_responses.pyThis generates representative evaluation samples containing:
- User query
- Expected behavior
- Assistant response
- Retrieved tool outputs
These samples can then be reviewed using the Human Evaluation workflow.
uv run python examples/rule_based_evaluation/local_evaluation.pyuv run python examples/rule_based_evaluation/langsmith_evaluation.pyuv run python examples/llm_judge_evaluation/local_evaluation.pyuv run python examples/llm_judge_evaluation/langsmith_evaluation.pyFirst, interact with Wayfinder to generate traced user interactions:
uv run python examples/wayfinder_cli.pyThen run the online evaluator:
uv run python examples/online_evaluation/evaluate_recent_runs.pyThe evaluator processes recent Wayfinder interactions captured in LangSmith and attaches automated quality scores and explanations back to each trace.
Explicit user feedback collected through the CLI is also attached to the corresponding LangSmith trace.
Run the focused experiment-comparison dataset against the current version of Wayfinder:
uv run python examples/experiment_comparison/compare_experiments.py \
--dataset-name wayfinder_experiment_comparison \
--prefix wayfinder-experiment \
--repetitions 5The runner evaluates the same examples repeatedly and records the results as a LangSmith experiment. Run it against different application versions to compare behavior using the same dataset and evaluator.
Wayfinder was built alongside the AI Engineering Fundamentals β AI Evaluation article series.
Each article introduces an AI evaluation concept, while this repository provides the runnable implementation.
- β Part 3 β Rule-Based Evaluation
- β Part 4 β Human Evaluation
- β Part 5 β LLM-as-a-Judge
- β Part 6 β Online Evaluation
- β Part 7 β Comparing Evaluation Experiments
Each GitHub release captures a reproducible milestone in Wayfinder's evolution.
Earlier releases correspond to the implementation developed in each article. For Part 7, v0.6.0 provides the baseline used for the experiment comparison, while main contains the completed candidate implementation.
| Milestone | Release |
|---|---|
| Basic Flight Search | v0.1.0 |
| Rule-Based Evaluation | v0.2.2 |
| Human Evaluation | v0.3.0 |
| LLM-as-a-Judge | v0.4.0 |
| Online Evaluation | v0.5.0 |
| Experiment Comparison | v0.6.0 |
Contributions, ideas, bug reports, and suggestions are always welcome.
If you'd like to improve Wayfinder or discuss AI evaluation techniques, feel free to open an issue or submit a pull request.
This project is licensed under the MIT License.