Analysera robotens telemetridata

GÄLLER FÖR: SDK v4

Analysera robotbeteende

Följande samling frågor kan användas för att analysera robotbeteendet. Du kan använda samlingen för att skapa anpassade frågor i Azure Monitor Log Analytics och för att skapa instrumentpaneler för övervakning och Power BI-visualisering .

Förutsättningar

Det är bra att ha en grundläggande förståelse för följande begrepp:

Dricks

Om du skapar din robot med hjälp av verktyg som Power Virtual Agents eller Composer, vill du använda den adaptiva dialogversionen av varje fråga när den är tillgänglig.

Instrumentpaneler

Azure-instrumentpaneler är ett bra sätt att visa och dela den information som genereras från dina frågor. Du kan skapa anpassade instrumentpaneler för att övervaka robotaktiviteten genom att associera dina frågor med panelerna som du lägger till på instrumentpanelen. Mer information om instrumentpaneler och hur du associerar dina frågor med dem finns i Skapa och dela instrumentpaneler med Log Analytics-data. Resten av den här artikeln visar exempel på några av de frågor som du kan ha nytta av när du övervakar robotarnas beteende.

Exempel på Kusto-frågor

Kommentar

Vi rekommenderar att du pivoterar på olika dimensioner, till exempel punkt, kanal och nationella inställningar för alla frågor i den här artikeln.

Antal användare per period

Det här exemplet resulterar i ett linjediagram som visar hur många distinkta användare som kommunicerat med din robot per dag under de senaste 14 dagarna. Tidsperioden kan enkelt ändras genom att tilldela olika värden till variablerna queryStartDateoch queryEndDateinterval .

Viktigt!

Du får bara rätt antal unika användare i den här frågan om de är autentiserade användare, och resultatet kan också bero på kanalfunktionerna.

// number of users per period
let queryStartDate = ago(14d);
let queryEndDate = now();
let groupByInterval = 1d;
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| summarize uc=dcount(user_Id) by bin(timestamp, groupByInterval)
| render timechart

Dricks

Kusto summarize-operatorn används för att skapa en tabell som aggregerar innehållet i indatatabellen.

Funktionen Bin är en kusto-skalärfunktion som när den summarize operator används tillsammans med kommer att gruppera frågeresultaten i det angivna värdet. I exemplet ovan grupperas detta efter dag, Kusto accepterar även h=hours, m=minutes, s=seconds, ms=millisekunder, microsecond=microseconds.

Med återgivningsoperatorn kan du enkelt återge diagram, till exempel tidsschemat, ett linjediagram där x-axeln är en datetime och andra numeriska kolumner kan användas för y-axeln. Den behåller automatiskt x-axelns blanksteg på ett bra sätt även om dina data inte har angetts varje gång. Om ingen återgivningssats används är standardvärdet table.

Exempel på frågeresultat för antal användare per period

Sample chart of number of users per period.

Aktivitet per period

Det här exemplet visar hur du mäter mängden aktivitet per önskad dimension, till exempel antalet konversationer, dialogrutor eller meddelanden per dag under de senaste 14 dagarna. Tidsperioden kan enkelt ändras genom att tilldela olika värden till variablerna querystartdateoch queryEndDateinterval . Den önskade dimensionen definieras av extend -satsen i följande exempel, metric kan anges till antingen InstanceId, DialogId eller activityId.

Tilldela mått till den dimension som du vill visa:

// Measures the number of activity's (conversations, dialogs, messages) per period.
let queryStartDate = ago(14d);
let queryEndDate = now();
let groupByInterval = 1d;
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| extend InstanceId = tostring(customDimensions['InstanceId'])
| extend DialogId = tostring(customDimensions['DialogId'])
| extend ActivityId = tostring(customDimensions['activityId'])
| where DialogId != '' and  InstanceId != '' and user_Id != ''
| extend metric = InstanceId // DialogId or ActivityId
| summarize Count=dcount(metric) by  bin(timestamp, groupByInterval)
| order by Count desc nulls last
| render timechart

Dricks

Kusto extend-operatorn används för att skapa beräknade kolumner och lägga till dem i resultatuppsättningen.

Exempel på frågeresultat för aktivitet per period

Sample chart of activity per period.

Aktivitet per användare och period

Det här exemplet visar hur du räknar antalet aktiviteter per användare och period. Den här frågan ökar detaljnivån i frågan aktivitet per period för att fokusera på aktiviteten per användare och period. Aktiviteterna omfattar dialogrutor, konversationer eller meddelanden. Den här frågan mäter användarinteraktion med din robot, vilket kan hjälpa dig att hitta potentiella problem, till exempel:

  • Dagar med mycket aktivitet av en enskild användare kan innebära en attack eller ett test
  • Dagar med liten interaktion kan tyda på problem med tjänstens hälsotillstånd

Dricks

Du kan ta bort med user_Id för att hämta den allmänna robotaktivitetsvolymen som kan pivoteras i tid och dialogrutor, meddelanden eller konversationer.

// number of users per period per dialogs
let queryStartDate = ago(14d);
let queryEndDate = now();
let interval = 6h;
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| extend InstanceId = tostring(customDimensions['InstanceId'])
| extend DialogId = tostring(customDimensions['DialogId'])
| extend ActivityId = tostring(customDimensions['activityId'])
| where DialogId != '' and InstanceId != '' and user_Id != ''
| extend metric = ActivityId // InstanceId // DialogId // or InstanceId for conversation count
| summarize Count=dcount(metric) by user_Id, bin(timestamp, groupByInterval)
| order by Count desc nulls last

Exempel på frågeresultat för aktivitet per användare och period

user_Id Tidsstämpel Antal
User-8107ffd2 2019-09-03T00:00:00Z 14
User-75f2cc8f 2019-08-30T00:00:00Z 13
User-75f2cc8d 2019-09-03T00:00:00Z 13
User-3060aada 2019-09-03T00:00:00Z 10

Dialogrutan har slutförts

När du har ställt in telemetriklienten för en dialogruta genererar dialogrutan (och dess underordnade) vissa standardtelemetridata, till exempel startade och slutförda. Det här exemplet kan användas för att mäta slutförda dialogrutor i förhållande till påbörjade dialogrutor. Om antalet dialogrutor som startats är större än det antal som har slutförts slutförs inte några av dina användare i dialogflödet. Du kan använda den här frågan för att identifiera och felsöka eventuell dialoglogik. Den kan också användas för att identifiera vilka dialogrutor som används mest och minst ofta.

Dricks

Om du skapar din robot med verktyg som Power Virtual Agents eller Composer, vill du använda den anpassningsbara dialogversionen av varje fråga.

Slutförande av vattenfallsdialogruta

// % Completed Waterfall Dialog: shows completes relative to starts
let queryStartDate = ago(14d);
let queryEndDate = now();
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| where name=="WaterfallStart"
| extend DialogId = customDimensions['DialogId']
| extend InstanceId = tostring(customDimensions['InstanceId'])
| join kind=leftouter (
    customEvents
    | where name=="WaterfallComplete"
    | extend InstanceId = tostring(customDimensions['InstanceId'])
  ) on InstanceId
| summarize started=countif(name=='WaterfallStart'), completed=countif(name1=='WaterfallComplete') by tostring(DialogId)
| where started > 100  // filter for sample
// Show starts vs. completes
| project tostring(DialogId), started, completed
| order by started desc, completed asc  nulls last
| render barchart  with (kind=unstacked, xcolumn=DialogId, ycolumns=completed, started, ysplit=axes)

Dricks

Operatorn Kusto-koppling används för att sammanfoga raderna i två tabeller för att bilda en ny tabell genom att matcha värdena för de angivna kolumnerna från varje tabell.

Projektoperatorn används för att välja de fält som du vill visa i dina utdata. På samma extend operator sätt som det som lägger till ett nytt fält project operator kan antingen välja från den befintliga uppsättningen fält eller lägga till ett nytt fält.

Anpassningsbara dialogrutor har startats och slutförts

