Add banking intents mapping module
This commit introduces a new Python module, banking_intents.py, which maps intent labels (0-76) to their corresponding intent names for the Banking77 application. The module includes functions to retrieve intent names by label and vice versa, along with a utility to display all intents. This addition enhances the application's ability to handle various banking-related queries effectively.
This commit is contained in:
148
week6/community-contributions/hopeogbons/banking_intents.py
Normal file
148
week6/community-contributions/hopeogbons/banking_intents.py
Normal file
@@ -0,0 +1,148 @@
|
||||
"""
|
||||
Banking77 Intent Mapping
|
||||
Maps label numbers (0-76) to intent names
|
||||
"""
|
||||
|
||||
INTENT_LABELS = [
|
||||
"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"
|
||||
]
|
||||
|
||||
|
||||
def get_intent(label_number):
|
||||
"""
|
||||
Get intent name from label number.
|
||||
|
||||
Args:
|
||||
label_number (int): Label from 0 to 76
|
||||
|
||||
Returns:
|
||||
str: Intent name
|
||||
|
||||
Example:
|
||||
>>> get_intent(0)
|
||||
'activate_my_card'
|
||||
>>> get_intent(25)
|
||||
'declined_card_payment'
|
||||
"""
|
||||
if 0 <= label_number <= 76:
|
||||
return INTENT_LABELS[label_number]
|
||||
else:
|
||||
raise ValueError(f"Label must be between 0 and 76, got {label_number}")
|
||||
|
||||
|
||||
def get_label(intent_name):
|
||||
"""
|
||||
Get label number from intent name.
|
||||
|
||||
Args:
|
||||
intent_name (str): Intent name
|
||||
|
||||
Returns:
|
||||
int: Label number (0-76)
|
||||
|
||||
Example:
|
||||
>>> get_label('activate_my_card')
|
||||
0
|
||||
>>> get_label('declined_card_payment')
|
||||
25
|
||||
"""
|
||||
try:
|
||||
return INTENT_LABELS.index(intent_name)
|
||||
except ValueError:
|
||||
raise ValueError(f"Intent '{intent_name}' not found in labels")
|
||||
|
||||
|
||||
# Quick access
|
||||
def show_all_intents():
|
||||
"""Display all 77 intents with their labels"""
|
||||
for i, intent in enumerate(INTENT_LABELS):
|
||||
print(f"{i}\t{intent}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Test the functions
|
||||
print("Testing get_intent:")
|
||||
print(f"Label 0: {get_intent(0)}")
|
||||
print(f"Label 25: {get_intent(25)}")
|
||||
print(f"Label 76: {get_intent(76)}")
|
||||
|
||||
print("\nTesting get_label:")
|
||||
print(f"'activate_my_card': {get_label('activate_my_card')}")
|
||||
print(f"'declined_card_payment': {get_label('declined_card_payment')}")
|
||||
|
||||
Reference in New Issue
Block a user