我最近开始研究 rasa。我的聊天机器人很简单。每当用户提出问题时,机器人都会从sqlite3数据库中过滤数据并返回结果。我添加了训练示例,为流程创建了故事,并编写了一个自定义操作来过滤数据库中的数据。对于自定义操作,我指定了一个端点并启动了操作服务器。到目前为止,这是我的代码
动作.py
from typing import Any, Text, Dict, List
from rasa_core_sdk import Action, Tracker
import sqlite3
class TestAction(Action):
def name(self) -> Text:
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)
端点.yml
action_endpoint:
url: "http://localhost:5055/"
为了运行端点,我在单独的终端窗口中运行了以下代码
python -m rasa_sdk --actions actions
但是当我使用rasa shell --endpoints endpoints.yml基于此链接的命令运行程序时,出现以下错误
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.
这是我的动作端点服务器返回的
127.0.0.1 - - [2019-09-09 11:07:23] "POST / HTTP/1.1" 404 342 0.005443
我不确定,我做错了什么。我检查了代码 actions.py 文件。我似乎没有在那里犯任何错误。
眼眸繁星
小唯快跑啊
相关分类