// % Completed adaptive dialog: shows completes relative to starts. This type is the default dialog type when using Power Virtual Agents or Composer. 
customEvents
| where name=="AdaptiveDialogStart" or name == "AdaptiveDialogComplete"
| extend DialogId = tostring(customDimensions['DialogId'])
| summarize started=countif(name=='AdaptiveDialogStart'), completed=countif(name=='AdaptiveDialogComplete') by DialogId
| project DialogId, started, completed
| order by started desc, completed asc nulls last
| render barchart with (kind=unstacked, xcolumn=DialogId, ycolumns=completed, started, ysplit=axes)

Exempel på frågeresultat för dialogruta

Sample chart of dialogs started and dialogs completed.

Inkomplettering av dialogruta

Det här exemplet kan användas för att räkna antalet dialogflöden som startats men aldrig slutförts på grund av annullering eller övergivenhet under den angivna tidsperioden. Du kan använda den för att granska ofullständiga dialogrutor och undersöka om de aktivt avbröts på grund av användarförvirring eller avbrutna på grund av användarens distraktion eller intresseförlust.

Vattenfallsdialogrutorna har inte slutförts

// Show incomplete dialogs when using waterfall dialogs.
let queryStartDate = ago(14d);
let queryEndDate = now();
customEvents 
| where timestamp > queryStartDate 
| where timestamp < queryEndDate
| where name == "WaterfallStart" 
| extend DialogId = customDimensions['DialogId']
| extend instanceId = tostring(customDimensions['InstanceId'])
| join kind=leftanti (
  customEvents
  | where name == "WaterfallComplete" 
  | extend instanceId = tostring(customDimensions['InstanceId'])
  ) on instanceId
| summarize cnt=count() by  tostring(DialogId)
| order by cnt
| render barchart

Anpassningsbara dialogrutor har inte slutförts

// Show incomplete dialogs for adaptive dialogs; this type is the default dialog type when using Power Virtual Agents or Composer.
let queryStartDate = ago(14d);
let queryEndDate = now();
customEvents
| where name == "AdaptiveDialogStart"
| extend DialogId = tostring(customDimensions['DialogId'])
| join kind=rightanti (
customEvents
| where name == "AdaptiveDialogComplete"
| extend DialogId = tostring(customDimensions['DialogId'])
) on name, DialogId
| summarize cnt=count() by DialogId
| order by cnt
| render barchart

Dricks

Kusto-orderoperatorn (samma som sort operator) används för att sortera raderna i indatatabellen efter en eller flera kolumner. Obs! Om du vill undanta null-värden från resultatet av en fråga kan du filtrera bort dem i instruktionen where , till exempel lägga till "and isnotnull(Timestamp)" eller returnera null-värden i början eller slutet genom att lägga till nulls first eller nulls first i slutet av order-instruktionen.

Exempel på frågeresultat för dialogrutainkomplettering

Sample summary chart for incomplete dialogs.

Ökad detaljnivå i dialogsekvens

Vattenfallsstart/steg/slutföra för dialog i konversation

Det här exemplet visar sekvensen med dialogsteg grupperade efter konversation (instanceId), vilket kan vara användbart för att avgöra vilka steg som leder till avbrott i dialogrutan.

Kör den här frågan och ange värdet för önskat DialogId värde i stället för <SampleDialogId>

// Drill down: Show waterfall start/step/complete for specific dialog
let queryStartDate = ago(14d);
let queryEndDate = now();
let DialogActivity=(dlgid:string) {
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| extend DialogId = customDimensions['DialogId']
| extend StepName = customDimensions['StepName']
| extend InstanceId = customDimensions['InstanceId']
| where DialogId == dlgid
| project timestamp, name, StepName, InstanceId
| order by tostring(InstanceId), timestamp asc
};
// For example see SampleDialogId behavior
DialogActivity("<SampleDialogId>")

Dricks

Den här frågan skrevs med en frågedefinierad funktion, som är en användardefinierad funktion som definieras och används inom omfånget för en enskild fråga och definieras via en let-instruktion. Den här frågan skrivs utan användning av query-defined function:

let queryStartDate = ago(14d);
let queryEndDate = now();
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| extend DialogId = customDimensions['DialogId']
| extend StepName = customDimensions['StepName']
| extend InstanceId = customDimensions['InstanceId']
| where DialogId == "<SampleDialogId>"
| project timestamp, name, StepName, InstanceId
| order by tostring(InstanceId), timestamp asc
Exempel på frågeresultat
timestamp name StepName InstanceId
2019-08-23T20:04... VattenfallStart NULL ... 79c0f03d8701
2019-08-23T20:04... VattenfallSteg GetPointOfInterestLocations ... 79c0f03d8701
2019-08-23T20:04... VattenfallSteg ProcessPointOfInterestSelection ... 79c0f03d8701
2019-08-23T20:04... VattenfallSteg GetRoutesToDestination ... 79c0f03d8701
2019-08-23T20:05... VattenfallSteg ResponseToStartRoutePrompt ... 79c0f03d8701
2019-08-23T20:05... WaterfallComplete 1 NULL ... 79c0f03d8701
2019-08-28T23:35... VattenfallStart NULL ... 6ac8b3211b99
2019-08-28T23:35... VattenfallSteg 2 GetPointOfInterestLocations ... 6ac8b3211b99
2019-08-28T19:41... VattenfallStart NULL ... 8137d76a5cbb
2019-08-28T19:41... VattenfallSteg 2 GetPointOfInterestLocations ... 8137d76a5cbb
2019-08-28T19:41... VattenfallStart NULL ... 8137d76a5cbb

1Slutförd

2Övergiven

Tolkning: Användarna verkar överge konversationen i steget GetPointOfInterestLocations.

Kommentar

Vattenfallsdialogrutor kör en sekvens (start, flera steg, slutför). Om en sekvens visas som börjar utan att slutföras innebär det att dialogrutan avbröts antingen på grund av att användaren övergav eller avbröt dialogrutan. I den här detaljerade analysen kan man se det här beteendet (se slutförda eller övergivna steg).

Aggregerade summor för vattenfallsstart/steg/slutföra/avbryta steg

Det här exemplet visar totalsummorna för det totala antalet gånger som en dialogsekvens startades, det sammanlagda totala antalet vattenfallssteg, hur många som slutfördes, hur många som avbröts och skillnaden mellan WaterfallStart och den sammanlagda summan av WaterfallComplete plus WaterfallCancel ger dig det totala antalet övergivna.

// Drill down: Aggregate view of waterfall start/step/complete/cancel steps totals for specific dialog
let queryStartDate = ago(14d);
let queryEndDate = now();
let DialogSteps=(dlgid:string) {
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| extend DialogId = customDimensions['DialogId']
| where DialogId == dlgid
| project name
| summarize count() by name
};
// For example see SampleDialogId behavior
DialogSteps("<SampleDialogId>")
Exempel på vattenfallsaggregerade frågeresultat
Namn antal
VattenfallStart 21
VattenfallSteg 47
WaterfallComplete 11
VattenfallCancel 1

Tolkning: Av 21 anrop av dialogsekvensen har endast 11 slutförts, 9 har avbrutits och en avbröts av användaren.

Genomsnittlig varaktighet i dialogrutan

I det här exemplet mäts den genomsnittliga tid som användarna tillbringar i en viss dialogruta. Din robot kan ha nytta av att förenkla dialogrutor som tar lång tid för en användare att slutföra.

// Average dialog duration
let queryStartDate = ago(14d);
let queryEndDate = now();
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| where name=="WaterfallStart"
| extend DialogId = customDimensions['DialogId']
| extend instanceId = tostring(customDimensions['InstanceId'])
| join kind=leftouter (customEvents | where name=="WaterfallCancel" | extend instanceId = tostring(customDimensions['InstanceId'])) on instanceId
| join kind=leftouter (customEvents | where name=="WaterfallComplete" | extend instanceId = tostring(customDimensions['InstanceId'])) on instanceId
| extend duration = case(not(isnull(timestamp1)), timestamp1 - timestamp,
not(isnull(timestamp2)), timestamp2 - timestamp, 0s) // Abandoned aren't counted. Alternate: now()-timestamp
| extend seconds = round(duration / 1s)
| summarize AvgSeconds=avg(seconds) by tostring(DialogId)
| order by AvgSeconds desc nulls last
| render barchart with (title="Duration in Dialog")

