Vanliga frågor och svar om Bot Framework

Den här artikeln besvarar vanliga allmänna frågor.

GÄLLER FÖR: SDK v4

Varför gör inte skrivaktiviteten något?

Vissa kanaler stöder inte tillfälliga skrivuppdateringar i klienten.

Vad är skillnaden mellan Anslut eller-biblioteket och Builder-biblioteket i SDK: et?

Anslut ellerbiblioteket är utläggningen av REST-API:et. Builder-biblioteket lägger till programmeringsmodellen för konversationsdialogrutor och andra funktioner som frågor, vattenfall, kedjor och slutfört guidat formulär. Builder-biblioteket ger också åtkomst till Azure AI-tjänster, till exempel förståelse för naturligt språk.

Hur relaterar användarmeddelanden till HTTPS-metodanrop?

När användaren skickar ett meddelande via en kanal utfärdar Bot Framework-webbtjänsten ett HTTPS POST till robotens webbtjänstslutpunkt. Roboten kan skicka noll, ett eller många meddelanden tillbaka till användaren på kanalen genom att utfärda ett separat HTTPS POST till Bot Framework för varje meddelande som skickas.

Vad är skillnaden mellan "proaktiv" och "reaktiv"?

Ur robotens perspektiv innebär "reaktiv" att användaren initierar konversationen genom att skicka ett meddelande till roboten, och roboten reagerar genom att svara på det meddelandet. Däremot innebär "proaktiv" att roboten initierar konversationen genom att skicka det första meddelandet till användaren. En robot kan till exempel skicka ett proaktivt meddelande för att meddela en användare när en timer upphör att gälla eller om en händelse inträffar.

Hur kan jag skicka proaktiva meddelanden till användaren?

Exempel som visar hur du skickar proaktiva meddelanden finns i C# V4-exempel och Node.js V4-exempel på lagringsplatsen BotBuilder-Samples på GitHub.

Vad är en ETag? Hur relaterar det till lagring av robotdatapåsar?

En ETag är en mekanism för optimistisk samtidighetskontroll. Lagringen av robotdatapåsar använder ETags för att förhindra motstridiga uppdateringar av data. Ett ETag-fel med HTTP-statuskoden 412 "Förhandsvillkoret misslyckades" anger att flera meddelanden togs emot parallellt innan roboten kunde slutföra sin första åtgärd. Dialogstacken och tillståndet lagras i robotdatapåsar. Du kan till exempel se ETag-felet "Förhandsvillkor misslyckades" om roboten fortfarande bearbetar ett tidigare meddelande när den tar emot ett nytt meddelande för konversationen.

Vad är hastighetsbegränsning?

Bot Framework-tjänsten måste skydda sig själv och sina kunder mot missbruk av samtalsmönster (till exempel en överbelastningsattack), så att ingen enskild robot kan påverka andra robotars prestanda negativt. För att uppnå den här typen av skydd har vi lagt till hastighetsgränser (kallas även begränsning) för våra slutpunkter. Genom att tillämpa en hastighetsgräns kan vi begränsa hur ofta en klient eller robot kan göra ett specifikt anrop. Till exempel: med hastighetsbegränsning aktiverat, om en robot vill publicera ett stort antal aktiviteter, skulle den behöva fördela dem under en tidsperiod. Syftet med hastighetsbegränsning är inte att begränsa den totala volymen för en robot. Den är utformad för att förhindra missbruk av konversationsinfrastrukturen som inte följer mänskliga konversationsmönster. Till exempel kan två konversationer med mer innehåll än två människor någonsin konsumera.

Vilka är hastighetsgränserna?

Vi justerar kontinuerligt hastighetsgränserna för att göra dem så överseende som möjligt samtidigt som vi skyddar vår tjänst och våra användare. Eftersom tröskelvärdena ibland ändras publicerar vi inte talen just nu. Slutligen, om du är värd för din robot på en App Service, är roboten bunden till begränsningarna i App Service. Mer information finns i SLA-sammanfattning för Azure-tjänster Om du påverkas av hastighetsbegränsning kan du kontakta oss på bf-reports@microsoft.com.

Vad är storleksgränsen för en fil som överförs med hjälp av kanaler?

Vissa kanaler har gränser för storleken eller typen av filer som kan skickas. Till exempel begränsar både Direct Line och Facebook aktivitetsnyttolaster till 262 144 byte, medan Bot Framework-emulatorn inte har någon gräns. Sådana gränser tillämpas av kanalen. Om du skickar ett meddelande som överskrider den här gränsen kan du få ett fel, till exempel: Innehållslängden för begäran överskred gränsen på 262 144 byte. Du kan dock ange en länk till resursen som en internetbilaga. Mer information om hur du skickar bifogade filer finns i lägga till media i meddelanden.

Hur vet jag om jag påverkas av hastighetsbegränsning?

Det är osannolikt att du kommer att uppleva hastighetsbegränsning, även på hög volym. De flesta hastighetsbegränsningar sker bara på grund av massutskick av aktiviteter (från en robot eller från en klient), extrem belastningstestning eller en bugg. När en begäran begränsas returneras ett HTTP 429-svar (för många begäranden) tillsammans med ett återförsökshuvud som anger hur lång tid (i sekunder) som ska vänta innan begäran försöker igen. Du kan samla in den här informationen genom att aktivera analys för din robot via Azure Application Insights. Eller så kan du lägga till kod i roboten för att logga meddelanden.

Hur sker hastighetsbegränsning?

Hastighetsbegränsning orsakas av något av följande villkor:

  • En robot skickar meddelanden för ofta
  • En klient för en robot skickar meddelanden för ofta
  • Direct Line-klienter begär en ny webbsocket för ofta

Hur implementerar man mänsklig överlämning?

Ibland är det nödvändigt att överföra (överlämna) en konversation från en robot till en människa, till exempel när roboten inte förstår användaren eller begäran inte kan automatiseras. I dessa fall ger roboten en övergång till människor. Bot Framework SDK stöder överlämning till en människa. Det finns några händelsetyper för att signalera överlämningsåtgärder. Dessa händelser utbyts mellan en robot och en agenthubb, även kallad engagement hub. Den här agenthubben definieras som ett program eller ett system som gör det möjligt för agenter, vanligtvis människor, att ta emot och hantera begäranden från användare och eskaleringsbegäranden från robotar. Detaljerad information finns i artikeln Övergångskonversationer från robot till människa .