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