Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Pydantic validation error in the classification finetuning #7781

Open
khankamranali opened this issue Feb 7, 2025 · 2 comments
Open
Labels
bug Something isn't working

Comments

@khankamranali
Copy link

What happened?

I am getting following Pydantic validation error.

[BootstrapFinetune] Preparing the student and teacher programs...
[BootstrapFinetune] Bootstrapping data...
Average Metric: 11.00 / 11 (100.0%): 2%|█▍ | 10/500 [00:00<00:03, 127.11it/s]2025/02/07 07:52:16 ERROR dspy.utils.parallelizer: Error processing item Example({'text': 'There must have been a mistake, why was I charged an extra pound?'}) (input_keys={'text'}): 1 validation error for literal['activate_my_card','age_limit','apple_pay_or_google_pay','atm_support','automatic_top_up','balance_not_updated_after_bank_transfer','balance_not_updated_after_cheque_or_cash_deposit','beneficiary_not_allowed','cancel_transfer','card_about_to_expire','card_acceptance','card_arrival','card_delivery_estimate','card_linking','card_not_working','card_payment_fee_charged','card_payment_not_recognised','card_payment_wrong_exchange_rate','card_swallowed','cash_withdrawal_charge','cash_withdrawal_not_recognised','change_pin','compromised_card','contactless_not_working','country_support','declined_card_payment','declined_cash_withdrawal','declined_transfer','direct_debit_payment_not_recognised','disposable_card_limits','edit_personal_details','exchange_charge','exchange_rate','exchange_via_app','extra_charge_on_statement','failed_transfer','fiat_currency_support','get_disposable_virtual_card','get_physical_card','getting_spare_card','getting_virtual_card','lost_or_stolen_card','lost_or_stolen_phone','order_physical_card','passcode_forgotten','pending_card_payment','pending_cash_withdrawal','pending_top_up','pending_transfer','pin_blocked','receiving_money','Refund_not_showing_up','request_refund','reverted_card_payment?','supported_cards_and_currencies','terminate_account','top_up_by_bank_transfer_charge','top_up_by_card_charge','top_up_by_cash_or_cheque','top_up_failed','top_up_limits','top_up_reverted','topping_up_by_card','transaction_charged_twice','transfer_fee_charged','transfer_into_account','transfer_not_received_by_recipient','transfer_timing','unable_to_verify_identity','verify_my_identity','verify_source_of_funds','verify_top_up','virtual_card_not_working','visa_or_mastercard','why_verify_identity','wrong_amount_of_cash_received','wrong_exchange_rate_for_cash_withdrawal']
Input should be 'activate_my_card', 'age_limit', 'apple_pay_or_google_pay', 'atm_support', 'automatic_top_up', 'balance_not_updated_after_bank_transfer', 'balance_not_updated_after_cheque_or_cash_deposit', 'beneficiary_not_allowed', 'cancel_transfer', 'card_about_to_expire', 'card_acceptance', 'card_arrival', 'card_delivery_estimate', 'card_linking', 'card_not_working', 'card_payment_fee_charged', 'card_payment_not_recognised', 'card_payment_wrong_exchange_rate', 'card_swallowed', 'cash_withdrawal_charge', 'cash_withdrawal_not_recognised', 'change_pin', 'compromised_card', 'contactless_not_working', 'country_support', 'declined_card_payment', 'declined_cash_withdrawal', 'declined_transfer', 'direct_debit_payment_not_recognised', 'disposable_card_limits', 'edit_personal_details', 'exchange_charge', 'exchange_rate', 'exchange_via_app', 'extra_charge_on_statement', 'failed_transfer', 'fiat_currency_support', 'get_disposable_virtual_card', 'get_physical_card', 'getting_spare_card', 'getting_virtual_card', 'lost_or_stolen_card', 'lost_or_stolen_phone', 'order_physical_card', 'passcode_forgotten', 'pending_card_payment', 'pending_cash_withdrawal', 'pending_top_up', 'pending_transfer', 'pin_blocked', 'receiving_money', 'Refund_not_showing_up', 'request_refund', 'reverted_card_payment?', 'supported_cards_and_currencies', 'terminate_account', 'top_up_by_bank_transfer_charge', 'top_up_by_card_charge', 'top_up_by_cash_or_cheque', 'top_up_failed', 'top_up_limits', 'top_up_reverted', 'topping_up_by_card', 'transaction_charged_twice', 'transfer_fee_charged', 'transfer_into_account', 'transfer_not_received_by_recipient', 'transfer_timing', 'unable_to_verify_identity', 'verify_my_identity', 'verify_source_of_funds', 'verify_top_up', 'virtual_card_not_working', 'visa_or_mastercard', 'why_verify_identity', 'wrong_amount_of_cash_received' or 'wrong_exchange_rate_for_cash_withdrawal' [type=literal_error, input_value='card_payment_extra_charge', input_type=str]
For further information visit https://errors.pydantic.dev/2.10/v/literal_error
Stack trace:
Traceback (most recent call last):
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/parallelizer.py", line 47, in wrapped
return function(item)
^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/evaluate/evaluate.py", line 149, in process_item
prediction = program(**example.inputs())
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap_finetune.py", line 193, in wrapped_program
return program(**kwargs), dspy.settings.trace.copy()
^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/primitives/program.py", line 22, in call
return self.forward(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/chain_of_thought.py", line 20, in forward
return self.predict(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/predict.py", line 67, in call
return self.forward(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/predict.py", line 97, in forward
completions = adapter(lm, lm_kwargs=config, signature=signature, demos=demos, inputs=kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/base.py", line 45, in call
return JSONAdapter()(lm, lm_kwargs, signature, demos, inputs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 61, in call
value = self.parse(signature, output)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 100, in parse
fields[k] = parse_value(v, signature.output_fields[k].annotation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 139, in parse_value
return TypeAdapter(annotation).validate_python(parsed_value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/pydantic/type_adapter.py", line 412, in validate_python
return self.validator.validate_python(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for literal['activate_my_card','age_limit','apple_pay_or_google_pay','atm_support','automatic_top_up','balance_not_updated_after_bank_transfer','balance_not_updated_after_cheque_or_cash_deposit','beneficiary_not_allowed','cancel_transfer','card_about_to_expire','card_acceptance','card_arrival','card_delivery_estimate','card_linking','card_not_working','card_payment_fee_charged','card_payment_not_recognised','card_payment_wrong_exchange_rate','card_swallowed','cash_withdrawal_charge','cash_withdrawal_not_recognised','change_pin','compromised_card','contactless_not_working','country_support','declined_card_payment','declined_cash_withdrawal','declined_transfer','direct_debit_payment_not_recognised','disposable_card_limits','edit_personal_details','exchange_charge','exchange_rate','exchange_via_app','extra_charge_on_statement','failed_transfer','fiat_currency_support','get_disposable_virtual_card','get_physical_card','getting_spare_card','getting_virtual_card','lost_or_stolen_card','lost_or_stolen_phone','order_physical_card','passcode_forgotten','pending_card_payment','pending_cash_withdrawal','pending_top_up','pending_transfer','pin_blocked','receiving_money','Refund_not_showing_up','request_refund','reverted_card_payment?','supported_cards_and_currencies','terminate_account','top_up_by_bank_transfer_charge','top_up_by_card_charge','top_up_by_cash_or_cheque','top_up_failed','top_up_limits','top_up_reverted','topping_up_by_card','transaction_charged_twice','transfer_fee_charged','transfer_into_account','transfer_not_received_by_recipient','transfer_timing','unable_to_verify_identity','verify_my_identity','verify_source_of_funds','verify_top_up','virtual_card_not_working','visa_or_mastercard','why_verify_identity','wrong_amount_of_cash_received','wrong_exchange_rate_for_cash_withdrawal']
Input should be 'activate_my_card', 'age_limit', 'apple_pay_or_google_pay', 'atm_support', 'automatic_top_up', 'balance_not_updated_after_bank_transfer', 'balance_not_updated_after_cheque_or_cash_deposit', 'beneficiary_not_allowed', 'cancel_transfer', 'card_about_to_expire', 'card_acceptance', 'card_arrival', 'card_delivery_estimate', 'card_linking', 'card_not_working', 'card_payment_fee_charged', 'card_payment_not_recognised', 'card_payment_wrong_exchange_rate', 'card_swallowed', 'cash_withdrawal_charge', 'cash_withdrawal_not_recognised', 'change_pin', 'compromised_card', 'contactless_not_working', 'country_support', 'declined_card_payment', 'declined_cash_withdrawal', 'declined_transfer', 'direct_debit_payment_not_recognised', 'disposable_card_limits', 'edit_personal_details', 'exchange_charge', 'exchange_rate', 'exchange_via_app', 'extra_charge_on_statement', 'failed_transfer', 'fiat_currency_support', 'get_disposable_virtual_card', 'get_physical_card', 'getting_spare_card', 'getting_virtual_card', 'lost_or_stolen_card', 'lost_or_stolen_phone', 'order_physical_card', 'passcode_forgotten', 'pending_card_payment', 'pending_cash_withdrawal', 'pending_top_up', 'pending_transfer', 'pin_blocked', 'receiving_money', 'Refund_not_showing_up', 'request_refund', 'reverted_card_payment?', 'supported_cards_and_currencies', 'terminate_account', 'top_up_by_bank_transfer_charge', 'top_up_by_card_charge', 'top_up_by_cash_or_cheque', 'top_up_failed', 'top_up_limits', 'top_up_reverted', 'topping_up_by_card', 'transaction_charged_twice', 'transfer_fee_charged', 'transfer_into_account', 'transfer_not_received_by_recipient', 'transfer_timing', 'unable_to_verify_identity', 'verify_my_identity', 'verify_source_of_funds', 'verify_top_up', 'virtual_card_not_working', 'visa_or_mastercard', 'why_verify_identity', 'wrong_amount_of_cash_received' or 'wrong_exchange_rate_for_cash_withdrawal' [type=literal_error, input_value='card_payment_extra_charge', input_type=str]
For further information visit https://errors.pydantic.dev/2.10/v/literal_error

2025/02/07 07:52:16 ERROR dspy.utils.parallelizer: Error processing item Example({'text': 'Which fiat currencies can I use through this app?'}) (input_keys={'text'}): 1 validation error for literal['activate_my_card','age_limit','apple_pay_or_google_pay','atm_support','automatic_top_up','balance_not_updated_after_bank_transfer','balance_not_updated_after_cheque_or_cash_deposit','beneficiary_not_allowed','cancel_transfer','card_about_to_expire','card_acceptance','card_arrival','card_delivery_estimate','card_linking','card_not_working','card_payment_fee_charged','card_payment_not_recognised','card_payment_wrong_exchange_rate','card_swallowed','cash_withdrawal_charge','cash_withdrawal_not_recognised','change_pin','compromised_card','contactless_not_working','country_support','declined_card_payment','declined_cash_withdrawal','declined_transfer','direct_debit_payment_not_recognised','disposable_card_limits','edit_personal_details','exchange_charge','exchange_rate','exchange_via_app','extra_charge_on_statement','failed_transfer','fiat_currency_support','get_disposable_virtual_card','get_physical_card','getting_spare_card','getting_virtual_card','lost_or_stolen_card','lost_or_stolen_phone','order_physical_card','passcode_forgotten','pending_card_payment','pending_cash_withdrawal','pending_top_up','pending_transfer','pin_blocked','receiving_money','Refund_not_showing_up','request_refund','reverted_card_payment?','supported_cards_and_currencies','terminate_account','top_up_by_bank_transfer_charge','top_up_by_card_charge','top_up_by_cash_or_cheque','top_up_failed','top_up_limits','top_up_reverted','topping_up_by_card','transaction_charged_twice','transfer_fee_charged','transfer_into_account','transfer_not_received_by_recipient','transfer_timing','unable_to_verify_identity','verify_my_identity','verify_source_of_funds','verify_top_up','virtual_card_not_working','visa_or_mastercard','why_verify_identity','wrong_amount_of_cash_received','wrong_exchange_rate_for_cash_withdrawal']
Input should be 'activate_my_card', 'age_limit', 'apple_pay_or_google_pay', 'atm_support', 'automatic_top_up', 'balance_not_updated_after_bank_transfer', 'balance_not_updated_after_cheque_or_cash_deposit', 'beneficiary_not_allowed', 'cancel_transfer', 'card_about_to_expire', 'card_acceptance', 'card_arrival', 'card_delivery_estimate', 'card_linking', 'card_not_working', 'card_payment_fee_charged', 'card_payment_not_recognised', 'card_payment_wrong_exchange_rate', 'card_swallowed', 'cash_withdrawal_charge', 'cash_withdrawal_not_recognised', 'change_pin', 'compromised_card', 'contactless_not_working', 'country_support', 'declined_card_payment', 'declined_cash_withdrawal', 'declined_transfer', 'direct_debit_payment_not_recognised', 'disposable_card_limits', 'edit_personal_details', 'exchange_charge', 'exchange_rate', 'exchange_via_app', 'extra_charge_on_statement', 'failed_transfer', 'fiat_currency_support', 'get_disposable_virtual_card', 'get_physical_card', 'getting_spare_card', 'getting_virtual_card', 'lost_or_stolen_card', 'lost_or_stolen_phone', 'order_physical_card', 'passcode_forgotten', 'pending_card_payment', 'pending_cash_withdrawal', 'pending_top_up', 'pending_transfer', 'pin_blocked', 'receiving_money', 'Refund_not_showing_up', 'request_refund', 'reverted_card_payment?', 'supported_cards_and_currencies', 'terminate_account', 'top_up_by_bank_transfer_charge', 'top_up_by_card_charge', 'top_up_by_cash_or_cheque', 'top_up_failed', 'top_up_limits', 'top_up_reverted', 'topping_up_by_card', 'transaction_charged_twice', 'transfer_fee_charged', 'transfer_into_account', 'transfer_not_received_by_recipient', 'transfer_timing', 'unable_to_verify_identity', 'verify_my_identity', 'verify_source_of_funds', 'verify_top_up', 'virtual_card_not_working', 'visa_or_mastercard', 'why_verify_identity', 'wrong_amount_of_cash_received' or 'wrong_exchange_rate_for_cash_withdrawal' [type=literal_error, input_value=['fiat_currency_support'], input_type=list]
For further information visit https://errors.pydantic.dev/2.10/v/literal_error
Stack trace:
Traceback (most recent call last):
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/parallelizer.py", line 47, in wrapped
return function(item)
^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/evaluate/evaluate.py", line 149, in process_item
prediction = program(**example.inputs())
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap_finetune.py", line 193, in wrapped_program
return program(**kwargs), dspy.settings.trace.copy()
^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/primitives/program.py", line 22, in call
return self.forward(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/chain_of_thought.py", line 20, in forward
return self.predict(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/predict.py", line 67, in call
return self.forward(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/predict.py", line 97, in forward
completions = adapter(lm, lm_kwargs=config, signature=signature, demos=demos, inputs=kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/base.py", line 45, in call
return JSONAdapter()(lm, lm_kwargs, signature, demos, inputs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 61, in call
value = self.parse(signature, output)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 100, in parse
fields[k] = parse_value(v, signature.output_fields[k].annotation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 139, in parse_value
return TypeAdapter(annotation).validate_python(parsed_value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/pydantic/type_adapter.py", line 412, in validate_python
return self.validator.validate_python(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for literal['activate_my_card','age_limit','apple_pay_or_google_pay','atm_support','automatic_top_up','balance_not_updated_after_bank_transfer','balance_not_updated_after_cheque_or_cash_deposit','beneficiary_not_allowed','cancel_transfer','card_about_to_expire','card_acceptance','card_arrival','card_delivery_estimate','card_linking','card_not_working','card_payment_fee_charged','card_payment_not_recognised','card_payment_wrong_exchange_rate','card_swallowed','cash_withdrawal_charge','cash_withdrawal_not_recognised','change_pin','compromised_card','contactless_not_working','country_support','declined_card_payment','declined_cash_withdrawal','declined_transfer','direct_debit_payment_not_recognised','disposable_card_limits','edit_personal_details','exchange_charge','exchange_rate','exchange_via_app','extra_charge_on_statement','failed_transfer','fiat_currency_support','get_disposable_virtual_card','get_physical_card','getting_spare_card','getting_virtual_card','lost_or_stolen_card','lost_or_stolen_phone','order_physical_card','passcode_forgotten','pending_card_payment','pending_cash_withdrawal','pending_top_up','pending_transfer','pin_blocked','receiving_money','Refund_not_showing_up','request_refund','reverted_card_payment?','supported_cards_and_currencies','terminate_account','top_up_by_bank_transfer_charge','top_up_by_card_charge','top_up_by_cash_or_cheque','top_up_failed','top_up_limits','top_up_reverted','topping_up_by_card','transaction_charged_twice','transfer_fee_charged','transfer_into_account','transfer_not_received_by_recipient','transfer_timing','unable_to_verify_identity','verify_my_identity','verify_source_of_funds','verify_top_up','virtual_card_not_working','visa_or_mastercard','why_verify_identity','wrong_amount_of_cash_received','wrong_exchange_rate_for_cash_withdrawal']
Input should be 'activate_my_card', 'age_limit', 'apple_pay_or_google_pay', 'atm_support', 'automatic_top_up', 'balance_not_updated_after_bank_transfer', 'balance_not_updated_after_cheque_or_cash_deposit', 'beneficiary_not_allowed', 'cancel_transfer', 'card_about_to_expire', 'card_acceptance', 'card_arrival', 'card_delivery_estimate', 'card_linking', 'card_not_working', 'card_payment_fee_charged', 'card_payment_not_recognised', 'card_payment_wrong_exchange_rate', 'card_swallowed', 'cash_withdrawal_charge', 'cash_withdrawal_not_recognised', 'change_pin', 'compromised_card', 'contactless_not_working', 'country_support', 'declined_card_payment', 'declined_cash_withdrawal', 'declined_transfer', 'direct_debit_payment_not_recognised', 'disposable_card_limits', 'edit_personal_details', 'exchange_charge', 'exchange_rate', 'exchange_via_app', 'extra_charge_on_statement', 'failed_transfer', 'fiat_currency_support', 'get_disposable_virtual_card', 'get_physical_card', 'getting_spare_card', 'getting_virtual_card', 'lost_or_stolen_card', 'lost_or_stolen_phone', 'order_physical_card', 'passcode_forgotten', 'pending_card_payment', 'pending_cash_withdrawal', 'pending_top_up', 'pending_transfer', 'pin_blocked', 'receiving_money', 'Refund_not_showing_up', 'request_refund', 'reverted_card_payment?', 'supported_cards_and_currencies', 'terminate_account', 'top_up_by_bank_transfer_charge', 'top_up_by_card_charge', 'top_up_by_cash_or_cheque', 'top_up_failed', 'top_up_limits', 'top_up_reverted', 'topping_up_by_card', 'transaction_charged_twice', 'transfer_fee_charged', 'transfer_into_account', 'transfer_not_received_by_recipient', 'transfer_timing', 'unable_to_verify_identity', 'verify_my_identity', 'verify_source_of_funds', 'verify_top_up', 'virtual_card_not_working', 'visa_or_mastercard', 'why_verify_identity', 'wrong_amount_of_cash_received' or 'wrong_exchange_rate_for_cash_withdrawal' [type=literal_error, input_value=['fiat_currency_support'], input_type=list]
For further information visit https://errors.pydantic.dev/2.10/v/literal_error

2025/02/07 07:52:16 ERROR dspy.utils.parallelizer: Error processing item Example({'text': 'What fiat currencies do you support?'}) (input_keys={'text'}): 1 validation error for literal['activate_my_card','age_limit','apple_pay_or_google_pay','atm_support','automatic_top_up','balance_not_updated_after_bank_transfer','balance_not_updated_after_cheque_or_cash_deposit','beneficiary_not_allowed','cancel_transfer','card_about_to_expire','card_acceptance','card_arrival','card_delivery_estimate','card_linking','card_not_working','card_payment_fee_charged','card_payment_not_recognised','card_payment_wrong_exchange_rate','card_swallowed','cash_withdrawal_charge','cash_withdrawal_not_recognised','change_pin','compromised_card','contactless_not_working','country_support','declined_card_payment','declined_cash_withdrawal','declined_transfer','direct_debit_payment_not_recognised','disposable_card_limits','edit_personal_details','exchange_charge','exchange_rate','exchange_via_app','extra_charge_on_statement','failed_transfer','fiat_currency_support','get_disposable_virtual_card','get_physical_card','getting_spare_card','getting_virtual_card','lost_or_stolen_card','lost_or_stolen_phone','order_physical_card','passcode_forgotten','pending_card_payment','pending_cash_withdrawal','pending_top_up','pending_transfer','pin_blocked','receiving_money','Refund_not_showing_up','request_refund','reverted_card_payment?','supported_cards_and_currencies','terminate_account','top_up_by_bank_transfer_charge','top_up_by_card_charge','top_up_by_cash_or_cheque','top_up_failed','top_up_limits','top_up_reverted','topping_up_by_card','transaction_charged_twice','transfer_fee_charged','transfer_into_account','transfer_not_received_by_recipient','transfer_timing','unable_to_verify_identity','verify_my_identity','verify_source_of_funds','verify_top_up','virtual_card_not_working','visa_or_mastercard','why_verify_identity','wrong_amount_of_cash_received','wrong_exchange_rate_for_cash_withdrawal']
Input should be 'activate_my_card', 'age_limit', 'apple_pay_or_google_pay', 'atm_support', 'automatic_top_up', 'balance_not_updated_after_bank_transfer', 'balance_not_updated_after_cheque_or_cash_deposit', 'beneficiary_not_allowed', 'cancel_transfer', 'card_about_to_expire', 'card_acceptance', 'card_arrival', 'card_delivery_estimate', 'card_linking', 'card_not_working', 'card_payment_fee_charged', 'card_payment_not_recognised', 'card_payment_wrong_exchange_rate', 'card_swallowed', 'cash_withdrawal_charge', 'cash_withdrawal_not_recognised', 'change_pin', 'compromised_card', 'contactless_not_working', 'country_support', 'declined_card_payment', 'declined_cash_withdrawal', 'declined_transfer', 'direct_debit_payment_not_recognised', 'disposable_card_limits', 'edit_personal_details', 'exchange_charge', 'exchange_rate', 'exchange_via_app', 'extra_charge_on_statement', 'failed_transfer', 'fiat_currency_support', 'get_disposable_virtual_card', 'get_physical_card', 'getting_spare_card', 'getting_virtual_card', 'lost_or_stolen_card', 'lost_or_stolen_phone', 'order_physical_card', 'passcode_forgotten', 'pending_card_payment', 'pending_cash_withdrawal', 'pending_top_up', 'pending_transfer', 'pin_blocked', 'receiving_money', 'Refund_not_showing_up', 'request_refund', 'reverted_card_payment?', 'supported_cards_and_currencies', 'terminate_account', 'top_up_by_bank_transfer_charge', 'top_up_by_card_charge', 'top_up_by_cash_or_cheque', 'top_up_failed', 'top_up_limits', 'top_up_reverted', 'topping_up_by_card', 'transaction_charged_twice', 'transfer_fee_charged', 'transfer_into_account', 'transfer_not_received_by_recipient', 'transfer_timing', 'unable_to_verify_identity', 'verify_my_identity', 'verify_source_of_funds', 'verify_top_up', 'virtual_card_not_working', 'visa_or_mastercard', 'why_verify_identity', 'wrong_amount_of_cash_received' or 'wrong_exchange_rate_for_cash_withdrawal' [type=literal_error, input_value=['fiat_currency_support'], input_type=list]
For further information visit https://errors.pydantic.dev/2.10/v/literal_error
Stack trace:
Traceback (most recent call last):
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/parallelizer.py", line 47, in wrapped
return function(item)
^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/evaluate/evaluate.py", line 149, in process_item
prediction = program(**example.inputs())
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap_finetune.py", line 193, in wrapped_program
return program(**kwargs), dspy.settings.trace.copy()
^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/primitives/program.py", line 22, in call
return self.forward(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/chain_of_thought.py", line 20, in forward
return self.predict(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/predict.py", line 67, in call
return self.forward(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/predict.py", line 97, in forward
completions = adapter(lm, lm_kwargs=config, signature=signature, demos=demos, inputs=kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/base.py", line 45, in call
return JSONAdapter()(lm, lm_kwargs, signature, demos, inputs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 61, in call
value = self.parse(signature, output)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 100, in parse
fields[k] = parse_value(v, signature.output_fields[k].annotation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 139, in parse_value
return TypeAdapter(annotation).validate_python(parsed_value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/pydantic/type_adapter.py", line 412, in validate_python
return self.validator.validate_python(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for literal['activate_my_card','age_limit','apple_pay_or_google_pay','atm_support','automatic_top_up','balance_not_updated_after_bank_transfer','balance_not_updated_after_cheque_or_cash_deposit','beneficiary_not_allowed','cancel_transfer','card_about_to_expire','card_acceptance','card_arrival','card_delivery_estimate','card_linking','card_not_working','card_payment_fee_charged','card_payment_not_recognised','card_payment_wrong_exchange_rate','card_swallowed','cash_withdrawal_charge','cash_withdrawal_not_recognised','change_pin','compromised_card','contactless_not_working','country_support','declined_card_payment','declined_cash_withdrawal','declined_transfer','direct_debit_payment_not_recognised','disposable_card_limits','edit_personal_details','exchange_charge','exchange_rate','exchange_via_app','extra_charge_on_statement','failed_transfer','fiat_currency_support','get_disposable_virtual_card','get_physical_card','getting_spare_card','getting_virtual_card','lost_or_stolen_card','lost_or_stolen_phone','order_physical_card','passcode_forgotten','pending_card_payment','pending_cash_withdrawal','pending_top_up','pending_transfer','pin_blocked','receiving_money','Refund_not_showing_up','request_refund','reverted_card_payment?','supported_cards_and_currencies','terminate_account','top_up_by_bank_transfer_charge','top_up_by_card_charge','top_up_by_cash_or_cheque','top_up_failed','top_up_limits','top_up_reverted','topping_up_by_card','transaction_charged_twice','transfer_fee_charged','transfer_into_account','transfer_not_received_by_recipient','transfer_timing','unable_to_verify_identity','verify_my_identity','verify_source_of_funds','verify_top_up','virtual_card_not_working','visa_or_mastercard','why_verify_identity','wrong_amount_of_cash_received','wrong_exchange_rate_for_cash_withdrawal']
Input should be 'activate_my_card', 'age_limit', 'apple_pay_or_google_pay', 'atm_support', 'automatic_top_up', 'balance_not_updated_after_bank_transfer', 'balance_not_updated_after_cheque_or_cash_deposit', 'beneficiary_not_allowed', 'cancel_transfer', 'card_about_to_expire', 'card_acceptance', 'card_arrival', 'card_delivery_estimate', 'card_linking', 'card_not_working', 'card_payment_fee_charged', 'card_payment_not_recognised', 'card_payment_wrong_exchange_rate', 'card_swallowed', 'cash_withdrawal_charge', 'cash_withdrawal_not_recognised', 'change_pin', 'compromised_card', 'contactless_not_working', 'country_support', 'declined_card_payment', 'declined_cash_withdrawal', 'declined_transfer', 'direct_debit_payment_not_recognised', 'disposable_card_limits', 'edit_personal_details', 'exchange_charge', 'exchange_rate', 'exchange_via_app', 'extra_charge_on_statement', 'failed_transfer', 'fiat_currency_support', 'get_disposable_virtual_card', 'get_physical_card', 'getting_spare_card', 'getting_virtual_card', 'lost_or_stolen_card', 'lost_or_stolen_phone', 'order_physical_card', 'passcode_forgotten', 'pending_card_payment', 'pending_cash_withdrawal', 'pending_top_up', 'pending_transfer', 'pin_blocked', 'receiving_money', 'Refund_not_showing_up', 'request_refund', 'reverted_card_payment?', 'supported_cards_and_currencies', 'terminate_account', 'top_up_by_bank_transfer_charge', 'top_up_by_card_charge', 'top_up_by_cash_or_cheque', 'top_up_failed', 'top_up_limits', 'top_up_reverted', 'topping_up_by_card', 'transaction_charged_twice', 'transfer_fee_charged', 'transfer_into_account', 'transfer_not_received_by_recipient', 'transfer_timing', 'unable_to_verify_identity', 'verify_my_identity', 'verify_source_of_funds', 'verify_top_up', 'virtual_card_not_working', 'visa_or_mastercard', 'why_verify_identity', 'wrong_amount_of_cash_received' or 'wrong_exchange_rate_for_cash_withdrawal' [type=literal_error, input_value=['fiat_currency_support'], input_type=list]
For further information visit https://errors.pydantic.dev/2.10/v/literal_error

2025/02/07 07:52:16 ERROR dspy.utils.parallelizer: Error processing item Example({'text': 'If I find a card I lost do I need to dispose of it? Or can I re-active the card and continue to use it?'}) (input_keys={'text'}): 1 validation error for literal['activate_my_card','age_limit','apple_pay_or_google_pay','atm_support','automatic_top_up','balance_not_updated_after_bank_transfer','balance_not_updated_after_cheque_or_cash_deposit','beneficiary_not_allowed','cancel_transfer','card_about_to_expire','card_acceptance','card_arrival','card_delivery_estimate','card_linking','card_not_working','card_payment_fee_charged','card_payment_not_recognised','card_payment_wrong_exchange_rate','card_swallowed','cash_withdrawal_charge','cash_withdrawal_not_recognised','change_pin','compromised_card','contactless_not_working','country_support','declined_card_payment','declined_cash_withdrawal','declined_transfer','direct_debit_payment_not_recognised','disposable_card_limits','edit_personal_details','exchange_charge','exchange_rate','exchange_via_app','extra_charge_on_statement','failed_transfer','fiat_currency_support','get_disposable_virtual_card','get_physical_card','getting_spare_card','getting_virtual_card','lost_or_stolen_card','lost_or_stolen_phone','order_physical_card','passcode_forgotten','pending_card_payment','pending_cash_withdrawal','pending_top_up','pending_transfer','pin_blocked','receiving_money','Refund_not_showing_up','request_refund','reverted_card_payment?','supported_cards_and_currencies','terminate_account','top_up_by_bank_transfer_charge','top_up_by_card_charge','top_up_by_cash_or_cheque','top_up_failed','top_up_limits','top_up_reverted','topping_up_by_card','transaction_charged_twice','transfer_fee_charged','transfer_into_account','transfer_not_received_by_recipient','transfer_timing','unable_to_verify_identity','verify_my_identity','verify_source_of_funds','verify_top_up','virtual_card_not_working','visa_or_mastercard','why_verify_identity','wrong_amount_of_cash_received','wrong_exchange_rate_for_cash_withdrawal']
Input should be 'activate_my_card', 'age_limit', 'apple_pay_or_google_pay', 'atm_support', 'automatic_top_up', 'balance_not_updated_after_bank_transfer', 'balance_not_updated_after_cheque_or_cash_deposit', 'beneficiary_not_allowed', 'cancel_transfer', 'card_about_to_expire', 'card_acceptance', 'card_arrival', 'card_delivery_estimate', 'card_linking', 'card_not_working', 'card_payment_fee_charged', 'card_payment_not_recognised', 'card_payment_wrong_exchange_rate', 'card_swallowed', 'cash_withdrawal_charge', 'cash_withdrawal_not_recognised', 'change_pin', 'compromised_card', 'contactless_not_working', 'country_support', 'declined_card_payment', 'declined_cash_withdrawal', 'declined_transfer', 'direct_debit_payment_not_recognised', 'disposable_card_limits', 'edit_personal_details', 'exchange_charge', 'exchange_rate', 'exchange_via_app', 'extra_charge_on_statement', 'failed_transfer', 'fiat_currency_support', 'get_disposable_virtual_card', 'get_physical_card', 'getting_spare_card', 'getting_virtual_card', 'lost_or_stolen_card', 'lost_or_stolen_phone', 'order_physical_card', 'passcode_forgotten', 'pending_card_payment', 'pending_cash_withdrawal', 'pending_top_up', 'pending_transfer', 'pin_blocked', 'receiving_money', 'Refund_not_showing_up', 'request_refund', 'reverted_card_payment?', 'supported_cards_and_currencies', 'terminate_account', 'top_up_by_bank_transfer_charge', 'top_up_by_card_charge', 'top_up_by_cash_or_cheque', 'top_up_failed', 'top_up_limits', 'top_up_reverted', 'topping_up_by_card', 'transaction_charged_twice', 'transfer_fee_charged', 'transfer_into_account', 'transfer_not_received_by_recipient', 'transfer_timing', 'unable_to_verify_identity', 'verify_my_identity', 'verify_source_of_funds', 'verify_top_up', 'virtual_card_not_working', 'visa_or_mastercard', 'why_verify_identity', 'wrong_amount_of_cash_received' or 'wrong_exchange_rate_for_cash_withdrawal' [type=literal_error, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.10/v/literal_error
Stack trace:
Traceback (most recent call last):
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/parallelizer.py", line 47, in wrapped
return function(item)
^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/evaluate/evaluate.py", line 149, in process_item
prediction = program(**example.inputs())
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap_finetune.py", line 193, in wrapped_program
return program(**kwargs), dspy.settings.trace.copy()
^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/primitives/program.py", line 22, in call
return self.forward(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/chain_of_thought.py", line 20, in forward
return self.predict(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/predict.py", line 67, in call
return self.forward(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/predict.py", line 97, in forward
completions = adapter(lm, lm_kwargs=config, signature=signature, demos=demos, inputs=kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/base.py", line 45, in call
return JSONAdapter()(lm, lm_kwargs, signature, demos, inputs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 61, in call
value = self.parse(signature, output)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 100, in parse
fields[k] = parse_value(v, signature.output_fields[k].annotation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 139, in parse_value
return TypeAdapter(annotation).validate_python(parsed_value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/pydantic/type_adapter.py", line 412, in validate_python
return self.validator.validate_python(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for literal['activate_my_card','age_limit','apple_pay_or_google_pay','atm_support','automatic_top_up','balance_not_updated_after_bank_transfer','balance_not_updated_after_cheque_or_cash_deposit','beneficiary_not_allowed','cancel_transfer','card_about_to_expire','card_acceptance','card_arrival','card_delivery_estimate','card_linking','card_not_working','card_payment_fee_charged','card_payment_not_recognised','card_payment_wrong_exchange_rate','card_swallowed','cash_withdrawal_charge','cash_withdrawal_not_recognised','change_pin','compromised_card','contactless_not_working','country_support','declined_card_payment','declined_cash_withdrawal','declined_transfer','direct_debit_payment_not_recognised','disposable_card_limits','edit_personal_details','exchange_charge','exchange_rate','exchange_via_app','extra_charge_on_statement','failed_transfer','fiat_currency_support','get_disposable_virtual_card','get_physical_card','getting_spare_card','getting_virtual_card','lost_or_stolen_card','lost_or_stolen_phone','order_physical_card','passcode_forgotten','pending_card_payment','pending_cash_withdrawal','pending_top_up','pending_transfer','pin_blocked','receiving_money','Refund_not_showing_up','request_refund','reverted_card_payment?','supported_cards_and_currencies','terminate_account','top_up_by_bank_transfer_charge','top_up_by_card_charge','top_up_by_cash_or_cheque','top_up_failed','top_up_limits','top_up_reverted','topping_up_by_card','transaction_charged_twice','transfer_fee_charged','transfer_into_account','transfer_not_received_by_recipient','transfer_timing','unable_to_verify_identity','verify_my_identity','verify_source_of_funds','verify_top_up','virtual_card_not_working','visa_or_mastercard','why_verify_identity','wrong_amount_of_cash_received','wrong_exchange_rate_for_cash_withdrawal']
Input should be 'activate_my_card', 'age_limit', 'apple_pay_or_google_pay', 'atm_support', 'automatic_top_up', 'balance_not_updated_after_bank_transfer', 'balance_not_updated_after_cheque_or_cash_deposit', 'beneficiary_not_allowed', 'cancel_transfer', 'card_about_to_expire', 'card_acceptance', 'card_arrival', 'card_delivery_estimate', 'card_linking', 'card_not_working', 'card_payment_fee_charged', 'card_payment_not_recognised', 'card_payment_wrong_exchange_rate', 'card_swallowed', 'cash_withdrawal_charge', 'cash_withdrawal_not_recognised', 'change_pin', 'compromised_card', 'contactless_not_working', 'country_support', 'declined_card_payment', 'declined_cash_withdrawal', 'declined_transfer', 'direct_debit_payment_not_recognised', 'disposable_card_limits', 'edit_personal_details', 'exchange_charge', 'exchange_rate', 'exchange_via_app', 'extra_charge_on_statement', 'failed_transfer', 'fiat_currency_support', 'get_disposable_virtual_card', 'get_physical_card', 'getting_spare_card', 'getting_virtual_card', 'lost_or_stolen_card', 'lost_or_stolen_phone', 'order_physical_card', 'passcode_forgotten', 'pending_card_payment', 'pending_cash_withdrawal', 'pending_top_up', 'pending_transfer', 'pin_blocked', 'receiving_money', 'Refund_not_showing_up', 'request_refund', 'reverted_card_payment?', 'supported_cards_and_currencies', 'terminate_account', 'top_up_by_bank_transfer_charge', 'top_up_by_card_charge', 'top_up_by_cash_or_cheque', 'top_up_failed', 'top_up_limits', 'top_up_reverted', 'topping_up_by_card', 'transaction_charged_twice', 'transfer_fee_charged', 'transfer_into_account', 'transfer_not_received_by_recipient', 'transfer_timing', 'unable_to_verify_identity', 'verify_my_identity', 'verify_source_of_funds', 'verify_top_up', 'virtual_card_not_working', 'visa_or_mastercard', 'why_verify_identity', 'wrong_amount_of_cash_received' or 'wrong_exchange_rate_for_cash_withdrawal' [type=literal_error, input_value=None, input_type=NoneType]
For further information visit https://errors.pydantic.dev/2.10/v/literal_error

Traceback (most recent call last):
File "/dspy/examples/dspy-classification-finetuning.py", line 44, in
classify_ft = optimizer.compile(student_classify, teacher=teacher_classify, trainset=unlabeled_trainset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap_finetune.py", line 71, in compile
trace_data += bootstrap_trace_data(program=teacher, dataset=trainset, metric=self.metric, num_threads=self.num_threads)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap_finetune.py", line 195, in bootstrap_trace_data
_, outputs = evaluator(wrapped_program, metric=wrapped_metric)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/evaluate/evaluate.py", line 160, in call
results = executor.execute(process_item, devset)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/parallelizer.py", line 39, in execute
return self._execute_multi_thread(wrapped_function, data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/parallelizer.py", line 180, in _execute_multi_thread
index, result = future.result()
^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
File "/opt/homebrew/Cellar/[email protected]/3.12.2_1/Frameworks/Python.framework/Versions/3.12/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/parallelizer.py", line 158, in cancellable_function
return index, function(item)
^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/parallelizer.py", line 54, in wrapped
raise e
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/parallelizer.py", line 47, in wrapped
return function(item)
^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/evaluate/evaluate.py", line 149, in process_item
prediction = program(**example.inputs())
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/teleprompt/bootstrap_finetune.py", line 193, in wrapped_program
return program(**kwargs), dspy.settings.trace.copy()
^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/primitives/program.py", line 22, in call
return self.forward(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/chain_of_thought.py", line 20, in forward
return self.predict(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/predict.py", line 67, in call
return self.forward(**kwargs)
^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/predict/predict.py", line 97, in forward
completions = adapter(lm, lm_kwargs=config, signature=signature, demos=demos, inputs=kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/base.py", line 45, in call
return JSONAdapter()(lm, lm_kwargs, signature, demos, inputs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 61, in call
value = self.parse(signature, output)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/utils/callback.py", line 234, in wrapper
return fn(instance, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 100, in parse
fields[k] = parse_value(v, signature.output_fields[k].annotation)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/dspy/adapters/json_adapter.py", line 139, in parse_value
return TypeAdapter(annotation).validate_python(parsed_value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/dspy/examples/.venv/lib/python3.12/site-packages/pydantic/type_adapter.py", line 412, in validate_python
return self.validator.validate_python(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for literal['activate_my_card','age_limit','apple_pay_or_google_pay','atm_support','automatic_top_up','balance_not_updated_after_bank_transfer','balance_not_updated_after_cheque_or_cash_deposit','beneficiary_not_allowed','cancel_transfer','card_about_to_expire','card_acceptance','card_arrival','card_delivery_estimate','card_linking','card_not_working','card_payment_fee_charged','card_payment_not_recognised','card_payment_wrong_exchange_rate','card_swallowed','cash_withdrawal_charge','cash_withdrawal_not_recognised','change_pin','compromised_card','contactless_not_working','country_support','declined_card_payment','declined_cash_withdrawal','declined_transfer','direct_debit_payment_not_recognised','disposable_card_limits','edit_personal_details','exchange_charge','exchange_rate','exchange_via_app','extra_charge_on_statement','failed_transfer','fiat_currency_support','get_disposable_virtual_card','get_physical_card','getting_spare_card','getting_virtual_card','lost_or_stolen_card','lost_or_stolen_phone','order_physical_card','passcode_forgotten','pending_card_payment','pending_cash_withdrawal','pending_top_up','pending_transfer','pin_blocked','receiving_money','Refund_not_showing_up','request_refund','reverted_card_payment?','supported_cards_and_currencies','terminate_account','top_up_by_bank_transfer_charge','top_up_by_card_charge','top_up_by_cash_or_cheque','top_up_failed','top_up_limits','top_up_reverted','topping_up_by_card','transaction_charged_twice','transfer_fee_charged','transfer_into_account','transfer_not_received_by_recipient','transfer_timing','unable_to_verify_identity','verify_my_identity','verify_source_of_funds','verify_top_up','virtual_card_not_working','visa_or_mastercard','why_verify_identity','wrong_amount_of_cash_received','wrong_exchange_rate_for_cash_withdrawal']
Input should be 'activate_my_card', 'age_limit', 'apple_pay_or_google_pay', 'atm_support', 'automatic_top_up', 'balance_not_updated_after_bank_transfer', 'balance_not_updated_after_cheque_or_cash_deposit', 'beneficiary_not_allowed', 'cancel_transfer', 'card_about_to_expire', 'card_acceptance', 'card_arrival', 'card_delivery_estimate', 'card_linking', 'card_not_working', 'card_payment_fee_charged', 'card_payment_not_recognised', 'card_payment_wrong_exchange_rate', 'card_swallowed', 'cash_withdrawal_charge', 'cash_withdrawal_not_recognised', 'change_pin', 'compromised_card', 'contactless_not_working', 'country_support', 'declined_card_payment', 'declined_cash_withdrawal', 'declined_transfer', 'direct_debit_payment_not_recognised', 'disposable_card_limits', 'edit_personal_details', 'exchange_charge', 'exchange_rate', 'exchange_via_app', 'extra_charge_on_statement', 'failed_transfer', 'fiat_currency_support', 'get_disposable_virtual_card', 'get_physical_card', 'getting_spare_card', 'getting_virtual_card', 'lost_or_stolen_card', 'lost_or_stolen_phone', 'order_physical_card', 'passcode_forgotten', 'pending_card_payment', 'pending_cash_withdrawal', 'pending_top_up', 'pending_transfer', 'pin_blocked', 'receiving_money', 'Refund_not_showing_up', 'request_refund', 'reverted_card_payment?', 'supported_cards_and_currencies', 'terminate_account', 'top_up_by_bank_transfer_charge', 'top_up_by_card_charge', 'top_up_by_cash_or_cheque', 'top_up_failed', 'top_up_limits', 'top_up_reverted', 'topping_up_by_card', 'transaction_charged_twice', 'transfer_fee_charged', 'transfer_into_account', 'transfer_not_received_by_recipient', 'transfer_timing', 'unable_to_verify_identity', 'verify_my_identity', 'verify_source_of_funds', 'verify_top_up', 'virtual_card_not_working', 'visa_or_mastercard', 'why_verify_identity', 'wrong_amount_of_cash_received' or 'wrong_exchange_rate_for_cash_withdrawal' [type=literal_error, input_value='card_delivery', input_type=str]
For further information visit https://errors.pydantic.dev/2.10/v/literal_error
Average Metric: 11.00 / 11 (100.0%): 2%|▏ | 11/500 [00:00<00:20, 23.36it/s]

Steps to reproduce

I took the code from https://dspy.ai/tutorials/classification_finetuning/ . Please note that I have changed teacher_lm and student lm. This error is coming at optimizer.compile line.
My pydantic_core version is 2.27.2

code:

import dspy
import random
from dspy.datasets import DataLoader
from datasets import load_dataset

dspy.settings.experimental = True

Load the Banking77 dataset.

CLASSES = load_dataset("PolyAI/banking77", split="train", trust_remote_code=True).features['label'].names

kwargs = dict(fields=("text", "label"), input_keys=("text",), split="train", trust_remote_code=True)

raw_data = [
dspy.Example(x, label=CLASSES[x.label]).with_inputs("text")
for x in DataLoader().from_huggingface(dataset_name="PolyAI/banking77", **kwargs)[:1000]
]

random.Random(0).shuffle(raw_data)

print(len(CLASSES), CLASSES[:10])

unlabeled_trainset = [dspy.Example(text=x.text).with_inputs("text") for x in raw_data[:500]]

print(unlabeled_trainset[0])

from typing import Literal

classify = dspy.ChainOfThought(f"text -> label: Literal{CLASSES}")

from dspy.clients.lm_local import LocalProvider

student_lm_name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B"
student_lm = dspy.LM(model=f"openai/local:{student_lm_name}", provider=LocalProvider(), max_tokens=2000)
teacher_lm = dspy.LM('ollama_chat/mistral', api_base='http://localhost:11434', api_key='')

student_classify = classify.deepcopy()
student_classify.set_lm(student_lm)

teacher_classify = classify.deepcopy()
teacher_classify.set_lm(teacher_lm)

optimizer = dspy.BootstrapFinetune(num_threads=16) # if you do have labels, pass metric=your_metric here!
classify_ft = optimizer.compile(student_classify, teacher=teacher_classify, trainset=unlabeled_trainset)

classify_ft_lm = classify_ft.get_lm()
classify_ft_lm.launch()

pred = classify_ft(text="I didn't receive my money earlier and it says the transaction is still in progress. Can you fix it?")

print(pred)

devset = raw_data[500:600]
print(devset[0])

metric = (lambda x, y, trace=None: x.label == y.label)
evaluate = dspy.Evaluate(devset=devset, metric=metric, display_progress=True, display_table=5, num_threads=16)

evaluate(classify_ft)

classify_ft.get_lm().kill()

optimizer = dspy.BootstrapFinetune(num_threads=16, metric=metric)
classify_ft = optimizer.compile(student_classify, teacher=teacher_classify, trainset=raw_data[:500])

classify_ft.get_lm().launch()

evaluate(classify_ft)

classify_ft(text="why hasnt my card come in yet?")
print(dspy.inspect_history())

DSPy version

2.6.2

@khankamranali khankamranali added the bug Something isn't working label Feb 7, 2025
@okhat
Copy link
Collaborator

okhat commented Feb 7, 2025

That happens yeah. The errors should not break the code though I think?

@khankamranali
Copy link
Author

Code exits after this error at optimizer.compile line. next line classify_ft_lm = classify_ft.get_lm() is not executed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants