Rasa课程、Rasa培训、Rasa面试系列之: Rasa Version 3.x NLG Servers
\
Version: 3.x
NLG 服务器
重新训练机器人只是为了更改文本副本对于某些工作流程来说可能不是最理想的。这就是为什么 Rasa Open Source 还允许您将响应生成外包并将其与对话学习分开。助手仍将学习预测动作并根据过去的对话对用户输入做出反应,但它发送回给用户的响应将在 Rasa Open Source 之外生成。
当助手想要向用户发送消息时,它将调用您定义的外部 HTTP 服务器。
\
响应请求#
请求格式#
当您的模型预测您的机器人应该向用户发送响应时,它会向您的服务器发送请求,为您提供选择或生成响应所需的信息。发送到 NLG 端点的请求正文的POST结构如下:
{ "response":"utter_what_can_do", "arguments":{ }, "tracker":{ "sender_id":"user_0", "slots":{ }, "latest_message":{ "intent":{ "id":3014457480322877053, "name":"greet", "confidence":0.9999994039535522 }, "entities":[ ], "text":"Hello", "message_id":"94838d6f49ff4366b254b6f6d23a90cf", "metadata":{ }, "intent_ranking":[ { "id":3014457480322877053, "name":"greet", "confidence":0.9999994039535522 }, { "id":8842445304628198686, "name":"ask_forget_reminders", "confidence":5.675940428773174e-07 }, { "id":-2566831912141022859, "name":"bye", "confidence":3.418941929567154e-08 }, { "id":8340513453672591403, "name":"ask_id", "confidence":2.5274500714544956e-08 }, { "id":5822154213939471096, "name":"ask_remind_call", "confidence":2.4177523982871207e-08 } ] }, "latest_event_time":1599476297.694504, "followup_action":null, "paused":false, "events":[ { "event":"action", "timestamp":1599476297.68784, "name":"action_session_start", "policy":null, "confidence":null }, { "event":"session_started", "timestamp":1599476297.6878452 }, { "event":"action", "timestamp":1599476297.6878562, "name":"action_listen", "policy":null, "confidence":null }, { "event":"user", "timestamp":1599476297.694504, "text":"Hello", "parse_data":{ "intent":{ "id":3014457480322877053, "name":"greet", "confidence":0.9999994039535522 }, "entities":[ ], "text":"Hello", "message_id":"94838d6f49ff4366b254b6f6d23a90cf", "metadata":{ }, "intent_ranking":[ { "id":3014457480322877053, "name":"greet", "confidence":0.9999994039535522 }, { "id":8842445304628198686, "name":"ask_forget_reminders", "confidence":5.675940428773174e-07 }, { "id":-2566831912141022859, "name":"bye", "confidence":3.418941929567154e-08 }, { "id":8340513453672591403, "name":"ask_id", "confidence":2.5274500714544956e-08 }, { "id":5822154213939471096, "name":"ask_remind_call", "confidence":2.4177523982871207e-08 } ] }, "input_channel":"rest", "message_id":"94838d6f49ff4366b254b6f6d23a90cf", "metadata":{ } } ], "latest_input_channel":"rest", "active_loop":{ }, "latest_action_name":"action_listen" }, "channel":{ "name":"collector" }} |
---|
\
以下是发布请求中高级键的概述
KEY | 描述 |
---|---|
response | Rasa Open Source 预测的响应的名称。 |
arguments | 可以由自定义操作提供的可选关键字参数。 |
tracker | 包含整个对话历史的字典。 |
channel | 此消息将发送到的输出通道。 |
\
您可以使用任何或所有这些信息来决定如何生成您的回复。
响应格式#
端点需要使用生成的响应进行响应。然后 Rasa 会将此响应发送回给用户。
以下是响应的可能键及其(空)类型:
\
\
您可以选择仅提供文本,也可以选择提供不同类型的丰富响应的组合。就像域文件中定义的响应一样,响应至少需要包含text或者custom是一个有效的响应。从故事中调用响应:如果您使用外部 NLG 服务,则无需responses在域中指定响应。但是,如果您想直接从您的故事中调用它们,您仍然需要将响应名称添加到域的actions列表中。
配置服务器 URL
要告诉 Rasa Open Source 在哪里可以找到您的 NLG 服务器,请将 URL 添加到您的endpoints.yml:
\
\
如果您的 NLG 服务器受到保护并且 Rasa Open Source 需要身份验证才能访问它,您可以在端点中配置身份验证:
\
\
\
\
\
\
\
\
\
\
Gavin大咖课程信息分享:
NLP on Transformers高手之路137课(模型、算法、论文、源码、案例 + 1年答疑)
Rasa 3.x 源码高手之路:系统架构、内核算法、源码实现详解