【问题标题】:How to use variables with an utterance file in botium如何在botium中使用带有话语文件的变量
【发布时间】:2020-02-27 22:10:14
【问题描述】:

我的开发人员使用 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)中协同工作?

【问题讨论】:

    标签: botium-box


    【解决方案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 和一个演示。

    【讨论】:

    • 非常感谢。我能够通过一些调整成功地复制您的 repl.it 示例来挖掘。请注意,我已经更改了一些命名结构,因为我提出的问题是一个示例,我必须仔细考虑名称。然而,它使用 $neighborhood 并直接使用它,就好像它不是变量一样,即使我的 scriptingmemory.txt 文件与您的匹配。
    • 具有不同表达的多个社区。/MARKETSNAPS_NEIGHBORHOOD_VARIED_UTT-L3/第 8 行:预期的机器人响应(第 5 行:#me - $neighborhood 的市场统计数据是什么)“没有市场快照位置。试着告诉我一个不同的邮政编码、社区或城市,我会试着找到信息。”匹配“在 $neighborhood 中,有 [0-9]+ 个活跃房源。平均房源价格为 \$[0-9]+,上市 [0-9]+ 天。,有您所在位置附近有 [0-9]+ 个市场快照。,$neighborhood 有 [0-9]+ 个市场快照"##################### ##
    • ASSERTION FAILED in TextMatchAsserter - 预期:“在 $neighborhood 中,有 [0-9]+ 个活跃列表。平均列表价格为 \$[0-9]+,并且在市场上[0-9]+ 天。,您的位置附近有 [0-9]+ 个市场快照。,$ 社区有 [0-9]+ 个市场快照" - 实际:"没有市场快照位置。试着告诉我一个不同的邮政编码、社区或城市,我会试着找到信息。”输入:$neighborhood 的市场统计数据是什么
    • 最后(谢谢,这对我的项目产生了巨大的影响),如果这些话语可以返回三个可能变量中的任何一个,而我不知道是哪一个呢?在 $neighborhood 中,有 [0-9]+ 个活动列表。平均挂牌价格为 \$[0-9]+,上市时间为 [0-9]+ 天。您所在位置附近有 [0-9]+ 个市场快照。 $neighborhood 中有 [0-9]+ 个市场快照我应该如何格式化?我尝试了一个响应话语文件,但它没有按预期工作
    • 我认为唯一需要改变的是将功能 SCRIPTING_MATCHING_MODE 设置为 regexp 以使其工作。我更新了repl。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-09
    • 1970-01-01
    • 2016-03-02
    • 2019-12-29
    相关资源
    最近更新 更多