Exempel på frågeresultat för genomsnittlig varaktighet

Sample chart of dialog duration.

Genomsnittliga steg i dialogrutan

Det här exemplet visar varje anropad dialogrutas "längd" som beräknas med medelvärde, min, max och standardavvikelse. Detta kan hjälpa dig att analysera dialogrutans kvalitet. Till exempel:

  • Dialogrutor med för många steg bör utvärderas för förenklingsmöjligheter.
  • Dialogrutor med ett stort mellanrum mellan min/max/genomsnitt kan innebära att användarna stoppas när de försöker slutföra uppgifterna. Du kan behöva utvärdera möjligheten att det finns kortare sökvägar för att slutföra uppgifterna, eller sätt att minska dialogrutans komplexitet.
  • Dialogrutor med stor standardavvikelse tyder på komplexa sökvägar eller en bruten upplevelse (avbryt/avbryt).
  • Dialogrutor med några få steg kan vara så eftersom de aldrig slutfördes. Genom att analysera slutförande-/övergivenhetsfrekvensen kan det vara till hjälp att fastställa detta.
// min/max/std/avg steps per dialog
let queryStartDate = ago(14d);
let queryEndDate = now();
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| extend DialogId = tostring(customDimensions['DialogId'])
| extend StepName = tostring(customDimensions['StepName'])
| extend InstanceId = tostring(customDimensions['InstanceId'])
| where name == "WaterfallStart" or  name == "WaterfallStep" or  name == "WaterfallComplete"
| order by InstanceId, timestamp asc
| project timestamp, DialogId, name, InstanceId, StepName
| summarize cnt=count() by InstanceId, DialogId
| summarize avg=avg(cnt), minsteps=min(cnt),maxsteps=max(cnt), std=stdev(cnt) by DialogId
| extend avgsteps = round(avg, 1)
| extend avgshortbysteps=maxsteps-avgsteps
| extend avgshortbypercent=round((1.0 - avgsteps/maxsteps)*100.0, 1)
| project DialogId, avgsteps, minsteps, maxsteps, std, avgshortbysteps, avgshortbypercent
| order by std desc nulls last

Exempel på frågeresultat för genomsnittssteg

Dialog-ID avg-steg minsta steg maxsteg st.av avg short by steps genomsnittligt med procent
FindArticlesDialog 6,2 2 7 2.04 0,8 11.4%
CreateTicket 4.3 2 5 1.5 0,7 14 %
CheckForCurrentLocation 3.9 2 5 1.41 1,1 22 %
BaseAuth 3.3 2 4 1,03 0,7 17.5%
registrering 2,7 2 4 0.94 1.3 32.5%

__Interpretation: FindArticlesDialog har till exempel en bred spridning mellan min/max och bör undersökas och eventuellt göras om och optimeras.

Kanalaktivitet efter aktivitetsmått

Det här exemplet mäter hur mycket aktivitet roboten tar emot per kanal under den angivna perioden. Den gör detta genom att räkna något av följande mått: inkommande meddelanden, användare, konversationer eller dialogrutor. Detta kan vara användbart för analys av tjänstens hälsotillstånd eller för att mäta en kanals popularitet.

// number of metric: messages, users, conversations, dialogs by channel
let queryStartDate = ago(14d);
let queryEndDate = now();
let groupByInterval = 1d;
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| extend InstanceId = tostring(customDimensions['InstanceId'])
| extend DialogId = tostring(customDimensions['DialogId'])
| extend ActivityId = tostring(customDimensions['activityId'])
| extend ChannelId = tostring(customDimensions['channelId'])
| where DialogId != '' and  InstanceId != '' and user_Id != ''
| extend metric = user_Id // InstanceId or ActivityId or user_Id
| summarize Count=count(metric) by  ChannelId, bin(timestamp, groupByInterval)
| order by Count desc nulls last
| render barchart with (title="Users", kind=stacked) // or Incoming Messages or Conversations or Users

Dricks

