Tasks and runs
Queries
GoldQuery stores a reference query and accepted result variants. PredQuery
stores an agent prediction. Both can carry an
ExecResult.
GoldQuery
Bases: BaseModel
A reference query and accepted result variants for benchmark evaluation.
id
class-attribute
instance-attribute
id: str = 'GQRY'
query
instance-attribute
query: str | None
In Spider2, some gold queries are not available, so we allow it to be None
parameter_names
class-attribute
instance-attribute
parameter_names: list[str] = Field(default_factory=list)
parameter_values
class-attribute
instance-attribute
parameter_values: dict[str, Any] = Field(
default_factory=dict
)
If parameter_names is not empty and parameter_values is empty, the query is parameterized.
required_columns
class-attribute
instance-attribute
required_columns: list[int] | None = None
Columns that must be present in the result, None means all columns must be present
required_sorted
class-attribute
instance-attribute
required_sorted: bool = False
True if row order matters
alternative_results
class-attribute
instance-attribute
alternative_results: list[ExecResult] = Field(
default_factory=list
)
Alternative correct results, used in spider2-snow
extra_info
class-attribute
instance-attribute
extra_info: dict[str, Any] = Field(default_factory=dict)
to_directory
to_directory(directory: str) -> None
to_markdown
to_markdown(heading_level: int = 2) -> str
PredQuery
Bases: BaseModel
A query predicted by a research agent, optionally with its execution result.
id
class-attribute
instance-attribute
id: str = 'PQRY'
query
instance-attribute
query: str
parameter_names
class-attribute
instance-attribute
parameter_names: list[str] = Field(default_factory=list)
parameter_values
class-attribute
instance-attribute
parameter_values: dict[str, Any] = Field(
default_factory=dict
)
to_directory
to_directory(directory: str) -> None
to_markdown
to_markdown(heading_level: int = 2) -> str
Simple tasks
SimpleNL2QTask
Bases: BaseModel
An unambiguous natural-language-to-query benchmark task.
task_type
class-attribute
instance-attribute
task_type: Literal['simple'] = 'simple'
qid
instance-attribute
qid: str
db
instance-attribute
db: str
question
instance-attribute
question: str
question_instructions
class-attribute
instance-attribute
question_instructions: str | None = None
Instructions that apply to this question only.
dataset_instructions
class-attribute
instance-attribute
dataset_instructions: str | None = None
Instructions (e.g. for formatting) that apply to all questions in the dataset.
document
class-attribute
instance-attribute
document: str | None = None
extra_info
class-attribute
instance-attribute
extra_info: dict[str, Any] = Field(default_factory=dict)
to_directory
to_directory(directory: str) -> None
to_markdown
to_markdown(heading_level: int = 1) -> str
SimpleNL2QTaskOutput
Bases: SimpleNL2QTask
Prediction and run metadata for a simple task.
output_type
class-attribute
instance-attribute
output_type: Literal['simple'] = 'simple'
trajectory
class-attribute
instance-attribute
trajectory: Trajectory | list[Trajectory] | None = None
inference_metrics
class-attribute
instance-attribute
inference_metrics: dict[str, Any] = Field(
default_factory=dict
)
Metrics produced during agent prediction, e.g. latency, API costs, etc.
eval_metrics
class-attribute
instance-attribute
eval_metrics: dict[str, Any] = Field(default_factory=dict)
Metrics produced during evaluation, e.g. accuracy, etc.
extra_pred_info
class-attribute
instance-attribute
extra_pred_info: ExtraPredInfo = Field(
default_factory=ExtraPredInfo
)
task_type
class-attribute
instance-attribute
task_type: Literal['simple'] = 'simple'
qid
instance-attribute
qid: str
db
instance-attribute
db: str
question
instance-attribute
question: str
question_instructions
class-attribute
instance-attribute
question_instructions: str | None = None
Instructions that apply to this question only.
dataset_instructions
class-attribute
instance-attribute
dataset_instructions: str | None = None
Instructions (e.g. for formatting) that apply to all questions in the dataset.
document
class-attribute
instance-attribute
document: str | None = None
extra_info
class-attribute
instance-attribute
extra_info: dict[str, Any] = Field(default_factory=dict)
to_directory
to_directory(directory: str) -> None
to_markdown
to_markdown(heading_level: int = 1) -> str
ExtraPredInfo
Bases: BaseModel
Optional intermediate artifacts produced while predicting a query.
raw_pred_query
class-attribute
instance-attribute
raw_pred_query: PredQuery | None = None
If your method includes a postprocessing step, this field can store the raw predicted query before postprocessing to analyze its impact. The raw_pred_*_ex metrics evaluate these raw predictions.
other
class-attribute
instance-attribute
other: dict[str, Any] = Field(default_factory=dict)
Ambiguous tasks
Ambiguous tasks specify interpretation choices or open-ended parameters. The three output families represent an intended query, a flat collection of interpretations, or explicitly structured ambiguity points.
AmbigNL2QTask
Bases: BaseModel
A benchmark task with explicit ambiguity points and resolution queries.
qid
instance-attribute
qid: str
task_type
class-attribute
instance-attribute
task_type: Literal['ambig'] = 'ambig'
has_intended_resolution
instance-attribute
has_intended_resolution: bool
db
instance-attribute
db: str
question
instance-attribute
question: str
dataset_instructions
class-attribute
instance-attribute
dataset_instructions: str | None = None
Instructions (e.g. for formatting) that apply to all questions in the dataset
gold_ambiguity_points
instance-attribute
gold_ambiguity_points: Annotated[
list[GoldAmbiguityPoint], AfterValidator(is_id_unique)
]
gold_queries
instance-attribute
gold_queries: Annotated[
list[GoldQuery], AfterValidator(is_id_unique)
]
gold_intended_query_id
instance-attribute
gold_intended_query_id: str | None
Ground-truth query intended by the user
extra_info
class-attribute
instance-attribute
extra_info: dict[str, Any] = Field(default_factory=dict)
gold_infinite_ambiguity_points
property
gold_infinite_ambiguity_points: list[
GoldAmbiguityPointInfinite
]
gold_num_interpretation_comb
property
gold_num_interpretation_comb: int
to_directory
to_directory(directory: str) -> None
to_markdown
to_markdown(heading_level: int = 1) -> str
SimpleAmbigNL2QTaskOutput
Bases: AmbigNL2QTask
An ambiguity-aware prediction containing only the resolved final query.
output_type
class-attribute
instance-attribute
output_type: Literal['ambig-simple'] = 'ambig-simple'
trajectory
class-attribute
instance-attribute
trajectory: Trajectory | list[Trajectory] | None = None
inference_metrics
class-attribute
instance-attribute
inference_metrics: dict[str, Any] = Field(
default_factory=dict
)
Metrics produced during agent prediction, e.g. latency, API costs, etc.
eval_metrics
class-attribute
instance-attribute
eval_metrics: dict[str, Any] = Field(default_factory=dict)
Metrics produced during evaluation, e.g. accuracy, etc.
extra_pred_info
class-attribute
instance-attribute
extra_pred_info: ExtraPredInfo = Field(
default_factory=ExtraPredInfo
)
qid
instance-attribute
qid: str
task_type
class-attribute
instance-attribute
task_type: Literal['ambig'] = 'ambig'
has_intended_resolution
instance-attribute
has_intended_resolution: bool
db
instance-attribute
db: str
question
instance-attribute
question: str
dataset_instructions
class-attribute
instance-attribute
dataset_instructions: str | None = None
Instructions (e.g. for formatting) that apply to all questions in the dataset
gold_ambiguity_points
instance-attribute
gold_ambiguity_points: Annotated[
list[GoldAmbiguityPoint], AfterValidator(is_id_unique)
]
gold_queries
instance-attribute
gold_queries: Annotated[
list[GoldQuery], AfterValidator(is_id_unique)
]
gold_intended_query_id
instance-attribute
gold_intended_query_id: str | None
Ground-truth query intended by the user
extra_info
class-attribute
instance-attribute
extra_info: dict[str, Any] = Field(default_factory=dict)
gold_infinite_ambiguity_points
property
gold_infinite_ambiguity_points: list[
GoldAmbiguityPointInfinite
]
gold_num_interpretation_comb
property
gold_num_interpretation_comb: int
to_directory
to_directory(directory: str) -> None
to_markdown
to_markdown(heading_level: int = 1) -> str
FlatAmbigNL2QTaskOutput
Bases: AmbigNL2QTask
Flat interpretations, their queries, and the resolved final query.
output_type
class-attribute
instance-attribute
output_type: Literal['ambig-flat'] = 'ambig-flat'
interpretations
instance-attribute
interpretations: list[str]
pred_queries
instance-attribute
pred_queries: Annotated[
list[PredQuery], AfterValidator(is_id_unique)
]
pred_intended_query_id
instance-attribute
pred_intended_query_id: str | None
trajectory
class-attribute
instance-attribute
trajectory: Trajectory | list[Trajectory] | None = None
inference_metrics
class-attribute
instance-attribute
inference_metrics: dict[str, Any] = Field(
default_factory=dict
)
Metrics produced during agent prediction, e.g. latency, API costs, etc.
eval_metrics
class-attribute
instance-attribute
eval_metrics: dict[str, Any] = Field(default_factory=dict)
Metrics produced during evaluation, e.g. accuracy, etc.
extra_pred_info
class-attribute
instance-attribute
extra_pred_info: ExtraPredInfo = Field(
default_factory=ExtraPredInfo
)
qid
instance-attribute
qid: str
task_type
class-attribute
instance-attribute
task_type: Literal['ambig'] = 'ambig'
has_intended_resolution
instance-attribute
has_intended_resolution: bool
db
instance-attribute
db: str
question
instance-attribute
question: str
dataset_instructions
class-attribute
instance-attribute
dataset_instructions: str | None = None
Instructions (e.g. for formatting) that apply to all questions in the dataset
gold_ambiguity_points
instance-attribute
gold_ambiguity_points: Annotated[
list[GoldAmbiguityPoint], AfterValidator(is_id_unique)
]
gold_queries
instance-attribute
gold_queries: Annotated[
list[GoldQuery], AfterValidator(is_id_unique)
]
gold_intended_query_id
instance-attribute
gold_intended_query_id: str | None
Ground-truth query intended by the user
extra_info
class-attribute
instance-attribute
extra_info: dict[str, Any] = Field(default_factory=dict)
gold_infinite_ambiguity_points
property
gold_infinite_ambiguity_points: list[
GoldAmbiguityPointInfinite
]
gold_num_interpretation_comb
property
gold_num_interpretation_comb: int
to_directory
to_directory(directory: str) -> None
to_markdown
to_markdown(heading_level: int = 1) -> str
StructuredAmbigNL2QTaskOutput
Bases: AmbigNL2QTask
Predicted ambiguity structure, interpretation queries, and final resolution.
output_type
class-attribute
instance-attribute
output_type: Literal["ambig-structured"] = (
"ambig-structured"
)
pred_ambiguity_points
instance-attribute
pred_ambiguity_points: Annotated[
list[PredAmbiguityPoint], AfterValidator(is_id_unique)
]
pred_queries
instance-attribute
pred_queries: Annotated[
list[PredQuery], AfterValidator(is_id_unique)
]
pred_intended_query_id
instance-attribute
pred_intended_query_id: str | None
trajectory
class-attribute
instance-attribute
trajectory: Trajectory | list[Trajectory] | None = None
inference_metrics
class-attribute
instance-attribute
inference_metrics: dict[str, Any] = Field(
default_factory=dict
)
Metrics produced during agent prediction, e.g. latency, API costs, etc.
eval_metrics
class-attribute
instance-attribute
eval_metrics: dict[str, Any] = Field(default_factory=dict)
Metrics produced during evaluation, e.g. accuracy, etc.
extra_pred_info
class-attribute
instance-attribute
extra_pred_info: ExtraPredInfo = Field(
default_factory=ExtraPredInfo
)
pred_infinite_ambiguity_points
property
pred_infinite_ambiguity_points: list[
PredAmbiguityPointInfinite
]
pred_num_interpretation_comb
property
pred_num_interpretation_comb: int
qid
instance-attribute
qid: str
task_type
class-attribute
instance-attribute
task_type: Literal['ambig'] = 'ambig'
has_intended_resolution
instance-attribute
has_intended_resolution: bool
db
instance-attribute
db: str
question
instance-attribute
question: str
dataset_instructions
class-attribute
instance-attribute
dataset_instructions: str | None = None
Instructions (e.g. for formatting) that apply to all questions in the dataset
gold_ambiguity_points
instance-attribute
gold_ambiguity_points: Annotated[
list[GoldAmbiguityPoint], AfterValidator(is_id_unique)
]
gold_queries
instance-attribute
gold_queries: Annotated[
list[GoldQuery], AfterValidator(is_id_unique)
]
gold_intended_query_id
instance-attribute
gold_intended_query_id: str | None
Ground-truth query intended by the user
extra_info
class-attribute
instance-attribute
extra_info: dict[str, Any] = Field(default_factory=dict)
gold_infinite_ambiguity_points
property
gold_infinite_ambiguity_points: list[
GoldAmbiguityPointInfinite
]
gold_num_interpretation_comb
property
gold_num_interpretation_comb: int
to_directory
to_directory(directory: str) -> None
to_markdown
to_markdown(heading_level: int = 1) -> str
ARCSAmbiguityType
Bases: str, Enum
ARCS ambiguity taxonomy labels.
semantic_column
class-attribute
instance-attribute
semantic_column = 'semantic_column'
semantic_table
class-attribute
instance-attribute
semantic_table = 'semantic_table'
semantic_value
class-attribute
instance-attribute
semantic_value = 'semantic_value'
semantic_computation
class-attribute
instance-attribute
semantic_computation = 'semantic_computation'
syntactic_column
class-attribute
instance-attribute
syntactic_column = 'syntactic_column'
syntactic_table
class-attribute
instance-attribute
syntactic_table = 'syntactic_table'
syntactic_value
class-attribute
instance-attribute
syntactic_value = 'syntactic_value'
syntactic_computation
class-attribute
instance-attribute
syntactic_computation = 'syntactic_computation'
GoldAmbiguityPointFinite
Bases: BaseModel
A finite ambiguity with an enumerated set of interpretations.
id
instance-attribute
id: Annotated[str, StringConstraints(pattern='^[A-Z]$')]
A, B, C, etc.
phrase
instance-attribute
phrase: str
type
class-attribute
instance-attribute
type: Literal['finite'] = 'finite'
interpretations
instance-attribute
interpretations: list[str]
intended_interpretation_idx
instance-attribute
intended_interpretation_idx: int | None
GoldAmbiguityPointInfinite
Bases: BaseModel
An open-ended ambiguity represented by a typed query parameter.
id
instance-attribute
id: Annotated[str, StringConstraints(pattern='^[A-Z]+$')]
A, B, C, etc.
phrase
instance-attribute
phrase: str
type
class-attribute
instance-attribute
type: Literal['infinite'] = 'infinite'
parameter_name
instance-attribute
parameter_name: str
parameter_dtype
instance-attribute
parameter_dtype: Literal['int', 'float', 'str']
parameter_sample_operators
instance-attribute
parameter_sample_operators: list[
Literal["<", ">", "<=", ">=", "=", "<>"]
]
parameter_sample_values
instance-attribute
parameter_sample_values: list[Any]
intended_parameter_operator
instance-attribute
intended_parameter_operator: Literal[
"<", ">", "<=", ">=", "=", "<>"
]
intended_parameter_value
instance-attribute
intended_parameter_value: Any | None
GoldAmbiguityPoint
module-attribute
GoldAmbiguityPoint = Annotated[
Union[
GoldAmbiguityPointFinite, GoldAmbiguityPointInfinite
],
Field(discriminator="type"),
]
PredAmbiguityPointFinite
Bases: BaseModel
A predicted finite ambiguity and its candidate interpretations.
id
instance-attribute
id: Annotated[str, StringConstraints(pattern='^[A-Z]+$')]
A, B, C, etc.
phrase
instance-attribute
phrase: str
type
class-attribute
instance-attribute
type: Literal['finite'] = 'finite'
interpretations
instance-attribute
interpretations: list[str]
intended_interpretation_idx
class-attribute
instance-attribute
intended_interpretation_idx: int | None = None
rejected_by_user
class-attribute
instance-attribute
rejected_by_user: bool = False
PredAmbiguityPointInfinite
Bases: BaseModel
A predicted open-ended ambiguity represented by a typed parameter.
id
instance-attribute
id: Annotated[str, StringConstraints(pattern='^[A-Z]+$')]
A, B, C, etc.
phrase
instance-attribute
phrase: str
type
class-attribute
instance-attribute
type: Literal['infinite'] = 'infinite'
parameter_name
instance-attribute
parameter_name: str
parameter_dtype
instance-attribute
parameter_dtype: Literal['int', 'float', 'str']
parameter_description
class-attribute
instance-attribute
parameter_description: str | None = None
parameter_sample_operators
instance-attribute
parameter_sample_operators: list[
Literal["<", ">", "<=", ">=", "=", "<>"]
]
parameter_sample_values
instance-attribute
parameter_sample_values: list[Any] | list[list[Any]]
intended_parameter_operator
class-attribute
instance-attribute
intended_parameter_operator: (
Literal["<", ">", "<=", ">=", "=", "<>"] | None
) = None
intended_parameter_value
class-attribute
instance-attribute
intended_parameter_value: Any | None = None
rejected_by_user
class-attribute
instance-attribute
rejected_by_user: bool = False
PredAmbiguityPoint
module-attribute
PredAmbiguityPoint = Annotated[
Union[
PredAmbiguityPointFinite, PredAmbiguityPointInfinite
],
Field(discriminator="type"),
]
dbt tasks
DbtTask
Bases: BaseModel
A dbt data-transformation task.
task_type
class-attribute
instance-attribute
task_type: Literal['dbt'] = 'dbt'
qid
instance-attribute
qid: str
db
instance-attribute
db: str
Instance ID (e.g. "zuora001"), maps to a DuckDB connector for the project's source database.
question
instance-attribute
question: str
Natural-language instruction describing the transformation to build.
question_instructions
class-attribute
instance-attribute
question_instructions: str | None = None
Instructions that apply to this question only.
dataset_instructions
class-attribute
instance-attribute
dataset_instructions: str | None = None
Instructions (e.g. for formatting) that apply to all questions in the dataset.
project_dir
instance-attribute
project_dir: str
Relative path to the original dbt project directory (e.g. "data/Spider2/spider2-dbt/examples/zuora001").
working_dir
class-attribute
instance-attribute
working_dir: str | None = None
Path to the loader-created working copy of the project (e.g. "runs/exp123/work/zuora001").
gold_db_path
class-attribute
instance-attribute
gold_db_path: str | None = None
Relative path to the gold .duckdb file for evaluation.
gold_tables
instance-attribute
gold_tables: list[DbtGoldTable]
Tables to compare in evaluation, from the evaluation spec.
extra_info
class-attribute
instance-attribute
extra_info: dict[str, Any] = Field(default_factory=dict)
to_directory
to_directory(directory: str) -> None
to_markdown
to_markdown(heading_level: int = 1) -> str
DbtTaskOutput
Bases: DbtTask
Output of a dbt agent.
output_type
class-attribute
instance-attribute
output_type: Literal['dbt'] = 'dbt'
pred_db_path
class-attribute
instance-attribute
pred_db_path: str | None = None
Path to the predicted DuckDB file produced by the agent (e.g. "runs/exp123/work/zuora001/zuora.duckdb").
pred_db_schema
class-attribute
instance-attribute
pred_db_schema: SQLSchema | None = None
Schema of the predicted database after dbt run, including any tables/views created by the agent.
pred_model_files
class-attribute
instance-attribute
pred_model_files: dict[str, str] = Field(
default_factory=dict
)
Maps path relative to working_dir (e.g. "models/my_model.sql") to file content.
dbt_run_success
class-attribute
instance-attribute
dbt_run_success: bool | None = None
dbt_run_log
class-attribute
instance-attribute
dbt_run_log: str | None = None
trajectory
class-attribute
instance-attribute
trajectory: Trajectory | list[Trajectory] | None = None
inference_metrics
class-attribute
instance-attribute
inference_metrics: dict[str, Any] = Field(
default_factory=dict
)
Metrics produced during agent prediction, e.g. latency, API costs, etc.
eval_metrics
class-attribute
instance-attribute
eval_metrics: dict[str, Any] = Field(default_factory=dict)
Metrics produced during evaluation.
extra_pred_info
class-attribute
instance-attribute
extra_pred_info: ExtraPredInfo = Field(
default_factory=ExtraPredInfo
)
Not used for dbt tasks. Present for compatibility with the NL2QTaskOutput union.
task_type
class-attribute
instance-attribute
task_type: Literal['dbt'] = 'dbt'
qid
instance-attribute
qid: str
db
instance-attribute
db: str
Instance ID (e.g. "zuora001"), maps to a DuckDB connector for the project's source database.
question
instance-attribute
question: str
Natural-language instruction describing the transformation to build.
question_instructions
class-attribute
instance-attribute
question_instructions: str | None = None
Instructions that apply to this question only.
dataset_instructions
class-attribute
instance-attribute
dataset_instructions: str | None = None
Instructions (e.g. for formatting) that apply to all questions in the dataset.
project_dir
instance-attribute
project_dir: str
Relative path to the original dbt project directory (e.g. "data/Spider2/spider2-dbt/examples/zuora001").
working_dir
class-attribute
instance-attribute
working_dir: str | None = None
Path to the loader-created working copy of the project (e.g. "runs/exp123/work/zuora001").
gold_db_path
class-attribute
instance-attribute
gold_db_path: str | None = None
Relative path to the gold .duckdb file for evaluation.
gold_tables
instance-attribute
gold_tables: list[DbtGoldTable]
Tables to compare in evaluation, from the evaluation spec.
extra_info
class-attribute
instance-attribute
extra_info: dict[str, Any] = Field(default_factory=dict)
to_directory
to_directory(directory: str) -> None
to_markdown
to_markdown(heading_level: int = 1) -> str
DbtGoldTable
Bases: BaseModel
An expected output table for dbt evaluation.
table_name
instance-attribute
table_name: str
required_columns
class-attribute
instance-attribute
required_columns: list[int] = Field(default_factory=list)
Column indices to compare. Empty means all columns.
required_sorted
class-attribute
instance-attribute
required_sorted: bool = False
True if row order matters.
Datasets and runs
NL2QDataset holds live connectors keyed by task database names. Close those
connectors when your program finishes. NL2QRunResult stores experiment data
and supports JSON serialization, directory reports, and CSV summaries.
to_directory(...) exports the current run, including available query-result
DataFrames as CSVs. Reusing a directory updates its reports.
total_usage records agent usage; total_user_simulator_usage records
clarification usage. aggregated_inference_metrics contains available inference
statistics, including task latency. These depend on fields returned by each
agent. Costs depend on available model pricing; missing usage does not mean
zero cost. Report preprocessing costs
separately.
Runs record task QIDs and agent configuration. For reproducibility, set the schema formatter explicitly, pin the TabulaFlow version, and record runtime settings separately. Reload matching tasks with the original database snapshot, paths, and credentials before continuing execution or evaluation.
NL2QDataset
Bases: BaseModel
A benchmark split with tasks and connectors keyed by database name.
name
instance-attribute
name: str
split
instance-attribute
split: str
databases
class-attribute
instance-attribute
databases: list[str] | None = None
subsample_size
class-attribute
instance-attribute
subsample_size: int | None = None
dataset_extra_kwargs
class-attribute
instance-attribute
dataset_extra_kwargs: dict[str, Any] = Field(
default_factory=dict
)
db_connectors
instance-attribute
db_connectors: dict[str, Any]
NL2QRunResult
Bases: BaseModel
Configuration, outputs, usage, and aggregate metrics for one experiment run.
start_time
instance-attribute
start_time: datetime
end_time
instance-attribute
end_time: datetime
dataset
instance-attribute
dataset: str
split
instance-attribute
split: str
databases
instance-attribute
databases: list[str] | None
subsample_size
instance-attribute
subsample_size: int | None
dataset_extra_kwargs
class-attribute
instance-attribute
dataset_extra_kwargs: dict[str, Any] = Field(
default_factory=dict
)
agent
instance-attribute
agent: str
agent_config
instance-attribute
agent_config: dict[str, Any]
total_usage
class-attribute
instance-attribute
total_usage: Usage | None = None
Total usage of the agent, does not include user simulator usage
total_user_simulator_usage
class-attribute
instance-attribute
total_user_simulator_usage: Usage | None = None
aggregated_inference_metrics
class-attribute
instance-attribute
aggregated_inference_metrics: dict[str, Any] = Field(
default_factory=dict
)
aggregated_eval_metrics
class-attribute
instance-attribute
aggregated_eval_metrics: dict[str, Any] = Field(
default_factory=dict
)
to_directory
to_directory(
directory: str,
eval_metrics_in_summary: Sequence[str] | None = None,
) -> None
Save the run, summary CSV, and readable task reports.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
directory
|
str
|
Destination directory. |
required |
eval_metrics_in_summary
|
Sequence[str] | None
|
Metric columns in the summary. None includes all recorded task metrics in first-seen order; an empty sequence omits metrics. An explicit sequence sets the column order. |
None
|
to_csv
to_csv(
path: str, eval_metrics: Sequence[str] | None = None
) -> None
Save one summary row per task.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
str
|
Destination CSV file. |
required |
eval_metrics
|
Sequence[str] | None
|
Metric columns to include. None includes all recorded task metrics in first-seen order; an empty sequence omits metrics. An explicit sequence sets the column order. |
None
|
CSVSummaryRow
Bases: BaseModel
One flattened task row in an experiment summary CSV.
qid
instance-attribute
qid: str
db
instance-attribute
db: str
question
instance-attribute
question: str
question_instructions
class-attribute
instance-attribute
question_instructions: str | None = None
gold_query
class-attribute
instance-attribute
gold_query: str | None = None
pred_query
class-attribute
instance-attribute
pred_query: str | None = None
gold_exec_result
class-attribute
instance-attribute
gold_exec_result: str | None = None
pred_exec_result
class-attribute
instance-attribute
pred_exec_result: str | None = None
metrics
class-attribute
instance-attribute
metrics: dict[str, Any] = Field(default_factory=dict)
fields
fields() -> list[str]
data
data() -> list[Any]
NL2QTask
module-attribute
NL2QTask = Annotated[
Union[SimpleNL2QTask, AmbigNL2QTask, DbtTask],
Field(discriminator="task_type"),
]
NL2QTaskOutput
module-attribute
NL2QTaskOutput = Annotated[
Union[
SimpleNL2QTaskOutput,
SimpleAmbigNL2QTaskOutput,
FlatAmbigNL2QTaskOutput,
StructuredAmbigNL2QTaskOutput,
DbtTaskOutput,
],
Field(discriminator="output_type"),
]
User interaction
Ambiguity-aware agents use UserSimulatorProtocol to request clarification
and track its usage and effort.
UserSimulatorProtocol
Bases: Protocol
Interface used by ambiguity-aware agents to request clarifications.
ask_async
async
ask_async(
question: UserFreeTextQuestion,
) -> UserFreeTextAnswer | None
ask_async(
question: UserMultipleChoiceQuestion,
) -> UserMultipleChoiceAnswer | None
ask_async(
question: UserValueQuestion,
) -> UserValueAnswer | None
ask_async(question: UserQuestion) -> UserAnswer | None
user_effort
user_effort() -> float
UserFreeTextQuestion
Bases: BaseModel
A clarification question answered with free text.
type
class-attribute
instance-attribute
type: Literal['free_text'] = 'free_text'
question
instance-attribute
question: str
UserFreeTextAnswer
Bases: BaseModel
Free-text clarification answer.
answer_free_text
instance-attribute
answer_free_text: str
UserMultipleChoiceQuestion
Bases: BaseModel
A clarification question answered by selecting one option.
type
class-attribute
instance-attribute
type: Literal['multiple_choice'] = 'multiple_choice'
question
instance-attribute
question: str
options
instance-attribute
options: list[str]
UserMultipleChoiceAnswer
Bases: BaseModel
Selected option index for a multiple-choice clarification.
answer_index
instance-attribute
answer_index: int
UserValueQuestion
Bases: BaseModel
A clarification question answered with a typed comparison value.
type
class-attribute
instance-attribute
type: Literal['value'] = 'value'
question
instance-attribute
question: str
value_dtype
instance-attribute
value_dtype: Literal['int', 'float', 'str']
value_operator_options
instance-attribute
value_operator_options: list[
Literal["<", ">", "<=", ">=", "=", "<>"]
]
UserValueAnswer
Bases: BaseModel
Comparison operator and value supplied for a clarification.
operator
instance-attribute
operator: Literal['<', '>', '<=', '>=', '=', '<>']
value
instance-attribute
value: int | float | str
UserQuestion
module-attribute
UserQuestion: TypeAlias = Annotated[
Union[
UserFreeTextQuestion,
UserMultipleChoiceQuestion,
UserValueQuestion,
],
Field(discriminator="type"),
]
UserAnswer
module-attribute
UserAnswer: TypeAlias = Union[
UserFreeTextAnswer,
UserMultipleChoiceAnswer,
UserValueAnswer,
]