eval

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 16, 2026 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package eval provides a small evaluation harness for measuring retrieval quality (Hit@K, MRR, etc).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Case

type Case struct {
	// ID — стабильный идентификатор кейса (опционально).
	ID string
	// Question — текст вопроса, который будет отправлен в retrieval.
	Question string
	// ExpectedParentIDs — множество “правильных” parent IDs, по которым оценивается hit@k и rank.
	ExpectedParentIDs []string
	// TopK — topK для retrieval в рамках кейса; 0 означает использование дефолта harness.
	TopK int
}

Case описывает один eval-кейс для оценки retrieval.

type CaseResult

type CaseResult struct {
	CaseID string

	// Found — попадание хотя бы одного ExpectedParentIDs в topK.
	Found bool
	// Rank — 1..K для первого попадания; 0 если не найдено.
	Rank int

	// RetrievedParentIDs — parentIDs в порядке ранжирования (для дебага).
	RetrievedParentIDs []string

	// @sk-task T1.2: Добавить поле NDCG для per-case оценки ранжирования (AC-004)
	NDCG float64
	// @sk-task T1.2: Добавить поле Precision для per-case оценки точности (AC-004)
	Precision float64
	// @sk-task T1.2: Добавить поле Recall для per-case оценки полноты (AC-004)
	Recall float64
}

CaseResult — подробный результат прогона одного кейса.

type Metrics

type Metrics struct {
	TotalCases int
	HitAtK     float64
	MRR        float64
	// @sk-task T1.1: Добавить поле NDCG для оценки ранжирования с учётом релевантности (AC-001)
	NDCG float64
	// @sk-task T1.1: Добавить поле Precision для оценки точности поиска (AC-002)
	Precision float64
	// @sk-task T1.1: Добавить поле Recall для оценки полноты поиска (AC-002)
	Recall float64
}

Metrics — агрегированные метрики eval-прогона.

type Options

type Options struct {
	// DefaultTopK — topK по умолчанию, если в кейсе TopK=0.
	// Если 0, используется 5.
	DefaultTopK int
	// @sk-task T2.3: Добавить флаг EnableNDCG для включения вычисления NDCG (AC-003)
	EnableNDCG bool
	// @sk-task T2.3: Добавить флаг EnablePrecision для включения вычисления Precision (AC-003)
	EnablePrecision bool
	// @sk-task T2.3: Добавить флаг EnableRecall для включения вычисления Recall (AC-003)
	EnableRecall bool
}

Options задаёт параметры запуска harness.

type Report

type Report struct {
	Metrics Metrics
	Cases   []CaseResult
}

Report — агрегированный отчёт по датасету.

func Run

func Run(ctx context.Context, runner RetrievalRunner, cases []Case, opts Options) (Report, error)

Run прогоняет датасет кейсов и возвращает отчёт с базовыми retrieval-метриками.

func (Report) MarshalJSON

func (r Report) MarshalJSON() ([]byte, error)

MarshalJSON реализует сериализацию Report в JSON. @sk-task T2.4: MarshalJSON реализует сериализацию Report в JSON (AC-006)

type RetrievalRunner

type RetrievalRunner interface {
	Retrieve(ctx context.Context, question string, topK int) (draftrag.RetrievalResult, error)
}

RetrievalRunner — минимальный интерфейс для eval harness. Pipeline удовлетворяет этому интерфейсу напрямую.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL