我正在使用RASA masterclass youtube频道学习Rasa。 https://www.youtube.com/channel/UCJ0V6493mLvqdiVwOKWBODQ
在加载操作之前,所有操作一直有效。每次我在命令提示符下使用rasa run操作(两个操作中的第一个)时,程序都会卡住,我必须手动将其杀死。当我使用rasa shell --endpointsendpoints.yml时,bot可以正常工作,但是当我添加自定义操作时,服务器不断返回的结果无法与底部示例中的本地主机连接。问题是如何解决这个问题。
*请询问其他信息
我的action.py如下所示:
from typing import Any, Text, Dict, List
from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher
from rasa_sdk.events import SlotSet
class ActionFacilitySearch(Action):
def name(self) -> Text:
return "action_facility_search"
def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
facility = tracker.get_slot("facility_type")
address = "300 Hyde St, San Francisco"
dispatcher.utter_message("Here is the address of the {}:{}".format(facility, address))
return []
在domain.yml中,关于我的操作部分;
actions:
- utter_greet
- utter_cheer_up
- utter_did_that_help
- utter_happy
- utter_goodbye
- utter_iamabot
- utter_ask_location
- action_facility_search
在endpoints.yml中,大多数已被删除,但有效位是:
action_endpoint:
url: "http://localhost:9000/webhook"
答案 0 :(得分:0)
请不要使用action_endpoint的任何其他端口更改endpoints.yml
请检查5055端口是否工作正常。
action_endpoint:
url: "http://localhost:5055/webhook"
您的操作服务器在5055端口上运行。如果要设置9000,请从rasa核心后端请求中进行更改。
答案 1 :(得分:0)
最后很简单的答案。我需要运行两个命令窗口。第一个用于:
rasa run actions
然后为其中一个打开第二个窗口
rasa x
或
rasa shell
然后按预期工作。
答案 2 :(得分:0)
您的自定义操作服务器似乎无法与endpoints.yml中提到的端点服务器连接
正在运行的actions.py提供端口号作为rasa运行操作-p端口号
确保您在此处提供的端口号已在endpoints.yml中提及
答案 3 :(得分:0)
我通过使用以下命令来解决
Tools > Import & export settings > Reset data
然后打开另一个窗口:
rasa run actions
然后按预期工作。
答案 4 :(得分:0)
通过查看给定的图像,我假设您想在端口 9000 上运行操作服务器。
如果您确实想在端口 9000 上运行操作服务器,则需要进行以下更改:
端点.yml:
action_endpoint:
url: "http://localhost:9000/webhook"
运行动作服务器的命令:
rasa run actions -p 9000 --debug
用户 --debug
选项也检查操作文件中是否存在问题。