Please do help me because I already exhausted to check and debug… When I ran Rasa shell, the actions are running smoothly, but when I Connect it to my LINE bot, it only responds to utter_greet but not for my customize action. Thank you
Actions.py import logging from typing import Any, Text, Dict, List from rasa_sdk import Action, Tracker from rasa_sdk.executor import CollectingDispatcher import pymysql
Configure logging at the start of your script
logging.basicConfig(level=logging.DEBUG) # Change to DEBUG to get even more detailed logs logger = logging.getLogger(name)
class ActionGetRearWheel(Action): def name(self) → Text: return “action_get_rearwheel”
def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
logger.debug("ActionGetRearWheel called.")
flybar_number = tracker.get_slot("flybar_number")
logger.debug(f"Retrieved flybar_number: {flybar_number}")
if flybar_number is not None:
try:
flybar_number = int(flybar_number)
logger.debug(f"Converted flybar_number to int: {flybar_number}")
except ValueError:
logger.error("Flybar number is not a valid integer.")
dispatcher.utter_message(text="Flybar number must be a valid number.")
return []
db_config = {
"host": "",
"user": "",
"password": "",
"database": "",
}
try:
with pymysql.connect(**db_config) as connection:
logger.debug("Connected to the database.")
with connection.cursor(pymysql.cursors.DictCursor) as cursor:
query = """
SELECT Rear_Wheel_1, Rear_Wheel_2, Rear_Wheel_3
FROM amx01_data
WHERE Flybar_Number = %s
ORDER BY Maintenance_Date DESC
LIMIT 1
"""
cursor.execute(query, (flybar_number,))
result = cursor.fetchone()
if result:
utter_message = (
f"The last rear wheel replacement dates for flybar number {flybar_number} are: "
f"Rear Wheel 1: {result['Rear_Wheel_1'].strftime('%Y-%m-%d')}, "
f"Rear Wheel 2: {result['Rear_Wheel_2'].strftime('%Y-%m-%d')}, "
f"Rear Wheel 3: {result['Rear_Wheel_3'].strftime('%Y-%m-%d')}."
)
logger.debug(f"Query result: {result}")
else:
utter_message = f"No data found for flybar number {flybar_number}."
logger.debug("Query returned no results.")
logger.info(f"Sending message: {utter_message}")
dispatcher.utter_message(text=utter_message)
except Exception as e:
logger.error(f"An error occurred: {e}")
dispatcher.utter_message(text=f"An error occurred: {e}")
return []
Credentials line_channel.LineInput: channel_secret: “” channel_access_token: “”