You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Multi-model comparison (--model repeated):
- gd-eval run --model gpt-5.2 --model gpt-4o evaluates the full dataset
against each model sequentially and prints a side-by-side comparison table
with winner. --model accepts provider/model syntax to disambiguate
(e.g. --model Foundry4o/gpt-5.2 or --model HN_Anthropic/claude-opus-4-7).
- --provider flag removed — superseded by provider/model syntax; ambiguous-model
error now suggests the syntax directly.
- Workspace original active model restored in finally block after all models run.
- JSON report always uses nested {models, runs, comparison} shape.
- Langfuse: one named dataset run per model (gd-eval-{ts}-{model_id}).
New command: gd-eval models
- Lists all LLM providers and their models with provider ID, family, and
active marker. Marks the workspace's currently active model when --workspace given.
Provider type labelling:
- Always fetches model family live via list_llm_provider_models_by_id() —
automatically correct for new families without code changes.
- Combines gateway + family: OPENAI→family only, AWS_BEDROCK→BEDROCK/family,
AZURE_FOUNDRY→AZURE/family (e.g. BEDROCK/ANTHROPIC, AZURE/OPENAI).
- Model and provider_type in Langfuse trace metadata, tags, and
dataset-run-item runDescription + metadata.
EvalReport gains provider_name and provider_type; comparison table shows
provider/model to distinguish runs with the same model id across providers.
111 tests, ruff + ty clean.
JIRA: GDAI-1831
Risk: low — new isolated features; no changes to existing packages.
|`--token TOKEN`|`GOODDATA_TOKEN`| API token. Pass via flag or env var. |
36
-
|`--profile NAME`| — | Profile name in `~/.gooddata/profiles.yaml` (same file as the `gdc` CLI). Provides host + token when both flags are omitted. |
73
+
|`--profile NAME`| — | Profile name in `~/.gooddata/profiles.yaml` (same file as the `gdc` CLI). |
37
74
|`--workspace ID`| — |**Required.** Workspace id to evaluate against. |
38
75
39
-
### Dataset source (pick one)
76
+
####Dataset source (pick one)
40
77
41
78
| Flag | Description |
42
79
|---|---|
43
-
|`--dataset PATH`|Path to a flat folder of JSON files — one question per file. |
44
-
|`--langfuse-dataset NAME`| Pull dataset items by name from Langfuse. Requires `LANGFUSE_PUBLIC_KEY`, `LANGFUSE_SECRET_KEY`, `LANGFUSE_HOST` env vars. |
80
+
|`--dataset PATH`|Flat folder of JSON files — one question per file. |
81
+
|`--langfuse-dataset NAME`| Pull items by name from a Langfuse dataset. Requires `LANGFUSE_PUBLIC_KEY`, `LANGFUSE_SECRET_KEY`, `LANGFUSE_HOST`. |
45
82
46
-
### Model selection
83
+
####Model selection
47
84
48
85
| Flag | Description |
49
86
|---|---|
50
-
|`--model ID`| LLM model id to evaluate (e.g. `gpt-5.2`). Defaults to the workspace's currently active model. If the model is offered by a different provider than the active one, the workspace's active provider is switched automatically. |
51
-
|`--provider NAME_OR_ID`| LLM provider name or id. Use when `--model` is offered by multiple providers and you need to pick one. Accepts either the human-readable provider name or its UUID id. |
87
+
|`--model MODEL`| Model id to evaluate. Repeat to compare multiple models. Accepts `provider/model` syntax to disambiguate when a model is offered by multiple providers (e.g. `--model "Foundry4o/gpt-5.2"`). Defaults to the workspace's current active model. |
52
88
53
-
### Evaluation
89
+
####Evaluation
54
90
55
91
| Flag | Default | Description |
56
92
|---|---|---|
57
-
|`--runs K`|`2`|Number of independent conversation runs per item (pass@K). An item passes if any run passes. |
93
+
|`--runs K`|`2`|Independent runs per item (pass@K). An item passes if any run passes. |
58
94
59
-
### Output
95
+
####Output
60
96
61
97
| Flag | Description |
62
98
|---|---|
63
-
|`--json PATH`| Write a machine-readable JSON report (keyed by item id, with per-item scores) to this path. Console summary is always printed. |
64
-
|`--quiet`| Suppress per-item progress output. Only the final table and summary are printed. |
99
+
|`--json PATH`| Write a JSON report to this path. Always uses the nested `{models, runs, comparison}` shape even for a single model. |
100
+
|`--quiet`| Suppress per-item progress. Per-model result tables and the comparison summary are still printed. |
65
101
66
-
### Langfuse sink
102
+
####Langfuse sink
67
103
68
104
| Flag | Description |
69
105
|---|---|
70
-
|`--langfuse`| Log evaluation results to Langfuse after each item. Requires `--langfuse-dataset` (so item ids can be linked to Langfuse dataset items). Creates a named experiment run (`gd-eval-{timestamp}-{model}`) in the Langfuse dataset. Requires `LANGFUSE_PUBLIC_KEY`, `LANGFUSE_SECRET_KEY`, `LANGFUSE_HOST`. |
106
+
|`--langfuse`| Log scores and traces to Langfuse after each item. Requires `--langfuse-dataset`. Creates one named experiment run per model (`gd-eval-{timestamp}-{model}`). Requires `LANGFUSE_PUBLIC_KEY`, `LANGFUSE_SECRET_KEY`, `LANGFUSE_HOST`. |
107
+
108
+
### JSON report shape
109
+
110
+
The JSON report always uses the nested multi-model shape:
0 commit comments