nemo_voice_agent.evaluation.tools.eva_airline_params

View as Markdown

Pydantic parameter models and enums for airline tool functions.

Each tool function has a corresponding *Params model that validates and types its incoming params dict. Call Model.model_validate(params) at the top of the tool function and catch ValidationError to produce a standard {"status": "error", ...} response for bad LLM-supplied inputs.

Enums use StrEnum so values serialise to plain strings in JSON and compare equal to their string counterparts (e.g. FareClass.main_cabin == "main_cabin").

Module Contents

Classes

Functions

NameDescription
validation_error_responseConvert a Pydantic ValidationError to a standard tool error response.

Data

AirportCode

ConfirmationNumber

DateStr

FIELD_ERROR_TYPES

FlightNumberStr

JourneyIdStr

PassengerIdStr

API

class nemo_voice_agent.evaluation.tools.eva_airline_params.AddBaggageAllowanceParams()

Bases: BaseModel

confirmation_number
ConfirmationNumber
flight_number
FlightNumberStr | None = None
journey_id
JourneyIdStr
num_bags
int = Field(ge=0, le=5)
class nemo_voice_agent.evaluation.tools.eva_airline_params.AddMealRequestParams()

Bases: BaseModel

confirmation_number
ConfirmationNumber
flight_number
FlightNumberStr | None = None
journey_id
JourneyIdStr
meal_type
MealType
passenger_id
PassengerIdStr
class nemo_voice_agent.evaluation.tools.eva_airline_params.AddToStandbyParams()

Bases: BaseModel

confirmation_number
ConfirmationNumber
journey_id
JourneyIdStr
passenger_ids
list[PassengerIdStr]
class nemo_voice_agent.evaluation.tools.eva_airline_params.AssignSeatParams()

Bases: BaseModel

confirmation_number
ConfirmationNumber
flight_number
FlightNumberStr | None = None
journey_id
JourneyIdStr
passenger_id
PassengerIdStr
seat_preference
SeatPreference
class nemo_voice_agent.evaluation.tools.eva_airline_params.CancelReservationParams()

Bases: BaseModel

cancellation_reason
CancellationReason
confirmation_number
ConfirmationNumber
journey_id
JourneyIdStr
class nemo_voice_agent.evaluation.tools.eva_airline_params.CancellationReason

Bases: enum.Enum

bereavement
= 'bereavement'
irrops_refund
= 'irrops_refund'
medical
= 'medical'
rule_24_hour
= '24_hour_rule'
schedule_unacceptable
= 'schedule_unacceptable'
voluntary
= 'voluntary'
class nemo_voice_agent.evaluation.tools.eva_airline_params.CreditReason

Bases: enum.Enum

cancellation_non_refundable
= 'cancellation_non_refundable'
downgrade_compensation
= 'downgrade_compensation'
fare_difference_negative
= 'fare_difference_negative'
goodwill
= 'goodwill'
service_recovery
= 'service_recovery'
class nemo_voice_agent.evaluation.tools.eva_airline_params.FareClass

Bases: enum.Enum

basic_economy
= 'basic_economy'
business
= 'business'
first
= 'first'
main_cabin
= 'main_cabin'
premium_economy
= 'premium_economy'
class nemo_voice_agent.evaluation.tools.eva_airline_params.FareClassOrAny

Bases: enum.Enum

Fare class for search queries; any means cheapest available.

any
= 'any'
basic_economy
= 'basic_economy'
business
= 'business'
first
= 'first'
main_cabin
= 'main_cabin'
premium_economy
= 'premium_economy'
class nemo_voice_agent.evaluation.tools.eva_airline_params.GetDisruptionInfoParams()

Bases: BaseModel

date
DateStr
flight_number
FlightNumberStr
class nemo_voice_agent.evaluation.tools.eva_airline_params.GetFlightStatusParams()

Bases: BaseModel

flight_date
DateStr
flight_number
FlightNumberStr
class nemo_voice_agent.evaluation.tools.eva_airline_params.GetReservationParams()

Bases: BaseModel

confirmation_number
ConfirmationNumber
last_name
str
class nemo_voice_agent.evaluation.tools.eva_airline_params.IssueHotelVoucherParams()

Bases: BaseModel

confirmation_number
ConfirmationNumber
num_nights
int = Field(ge=1)
passenger_id
PassengerIdStr
class nemo_voice_agent.evaluation.tools.eva_airline_params.IssueMealVoucherParams()

Bases: BaseModel

confirmation_number
ConfirmationNumber
passenger_id
PassengerIdStr
voucher_reason
VoucherReason
class nemo_voice_agent.evaluation.tools.eva_airline_params.IssueTravelCreditParams()

Bases: BaseModel

amount
float = Field(gt=0)
confirmation_number
ConfirmationNumber
credit_reason
CreditReason
passenger_id
PassengerIdStr
class nemo_voice_agent.evaluation.tools.eva_airline_params.MealType

