Как отфильтровать QnAMaker Вопрос по источникам - PullRequest
0 голосов
/ 05 ноября 2018

Я использую QnAMaker REST API в моей платформе Bot для запроса базы знаний.

Работает нормально, но я бы хотел отфильтровать «вопросы» на основе «источника», как указано в requestData. Ссылаясь на документацию - https://docs.microsoft.com/en-us/azure/cognitive-services/qnamaker/how-to/metadata-generateanswer-usage Я не видел никакой возможности сделать это. В документации говорится, что «источник» является лишь частью ответа, а не запроса.

Я попытался передать 'source' в качестве метаданных strictFilters.

Dictionary<string, object> requestData = new Dictionary<string, object>
{
    ["question"] = question,
    ["top"] = top,
    ["strictFilters"] = new Dictionary<string, object>
    {
        ["source"] = "test.tsv"
    }
};

string requestBody = JsonConvert.SerializeObject(requestData);
kbId = _configuration[qnaKbName];
method = "/knowledgebases/" + kbId + "/generateAnswer/";
var uri = host + method;
var response = await Post(uri, requestBody);
return response;

Запрос в формате JSON-

{"question":"flexible working","top":5,"strictFilters":{"source":"test.tsv"}}

Это не работает, и я получаю ответ ниже -

{
  "error": {
    "code": "BadArgument",
    "message": "Parameter is null"
  }
}

Попробовал создать запрос JSON следующим образом -

{"question":"sabbatical","top":5,"strictFilters":[{"name":"source","value":"test.tsv"}]}

Получил ниже ответа-

{
  "error": {
    "code": "Unspecified",
    "message": "Something happened. Please retry after some time."
  }
}

Есть ли возможность сделать это? Пожалуйста, дайте мне знать, если я могу предоставить более подробную информацию ..

...