Du kanske vill prova dessa varianter:

  • Kör frågan utan tidsstämpelns bucketing: bin(timestamp, groupByInterval).
  • Du kan också använda dcount för distinkta användare och count för alla användarhändelseaktiviteter. Detta fungerar även för upprepande användare.

Exempel på frågeresultat för kanalaktivitet efter aktivitet

Sample chart of channel usage.

Tolkning: Emulatortestning brukade vara populärast, men när vi gick live är DirectLineSpeech den mest populära kanalen.

Totalt antal avsikter efter popularitet

Det här exemplet gäller luis-aktiverade robotar. Den visar en sammanfattning av alla avsikter efter popularitet och motsvarande avsiktsidentifieringssäkerhetspoäng.

Kommentar

Language Understanding (LUIS) dras tillbaka den 1 oktober 2025. Från och med den 1 april 2023 kan du inte skapa nya LUIS-resurser. En nyare version av språktolkning är nu tillgänglig som en del av Azure AI Language.

Conversational Language Understanding (CLU), en funktion i Azure AI Language, är den uppdaterade versionen av LUIS. Mer information om stöd för språktolkning i Bot Framework SDK finns i Förstå naturligt språk.

  • I praktiken bör vyn avgränsas för varje mått.
  • Populära avsiktssökvägar bör optimeras för användarupplevelsen.
  • Låga genomsnittliga poäng indikerar dålig igenkänning och eventuell saknad faktisk användaravsikt.
// show total intents
let queryStartDate = ago(14d);
let queryEndDate = now();
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| where name startswith "LuisResult"
| extend intentName = tostring(customDimensions['intent'])
| extend intentScore = todouble(customDimensions['intentScore'])
| summarize ic=count(), ac=avg(intentScore)*100 by intentName
| project intentName, ic, ac
| order by ic desc nulls last
| render barchart with (kind=unstacked, xcolumn=intentName, ycolumns=ic,ac, title="Intents Popularity")

Exempel på frågeresultat för avsikter efter popularitet

Sample chart of intent popularity.

Tolkning: Till exempel den mest populära avsikten, bekräfta identifieras endast med 23% konfidens i genomsnitt.

Dricks

Barcharts är ett av över ett dussin alternativ som är tillgängliga med Kusto-frågor. Några andra alternativ är: anomalychart, areachart, columnchart, linechart, scatterchart. Mer information finns i avsnittet rendera operator .

Schema för Bot Analytics-instrumentation

Följande tabeller visar de vanligaste fälten som roboten loggar telemetridata till.

Allmänt kuvert

Vanliga log analytics-fält i Application Insights-instrumentation.

Fält Beskrivning Exempelvärden
name Meddelandetyp BotMessageSend, BotMessageReceived, LuisResult, WaterfallStep, WaterfallStart, SkillWebSocketProcessRequestLatency, SkillWebSocketOpenCloseLatency, WaterfallComplete, QnaMessage, WaterfallCancel, SkillWebSocketTurnLatency, AuthPromptValidatorAsyncFailure
customDimensions SDK Bot Analytics activityId=<id>, activityType=message, channelId=emulator, fromId=<id>, fromName=User, locale=en-us, recipientId=<id>, recipientName=Bot, text=find a coffee shop
timestamp Tidpunkt för händelsen 2019-09-05T18:32:45.287082Z
instance_Id Konversations-ID f7b2c416-a680-4b2c-b4cc-79c0f03d8711
operation_Id Tur-ID 084b2856947e3844a5a18a8476d99aaaa
user_Id Unikt kanalanvändar-ID emulator7c259c8e-2f47...
client_IP Klientens IP-adress 127.0.0.1 (kan vara frånvarande på grund av sekretessblock)
client_City Klientstad Redmond (om det upptäcks kan vara frånvarande)

Kommentar

Azure AI QnA Maker dras tillbaka den 31 mars 2025. Från och med den 1 oktober 2022 kan du inte skapa nya QnA Maker resurser eller kunskapsbaser för 2022. En nyare version av fråge- och svarsfunktionen är nu tillgänglig som en del av Azure AI Language.

