A reference implementation for learning and building AI evaluation systems.
3
stars
23
commits
Python
primary language
Sep 6, 2026
updated
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:
Wayfinder explores these questions through practical implementations of modern AI evaluation techniques.
src/
βββ wayfinder/
βββ agent/
βββ evaluators/
βββ models/
βββ services/
βββ tools/
examples/
βββ wayfinder_cli.py
βββ rule_based_evaluation/
βββ human_evaluation/
βββ llm_judge_evaluation/
βββ online_evaluation/
βββ experiment_comparison/
Clone the repository:
git clone https://github.com/DivakarUngatla/wayfinder.git
cd wayfinder
Install dependencies:
uv sync
Copy the example environment file.
cp .env.example .env
The 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.py
Interact with the AI assistant directly from your terminal.
uv run python examples/human_evaluation/generate_responses.py
This generates representative evaluation samples containing:
These samples can then be reviewed using the Human Evaluation workflow.
uv run python examples/rule_based_evaluation/local_evaluation.py
uv run python examples/rule_based_evaluation/langsmith_evaluation.py
uv run python examples/llm_judge_evaluation/local_evaluation.py
uv run python examples/llm_judge_evaluation/langsmith_evaluation.py
First, interact with Wayfinder to generate traced user interactions:
uv run python examples/wayfinder_cli.py
Then run the online evaluator:
uv run python examples/online_evaluation/evaluate_recent_runs.py
The 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 5
The 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.
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.
23 commits
Python
98.4%
Makefile
1.6%
A reference implementation for learning and building AI evaluation systems.
3
stars
23
commits
Python
primary language
Sep 6, 2026
updated
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:
Wayfinder explores these questions through practical implementations of modern AI evaluation techniques.
src/
βββ wayfinder/
βββ agent/
βββ evaluators/
βββ models/
βββ services/
βββ tools/
examples/
βββ wayfinder_cli.py
βββ rule_based_evaluation/
βββ human_evaluation/
βββ llm_judge_evaluation/
βββ online_evaluation/
βββ experiment_comparison/
Clone the repository:
git clone https://github.com/DivakarUngatla/wayfinder.git
cd wayfinder
Install dependencies:
uv sync
Copy the example environment file.
cp .env.example .env
The 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.py
Interact with the AI assistant directly from your terminal.
uv run python examples/human_evaluation/generate_responses.py
This generates representative evaluation samples containing:
These samples can then be reviewed using the Human Evaluation workflow.
uv run python examples/rule_based_evaluation/local_evaluation.py
uv run python examples/rule_based_evaluation/langsmith_evaluation.py
uv run python examples/llm_judge_evaluation/local_evaluation.py
uv run python examples/llm_judge_evaluation/langsmith_evaluation.py
First, interact with Wayfinder to generate traced user interactions:
uv run python examples/wayfinder_cli.py
Then run the online evaluator:
uv run python examples/online_evaluation/evaluate_recent_runs.py
The 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 5
The 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.
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.
23 commits
Python
98.4%
Makefile
1.6%