首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在rasa2.0中使用http parse post请求解析消息时指定型号名称?

在 Rasa 2.0 中,可以使用 HTTP Parse 插件来解析 POST 请求中的消息,并指定实体的型号名称。下面是如何实现的步骤:

  1. 首先,确保已经安装了 Rasa 2.0 版本,并且已经创建了一个 Rasa 项目。
  2. 在 Rasa 项目的根目录下创建一个名为 endpoints.yml 的文件,如果已经存在则跳过此步骤。
  3. endpoints.yml 文件中添加以下内容:
代码语言:txt
复制
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 服务器的地址和请求方式。

  1. 在 Rasa 项目的根目录下创建一个名为 credentials.yml 的文件,如果已经存在则跳过此步骤。
  2. credentials.yml 文件中添加以下内容:
代码语言:txt
复制
http:
  url: "http://localhost:5005/model/parse"
  method: "POST"
  headers:
    Content-Type: "application/json"

上述配置中,url 指定了 Rasa NLU 服务器的地址,method 指定了请求方式。

  1. 在 Rasa 项目的根目录下的 config.yml 文件中添加以下内容:
代码语言:txt
复制
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 指定了请求方式。

  1. 在 Rasa 项目的根目录下的 actions.py 文件中添加以下内容:
代码语言:txt
复制
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 方法中可以获取到消息文本和指定的型号名称,你可以根据需要进行相应的处理。

  1. 在 Rasa 项目的根目录下的 domain.yml 文件中添加以下内容:
代码语言:txt
复制
actions:
  - action_parse_message

上述配置中,action_parse_message 是自定义的动作名称,将其添加到 actions 列表中。

现在,你可以使用 HTTP Parse 插件来解析 POST 请求中的消息,并指定型号名称。当 Rasa 接收到消息时,会触发 action_parse_message 动作,并将消息文本和指定的型号名称传递给该动作进行处理。在动作中,你可以根据指定的型号名称进行相应的逻辑处理,并通过 dispatcher.utter_message 方法返回响应消息。

请注意,上述代码中的地址和端口号仅作为示例,你需要根据实际情况进行相应的修改。此外,还可以根据需要添加其他的 Rasa 组件和自定义动作来实现更复杂的功能。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券