Поиск уникального идентификатора разговора в приложении Insights for QnA Maker - PullRequest
5 голосов
/ 27 марта 2020

Мы используем QnA Maker , подключенный к Azure Bot Service . В Базе Знаний (КБ) мы добавили Следующее приглашение к каждому вопросу, который говорит This did NOT answer my question:

image Follow Up Prompt">

То есть, если был предоставлен неверный ответ, конечный пользователь мог бы указать это, и история разговоров будет выглядеть следующим образом:

Example Conversation

Что мы Вы пытаетесь воспроизвести эту историю разговоров, чтобы мы могли увидеть:

  1. Исходное приглашение пользователя
  2. Исходный ответ
  3. Последующий вопрос / ответ на вопрос

Мы включили Application Insights , поэтому мы можем видеть оба вопроса по мере их поступления из журналов со следующим запросом:

traces
| project timestamp, 
          itemId,
          question = customDimensions.Question,
          answer = customDimensions.Answer
| order by timestamp

Что будет вернуть эти две строки:

App Insights Logs

Однако мы пытаемся найти уникальный идентификатор разговора или идентификатор сеанса, который может коррелировать обе эти записи. Обратите внимание, что itemId очень похож, но не идентичен:

53be8c1<b><i>4</i></b>-702c-11ea-8c41-11c1c266dc55
53be8c1<b><i>3</i></b>-702c-11ea-8c41-11c1c266dc55

Существует ли уникальный ключ, который можно использовать для объединения этих двух событий?

Один из способов - просто использовать первые 7 цифр itemID и объединение на основе этого частичного совпадения, например:

traces
| where customDimensions.Question contains "This did NOT answer my question" 
| project itemId,
          SessionID = extract("^[a-z0-9]{7}", 0, itemId),
          timestamp
| join (
    traces
    | extend question = tostring(customDimensions['Question'])
    | extend answer = tostring(customDimensions['Answer'])
    | where message contains "GenerateAnswer" 
        and question  !contains "This did NOT answer my question" 
    | project itemId,
              SessionID = extract("^[a-z0-9]{7}",0,itemId),
              question,
              answer,
              timestamp
) on SessionID 
| project question, answer, SessionID, timestamp //, itemId, itemId1
| order by timestamp desc, SessionID

Но мы не уверены, что значение будет надежно отличаться только на 8-е число git, поэтому предпочитаю меньше франка agile ID

1 Ответ

0 голосов
/ 31 марта 2020

Я недавно внедрил BOT производителя QnA с активным обучением.

Образец находится здесь

Это очень похоже на то, что вы пытаетесь достичь.

enter image description here

...