New to Kestra?
Use blueprints to kickstart your first workflows.
Evaluate LLM responses against a golden dataset, calculate correctness, relevance, and groundedness scores, and detect regressions with Kestra.
Build a reusable evaluation pipeline for Large Language Model applications. This blueprint runs a model against a configurable golden dataset, evaluates every response using LLM-as-a-Judge, aggregates quality metrics, and detects regressions against a configurable baseline.
daily_evaluation schedule trigger is disabled by default and can be enabled for recurring evaluations.evaluate_dataset loop processes every item in the golden dataset with configurable concurrency.generate_answer task sends each question to the configured LLM through the OpenAI-compatible Groq endpoint.judge task evaluates each response for correctness, relevance, and groundedness using structured JSON output.aggregate_scores task calculates average scores across the complete evaluation dataset.calculate_quality task calculates a single overall quality score from the three evaluation dimensions.quality_threshold_failure task fails the execution when the overall score is below the required quality threshold.regression_failure task detects quality degradation relative to the configured baseline and tolerance.LLM applications can change behavior when models, prompts, providers, or application code change. Manual testing does not scale well for repeated evaluations.
Kestra provides declarative orchestration, concurrency, scheduling, structured outputs, execution history, failure handling, and reusable workflow configuration in a single YAML definition.
GROQ_API_KEY Kestra secret.SLACK_WEBHOOK secret if Slack notifications are enabled.GROQ_API_KEY secret in your Kestra namespace.golden_dataset input and replace the examples with your own evaluation cases.model_name, quality_threshold, baseline_score, and regression_tolerance as required.daily_evaluation trigger when recurring evaluation is required.SLACK_WEBHOOK and remove disabled: true from the Slack notification task and error handler if Slack alerts are desired.