0

我想将RASA 响应选择器用于 QnA 系统,其中答案是多行文本,而不仅仅是单行。假设允许答案的常见问题解答系统是文档段落。

以这个 Q/A 示例为例,其中问题是单行的:

 How to follow people on Twitter?

相应的答案(来自 twitter FAQ 的真实示例)是一段:

 1. Find a Tweet from the account you’d like to follow. 
 2. Hover your mouse over their name.
 3. Click the  **Follow**  button.

 OR 

 1. Navigate to a Tweet from the account you’d like to follow. 
 2. Tap the  icon located at the top of the Tweet.
 3. Tap  **Follow**  from the selection menu.

如何使用data/responses.md响应选择器降价格式管理此复合/多行答案?

据我所知(请告诉我我错了),现在在 RASA 我只能用 1 行来回答。如果这是真的,我发现的唯一解决方案是\n在文本中显式插入一个换行符。所以上面提到的例子可以这样翻译:

(venv) $ cat data/responses.md

## ask languages
* faq/ask_how_to_follow_people_on_twitter
  - 1. Find a Tweet from the account you’d like to follow.\n     2. Hover your mouse over their name.\n     3. Click the  **Follow**  button.\n \n     OR \n\n     1. Navigate to a Tweet from the account you’d like to follow.\n      2. Tap the  icon located at the top of the Tweet. \n     3. Tap  **Follow**  from the selection menu.

## ask blablabla
* faq/ask_blablabla
  - blablabla\nblablabla\nblablabla

很不可读,不是吗?它“有效”,但我不喜欢它有很多原因:

  • 文件上的答案 data/responses.md变得不可读
  • 我需要编写一个脚本,以降价格式转换常见问题解答,用\ns 替换每个换行符。
  • 使用 RASA cli 命令(例如rasa shell)对话测试,我得到了不可读的单行压缩文本:/

两个问题:

  1. 我可以在response.md 中有由多行文本组成的FAQ 答案吗(在markdown 文件中写的WTSIWYG “as”,可能没有插入'\n')?

  2. 如果是长文本(~一页/段落)的答案,管理 RASA 响应选择器答案的建议方法是什么?

更新
我打开了问题/更改请求:https ://github.com/RasaHQ/rasa/issues/5800

谢谢你的帮助

乔治

4

1 回答 1

0

如果对您的项目...或从 Google 进来的另一个人来说还不算太晚。

如果你的文本很长,多行,我建议不要直接弄乱 domain.yml。

它会很快变得丑陋,一个错位的缩进可能会破坏构建。

相反,我建议的是一个自定义操作,它可以返回一个令您满意的长文本。

你将有自由做任何你想做的事。

在 python 中,要做到这一点,你可以用三重标记来包装你的文本,如下所示:

""" My long form text here """

它可以伸展到任何长度并跨越多条线。

于 2020-06-09T19:20:23.390 回答