0

我有一个开发人员使用 node 而不是 botiumbox 创建的 botium/dialogflow 项目。我希望能够使用变量以多种方式调用多个社区。例如,我知道在自适应卡中使用变量应该如下所示:

Show me a neighborhood

#me
Show me a neighborhood in $neighborhood

#bot
In $neighborhood, there are [0-9]+ active listings.

我以前使用的是具有不同类型话语的话语文件,例如:

NEIGHBORHOOD_SNAPSHOTS_UTT    
Show me a location in Lawrenceville
Show me a market snapshot in Lawrenceville
What are the market stats in Lawrenceville
Find market snapshot in Lawrenceville

我的自适应卡看起来像这样:

Show me a neighborhood

#me
NEIGHBORHOOD_SNAPSHOTS_UTT

#bot
In Lawrenceville, there are [0-9]+ active listings.

在某处的 botium wiki 中,我看到了与此类似的内容,因此我将其保存为一个名为 location.txt 的文件,与我的对话和话语文件位于同一文件夹中

       |$neighborhood                    |
 Case1 | Lawrenceville                   |
 Case2 | Midway                          |
 Case3 | Paintsville                     |
 Case4 | River Point                     |
 Case5 | The Fountains                   |
 Case6 | Castlewood                      |
 Case7 | Middlebury                      |
 Case8 | Happy Valley                    |
 Case9 | 20th / Breakwood                |
 Case10| Courtney Ct/Knight Ave          |

现在我想将它们捆绑在一起,以便我可以通过多种方式查询多个社区,例如

 Show me a neighborhood

 #me  
 NEIGHBORHOOD_SNAPSHOTS_UTT.utterances.txt

 #bot
 In $neighborhood, there are [0-9]+ active listings.

我将话语文件从 Lawrenceville 更改为:

Show me a location in $neighborhood
Show me a market snapshot in $neighborhood
What are the market stats in $neighborhood
Find market snapshot in $neighborhood

但我的项目似乎没有找到 location.txt 变量文件。我怎样才能使话语、变量文件和这些自适应卡片在我的项目(而不是 botium box)中一起工作?

4

1 回答 1

1

基本上,您尝试创建的测试用例很好,并且您做了很多正确的事情,但也缺少一些东西。

  1. 脚本内存文件将命名为location.scriptingmemory.txt(参见Botium Wiki

  2. 话语文件的第一行是它从 convo 文件中引用的名称(你的一个例子是正确的,另一个不是)。

  3. 在 convo 文件中引用话语时,不要使用任何文件扩展名(一次正确,一次错误)。

#me  
NEIGHBORHOOD_SNAPSHOTS_UTT
  1. 您必须在 Botium 中启用脚本内存,默认情况下它是禁用的 - 请参阅Botium Wiki
  2. 最后,您希望 Botium 使用更改的变量多次运行相同的 convo,您也必须说明这一点(请参阅Botium Wiki

我准备了一个带有演示的repl.it。

于 2020-02-28T14:10:49.380 回答