Svar på anpassade frågor, en funktion i Azure AI Language, är den uppdaterade versionen av QnA Maker-tjänsten. Mer information om stöd för frågor och svar i Bot Framework SDK finns i Förstå naturligt språk.

Kommentar

Language Understanding (LUIS) dras tillbaka den 1 oktober 2025. Från och med den 1 april 2023 kan du inte skapa nya LUIS-resurser. En nyare version av språktolkning är nu tillgänglig som en del av Azure AI Language.

Conversational Language Understanding (CLU), en funktion i Azure AI Language, är den uppdaterade versionen av LUIS. Mer information om stöd för språktolkning i Bot Framework SDK finns i Förstå naturligt språk.

Anpassade dimensioner

De flesta robotspecifika aktivitetsdata lagras i fältet customDimensions .

Fält Beskrivning Exempelvärden
activityId Meddelande-ID <id>: 8da6d750-d00b-11e9-80e0-c14234b3bc2a
activityType Typ av meddelande message, conversationUpdate, event, invoke
channelId Kanalidentifierare emulator, directline, msteams, webchat
fromId Från identifierare <id>
fromName Användarnamn från klient John Bonham, Keith Moon, Steve Smith, Steve Gadd
locale Språk för klientursprung en-us, zh-cn, en-GB, de-de, zh-CN
recipientId Mottagarens identifierare <id>
recipientName Mottagarens namn John Bonham, Keith Moon, Steve Smith, Steve Gadd
text Meddelandetext hitta ett kafé

Anpassade dimensioner: LUIS

Kommentar

Language Understanding (LUIS) dras tillbaka den 1 oktober 2025. Från och med den 1 april 2023 kan du inte skapa nya LUIS-resurser. En nyare version av språktolkning är nu tillgänglig som en del av Azure AI Language.

Conversational Language Understanding (CLU), en funktion i Azure AI Language, är den uppdaterade versionen av LUIS. Mer information om stöd för språktolkning i Bot Framework SDK finns i Förstå naturligt språk.

LUIS-instrumentation lagrar sina data i följande fält för anpassade dimensioner.

Fält Beskrivning Exempelvärden
avsikt LUIS-identifierad avsikt pointOfInterestSkill
intentScore LUIS-igenkänningspoäng 0,98
Entiteter LUIS-identifierade entiteter FoodOfGrocery = [["coffee"]], KEYWORD= ["coffee shop"]
Fråga LUIS-identifierad fråga hitta ett kafé
sentimentLabel LUIS identifierade sentiment positivt

Anpassade dimensioner: QnAMaker

Kommentar

Azure AI QnA Maker dras tillbaka den 31 mars 2025. Från och med den 1 oktober 2022 kan du inte skapa nya QnA Maker resurser eller kunskapsbaser för 2022. En nyare version av fråge- och svarsfunktionen är nu tillgänglig som en del av Azure AI Language.

Svar på anpassade frågor, en funktion i Azure AI Language, är den uppdaterade versionen av QnA Maker-tjänsten. Mer information om stöd för frågor och svar i Bot Framework SDK finns i Förstå naturligt språk.

QnAMaker-instrumentation lagrar sina data i följande fält för anpassade dimensioner.

Dricks

Om du vill aktivera loggning av personlig information som frågor och svar bör parametern för personlig logginformation anges till true i konstruktorn för klassen QnA Maker .

Fält Beskrivning Exempelvärden
-fråga QnA-identifierad fråga Vad kan du göra?
svar QnA-svar Du har frågor, jag kanske har svar.
articleFound QnA true
questionId QnA-fråge-ID 488
knowledgeBaseId QnA KB-ID 2a4936f3-b2c8-44ff-b21f-67bc413b9727
matchedQuestion Matris med matchade frågor ["Kan du förklara för mig vad din roll är?","Kan du berätta lite om dig själv?","Kan du berätta om dig?","kan du hjälpa mig","hmmm så vad kan du göra?","Hur kan du hjälpa mig","Hur kan du hjälpa mig?","Hur kan du hjälpa till?","så hur kan jag använda dig i mina projekt?", "Prata med mig om din förmåga","Vad är du kapabel till?", ...]

Se även