Bases: enum.Enum

child
= 'child'
diabetic
= 'diabetic'
gluten_free
= 'gluten_free'
halal
= 'halal'
hindu
= 'hindu'
kosher
= 'kosher'
low_sodium
= 'low_sodium'
none
= 'none'
standard
= 'standard'
vegan
= 'vegan'
vegetarian
= 'vegetarian'
class nemo_voice_agent.evaluation.tools.eva_airline_params.ProcessRefundParams()

Bases: BaseModel

confirmation_number
ConfirmationNumber
refund_amount
float = Field(gt=0)
refund_type
RefundType
class nemo_voice_agent.evaluation.tools.eva_airline_params.RebookFlightParams()

Bases: BaseModel

confirmation_number
ConfirmationNumber
flight_number
FlightNumberStr | None = None
journey_id
JourneyIdStr
new_fare_class
FareClass | None = None
new_journey_id
JourneyIdStr
rebooking_type
RebookingType
waive_change_fee
bool
class nemo_voice_agent.evaluation.tools.eva_airline_params.RebookingType

Bases: enum.Enum

irrops_cancellation
= 'irrops_cancellation'
irrops_delay
= 'irrops_delay'
irrops_schedule_change
= 'irrops_schedule_change'
missed_connection_airline_fault
= 'missed_connection_airline_fault'
missed_flight_passenger_fault
= 'missed_flight_passenger_fault'
same_day
= 'same_day'
voluntary
= 'voluntary'
class nemo_voice_agent.evaluation.tools.eva_airline_params.RefundType

Bases: enum.Enum

ancillary_fees
= 'ancillary_fees'
full_fare
= 'full_fare'
partial_fare
= 'partial_fare'
taxes_only
= 'taxes_only'
class nemo_voice_agent.evaluation.tools.eva_airline_params.SearchRebookingOptionsParams()

Bases: BaseModel

date
DateStr
destination
AirportCode
fare_class
FareClassOrAny
origin
AirportCode
passenger_count
int = Field(ge=1)
class nemo_voice_agent.evaluation.tools.eva_airline_params.SeatPreference

Bases: enum.Enum

aisle
= 'aisle'
middle
= 'middle'
no_preference
= 'no_preference'
window
= 'window'
class nemo_voice_agent.evaluation.tools.eva_airline_params.TransferToAgentParams()

Bases: BaseModel

confirmation_number
ConfirmationNumber
issue_summary
str
transfer_reason
str
class nemo_voice_agent.evaluation.tools.eva_airline_params.VoucherReason

Bases: enum.Enum

cancellation_wait_same_day
= 'cancellation_wait_same_day'
delay_over_2_hours
= 'delay_over_2_hours'
delay_over_4_hours
= 'delay_over_4_hours'
irrops_overnight
= 'irrops_overnight'
nemo_voice_agent.evaluation.tools.eva_airline_params.validation_error_response(
exc: pydantic.ValidationError,
model: type[pydantic.BaseModel]
) -> dict

Convert a Pydantic ValidationError to a standard tool error response.

Produces {"status": "error", "error_type": ..., "message": ...} matching the format returned by inline validation in each tool function.

Uses model.model_fields to pull description and examples from the field’s Field(...) metadata for human-friendly messages.

nemo_voice_agent.evaluation.tools.eva_airline_params.AirportCode = Annotated[str, Field(pattern='^[A-Za-z]{3}$', description='3-letter airport code...
nemo_voice_agent.evaluation.tools.eva_airline_params.ConfirmationNumber = Annotated[str, Field(pattern='^[A-Za-z0-9]{6}$', description='6 alphanumeric cha...
nemo_voice_agent.evaluation.tools.eva_airline_params.DateStr = Annotated[str, Field(pattern='^\\d{4}-\\d{2}-\\d{2}$', description='YYYY-MM-DD')...
nemo_voice_agent.evaluation.tools.eva_airline_params.FIELD_ERROR_TYPES: dict[str, tuple[str, str]] = {'rebooking_type': ('invalid_rebooking_type', 'rebooking_type'), 'new_fare_class...
nemo_voice_agent.evaluation.tools.eva_airline_params.FlightNumberStr = Annotated[str, Field(pattern='^[A-Za-z]{2,3}\\d{1,4}$', description='2-3 letters...
nemo_voice_agent.evaluation.tools.eva_airline_params.JourneyIdStr = Annotated[str, Field(pattern='^FL_(?:[A-Za-z]{2,3}\\d{1,4}_)+\\d{8}$', descripti...
nemo_voice_agent.evaluation.tools.eva_airline_params.PassengerIdStr = Annotated[str, Field(pattern='^PAX\\d+$', description='PAX<digits>', examples=['...