A reference implementation for learning and building AI evaluation systems.
π AI Engineering Fundamentals β’ π» GitHub Releases β’ π Report an Issue
Wayfinder is the companion repository for the AI Engineering Fundamentals article series.
Instead of introducing isolated evaluation techniques, Wayfinder incrementally builds a complete AI evaluation platformβfrom simple rule-based evaluators to production-ready evaluation pipelines.
An AI-powered flight search assistant serves as the example application, allowing every evaluation technique to be demonstrated using real-world scenarios.
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 answers these questions by implementing modern AI evaluation techniques one milestone at a time.
Current capabilities include:
- AI-powered flight search assistant
- Interactive command-line chat interface
- Rule-Based Evaluation
- Human Evaluation workflow
- LLM-as-a-Judge evaluation pipeline
- Online Evaluation pipeline
- Real user interaction tracing
- Explicit user feedback collection
- Reference-free online LLM judge
- Background evaluation of captured interactions
- Evaluation criteria and scoring rubrics
- Structured judge outputs
- Representative evaluation datasets
- Local evaluation examples
- LangSmith integration
src/
βββ wayfinder/
βββ agent/
βββ evaluators/
βββ models/
βββ services/
βββ tools/
examples/
βββ wayfinder_cli.py
βββ rule_based_evaluation/
βββ human_evaluation/
βββ llm_judge_evaluation/
βββ online_evaluation/
docs/
- 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.
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.
Wayfinder evolves alongside the AI Engineering Fundamentals article series.
Each article introduces one AI evaluation concept, while this repository provides the complete 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 corresponds to a milestone in the AI Engineering Fundamentals series.
Checking out a release allows you to reproduce the exact implementation used throughout that article.
| 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 |
Additional documentation is available in the docs/ directory.
- Architecture
- Design Decisions
- Coding Principles
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.