使用qnamaker 4.0 api(我认为甚至是3.0)你可以向api发送元数据并使用它来提高包含元数据标签的答案的分数。我在使用C#SDK中的private async Task RepeatableMethod(CancellationToken cancellationToken)
{
try
{
//some logic
}
catch (Exception e)
{
}
finally
{
await Task.Delay(TimeSpan.FromSeconds(2), cancellationToken)
.ContinueWith(_ => RepeatableMethod(cancellationToken),cancellationToken);
}
}
时遇到了问题。是否有一种简单的方法可以执行此操作,还是需要创建自己的服务/对话框来实现此功能?
另外,与此相关,是否无法在QnAMakerDialog
之前获取消息?就像重写QnAMakerDialog
一样(你不能这样做,因为它不是虚拟的 - 至少不是我使用的版本,Bot.Builder.CognitiveServices 1.1.7)
答案 0 :(得分:1)
根据您使用Nuget包async function readValuesFromDB(codes) {
console.log('trying to read values from DB');
let dbPromises = [];
for(let code in codes) {
let refId = 'some_random_reference_id_generated_from_codes[i]';
dbPromises.push(MyDb.getPromise(refId)); // getPromise() returns a promise that reads from DB
}
console.log('waiting for all promises to resolve...');
// waiting for all promises to finish
let allPromises = await Promise.all(dbPromises);
for(let i in allPromises) {
console.log('OK..read from DB');
}
console.log('all promises resolved');
allPromises = ['a', 'b', 'c']; // Dumb values for example
return allPromises;
}
console.log('calling readValuesFromDB()');
readValuesFromDB().then(response => {
console.log('finished readValuesFromDB()');
console.log(response)
});
的事实,可用here
我查看了当前的源代码(它是在Github上开源的,here),正如您可以看到here,这个软件包(至少现在是1.1.7版本)是使用QnAMaker API v2:
Microsoft.Bot.Builder.CognitiveServices
因此,您将无法获得QnAMaker API v3中引入的元数据的好处