c# - 当连续询问两个具有多提示答案的问题并且 rankerType 为“questionOnly”时,QnAMaker 不返回任何答案
问题描述
我正在创建一个简单的聊天机器人,其中我的代码基于Bot Framework 示例存储库中的 C# 示例“QnABotAllFeatures”项目。我有一个简单的 QnA 知识库并使用 Bot Framework Emulator v4 进行测试。
当我将 RankerType 设置为仅按问题排名时,见下文,如果我在另一个带有多圈提示的问题之后提出带有多圈提示的问题,我在第二个问题上没有得到 QnAMaker 的答案。
new QnAMakerOptions
{
ScoreThreshold = DefaultThreshold,
Top = DefaultTopN,
QnAId = 0,
RankerType = "QuestionOnly",
IsTest = false
};
我的知识库看起来像这样
问:大型动物。答:在哪里?
- 跟进 Q1:在陆地上?答案:大象
- 追问Q2:在海里?答案:威尔
问:大型植物。答:在哪里?
- 跟进 Q1:在陆地上?答案:树
- 追问Q2:在海里?答案:海带
问:你好吗?答:好
如果我连续问两个问题,包括“大型动物”然后是“大型平台”,我会得到“未找到 QnAMaker 答案”。关于最后一个问题。
连续没有两个多轮问题的组合效果很好,例如:“大型植物”然后“你好吗”。或者“你好吗”然后是“大型动物”。
如果我不设置 RankerType,或者将其设置为“默认”,那么一切正常。
我在俯视什么?我还尝试将 ScoreThreshold 降低到 0.01f。
通过运行 C# 示例“QnABotAllFeatures”项目表单https://github.com/microsoft/BotBuilder-Samples并在 QnAMakerBaseDialog.GetQnAMakerOptionsAsync 方法中将 RankerType 更改为“QuestionOnly”,这是可重复的
解决方案
推荐阅读
- rust - 从格式化输入构建树
- machine-learning - 监督机器学习:数据点数量和变量之间的关系
- python - Python/Pandas:遍历 Excel 文件并提取信息
- symfony - Symfony - 具有多个实体对象的表单
- svg - 是否可以将通用 [a, b, c, d, e, f] (svg) 变换矩阵分解为一系列旋转/缩放/平移指令?
- angular - 角 | 路由器不会重定向
- java - 如何读/写非root用户可以访问的文件?
- javascript - Firestore Observable 或 Promise
- sql - 我想为列上的运行值添加总和,但如果序列失败,那么我们不必添加
- regex - Ansible lineinfile 正则表达式