在 Rasa 2.0 中,可以使用 HTTP Parse 插件来解析 POST 请求中的消息,并指定实体的型号名称。下面是如何实现的步骤:
endpoints.yml
的文件,如果已经存在则跳过此步骤。endpoints.yml
文件中添加以下内容:action_endpoint:
url: "http://localhost:5055/webhook"
nlu:
url: "http://localhost:5005/model/parse"
request_method: "POST"
headers:
Content-Type: "application/json"
上述配置中,action_endpoint
指定了 Rasa Action Server 的地址,nlu
指定了 Rasa NLU 服务器的地址和请求方式。
credentials.yml
的文件,如果已经存在则跳过此步骤。credentials.yml
文件中添加以下内容:http:
url: "http://localhost:5005/model/parse"
method: "POST"
headers:
Content-Type: "application/json"
上述配置中,url
指定了 Rasa NLU 服务器的地址,method
指定了请求方式。
config.yml
文件中添加以下内容:pipeline:
- name: "WhitespaceTokenizer"
- name: "RegexFeaturizer"
- name: "CRFEntityExtractor"
- name: "EntitySynonymMapper"
- name: "CountVectorsFeaturizer"
- name: "CountVectorsFeaturizer"
analyzer: "char_wb"
min_ngram: 1
max_ngram: 4
- name: "DIETClassifier"
epochs: 100
- name: "EntityExtractor_http"
url: "http://localhost:5005/model/parse"
method: "POST"
headers:
Content-Type: "application/json"
上述配置中,EntityExtractor_http
是自定义的组件名称,url
指定了 Rasa NLU 服务器的地址,method
指定了请求方式。
actions.py
文件中添加以下内容:from typing import Any, Text, Dict, List
from rasa_sdk import Action, Tracker
from rasa_sdk.executor import CollectingDispatcher
class ActionParseMessage(Action):
def name(self) -> Text:
return "action_parse_message"
def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:
message = tracker.latest_message.get("text")
model_name = tracker.latest_message.get("model_name")
# 在这里可以根据指定的型号名称进行相应的处理
dispatcher.utter_message(text=f"收到消息:{message},型号名称:{model_name}")
return []
上述代码中,ActionParseMessage
是自定义的动作名称,run
方法中可以获取到消息文本和指定的型号名称,你可以根据需要进行相应的处理。
domain.yml
文件中添加以下内容:actions:
- action_parse_message
上述配置中,action_parse_message
是自定义的动作名称,将其添加到 actions
列表中。
现在,你可以使用 HTTP Parse 插件来解析 POST 请求中的消息,并指定型号名称。当 Rasa 接收到消息时,会触发 action_parse_message
动作,并将消息文本和指定的型号名称传递给该动作进行处理。在动作中,你可以根据指定的型号名称进行相应的逻辑处理,并通过 dispatcher.utter_message
方法返回响应消息。
请注意,上述代码中的地址和端口号仅作为示例,你需要根据实际情况进行相应的修改。此外,还可以根据需要添加其他的 Rasa 组件和自定义动作来实现更复杂的功能。
领取专属 10元无门槛券
手把手带您无忧上云