2 回答
TA贡献1873条经验 获得超9个赞
您收到Exception: No registered Action found for name 'action_testAction'.错误的原因是因为您在运行操作服务器时出现第一个异常,即因为:
rasa.core.processor - Encountered an exception while running action 'action_testAction'. Bot will continue, but the actions events are lost. Please check the logs of your action server for more information.
尝试debug mode使用调试标志运行操作服务器,以查看代码中的问题所在-vv。rasa run actions -vv(问题可能是因为您可能没有导入 Action 或 sqlite3 或其他任何东西)。
希望有帮助。
编辑:
确保action文件名匹配。
运行rasa run actions --actions action -vv产量
(chatbot) PS C:\Users\user\Documents\Python\rasa-test> python -m rasa_sdk --actions action -vv
2019-09-09 21:02:56 INFO rasa_sdk.endpoint - Starting action endpoint server...
2019-09-09 21:02:56 INFO rasa_sdk.executor - Registered function for 'action_testAction'.
2019-09-09 21:02:56 INFO rasa_sdk.endpoint - Action endpoint is up and running. on ('0.0.0.0', 5055)
action.py
import sqlite3
from rasa_sdk import Action
class TestAction(Action):
def name(self):
return "action_testAction"
def run(self, dispatcher, tracker, domain):
UserId = tracker.get_slot('UserID')
query = 'SELECT User_name FROM sales WHERE UserID=?'
conn = sqlite3.connect("test.db")
cursor = conn.cursor()
cursor.execute(query, (UserId,))
name = cursor.fetchall()
msg = 'Hello {}!'.format(name)
dispatcher.utter_message(msg)
TA贡献1863条经验 获得超2个赞
我遇到了这个错误,简单的解决方案是在 actions.py 文件的下面部分中观察错误和代码。
class TestAction(Action):
def name(self) -> Text:
return "action_testAction"
类的名称是'TestAction','name'函数的返回值是'action_testAction'。所以错误是 - 您在域文件中使用的操作的名称与此类中此“名称”方法返回的名称不匹配。在 NLU 训练数据和域文件中使用此“action_testAction”。
添加回答
举报