Använda QnA Maker till att besvara frågor
GÄLLER FÖR: SDK v4
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.
QnA Maker tillhandahåller en konversationsfråga och ett svarslager över dina data. På så vis kan din chattrobot skicka en fråga till QnA Maker och få ett svar utan att du behöver parsa och tolka avsikten med frågan.
Ett av de grundläggande kraven när du skapar din egen QnA Maker-tjänst är att fylla den med frågor och svar. I många fall finns frågorna och svaren redan i innehåll som Vanliga frågor och svar eller annan dokumentation. I andra fall kan du anpassa dina frågesvar på ett mer naturligt sätt som liknar en konversation.
Den här artikeln beskriver hur du använder en befintlig QnA Maker-kunskapsbas från din robot.
För nya robotar bör du överväga att använda frågesvarsfunktionen i Azure Cognitive Service for Language. Mer information finns i Använda svar på frågor för att besvara frågor.
Kommentar
Bot Framework JavaScript-, C#- och Python-SDK:erna fortsätter att stödjas, men Java SDK dras tillbaka med slutligt långsiktigt stöd som slutar i november 2023.
Befintliga robotar som skapats med Java SDK fortsätter att fungera.
Om du vill skapa en ny robot kan du använda Microsoft Copilot Studio och läsa om hur du väljer rätt copilot-lösning.
Mer information finns i Framtiden för robotbygge.
Förutsättningar
- Ett QnA Maker-konto och en befintlig QnA Maker-kunskapsbas.
- Kunskap om grunderna för robotar och QnA Maker.
- En kopia av QnA Maker-exemplet (enkelt) i C# (arkiverat), JavaScript (arkiverat), Java (arkiverat)eller Python (arkiverat).
Om det här exemplet
Om du vill använda QnA Maker i roboten behöver du en befintlig kunskapsbas i QnA Maker-portalen. Roboten kan sedan använda kunskapsbas för att besvara användarens frågor.
Överväg att använda Copilot Studio för ny robotutveckling. Om du behöver skapa en ny kunskapsbas för en Bot Framework SDK-robot kan du läsa följande artiklar om Azure AI-tjänster:
- Vad är svar på frågor?
- Skapa en robot med vanliga frågor och svar
- Azure Cognitive Language Services–fråga Besvara klientbiblioteket för .NET
OnMessageActivityAsync
anropas för varje användarindata som tas emot. När den anropas kommer den åt konfigurationsinställningarna från exempelkodens appsetting.json-fil för att hitta värdet för att ansluta till din förkonfigurerade QnA Maker-kunskapsbas.
Användarens indata skickas till din kunskapsbas och det bästa returnerade svaret visas tillbaka till användaren.
Hämta värden för att ansluta roboten till kunskapsbas
Dricks
QnA Maker-dokumentationen innehåller instruktioner om hur du skapar, tränar och publicerar dina kunskapsbas.
- På QnA Maker-webbplatsen väljer du din kunskapsbas.
- När kunskapsbas är öppen väljer du fliken INSTÄLLNINGAR. Registrera värdet som visas som tjänstnamn. Det här värdet är användbart för att hitta dina kunskapsbas av intresse när du använder QnA Maker-portalgränssnittet. Den används inte för att ansluta robotappen till den här kunskapsbas.
- Rulla nedåt för att hitta distributionsinformation och registrera följande värden från Postman-exempel-HTTP-begäran:
- POST /knowledgebases/<knowledge-base-id>/generateAnswer
- Värd: <din-värd-URL>
- Auktorisering: EndpointKey <your-endpoint-key>
Värd-URL:en börjar med https://
och slutar med /qnamaker
, till exempel https://<hostname>.azure.net/qnamaker
. Roboten behöver kunskapsbas-ID, värd-URL och slutpunktsnyckel för att ansluta till din QnA Maker-kunskapsbas.
Uppdatera inställningsfilen
Lägg först till den information som krävs för att komma åt din kunskapsbas– inklusive värdnamn, slutpunktsnyckel och kunskapsbas-ID (kbId)– i inställningsfilen. Det här är de värden som du sparade på fliken INSTÄLLNINGAR i din kunskapsbas i QnA Maker.
Om du inte distribuerar detta för produktion kan du lämna robotens app-ID och lösenordsfält tomma.
Kommentar
Om du vill lägga till en QnA Maker-kunskapsbas i ett befintligt robotprogram måste du lägga till informativa rubriker för dina QnA-poster. Värdet "namn" i det här avsnittet innehåller nyckeln som krävs för att komma åt den här informationen från din app.
appsettings.json
Konfigurera QnA Maker-instansen
Först skapar vi ett objekt för åtkomst till vår QnA Maker-kunskapsbas.
Kontrollera att NuGet-paketet Microsoft.Bot.Builder.AI.QnA är installerat för projektet.
I QnABot.cs skapar du en QnAMaker-instans i OnMessageActivityAsync
metoden. Klassen QnABot
är också där namnen på anslutningsinformationen, som sparats i appsettings.json ovan, hämtas. Om du har valt olika namn för din kunskapsbas anslutningsinformation i inställningsfilen bör du uppdatera namnen här så att de återspeglar ditt valda namn.
Robotar/QnABot.cs
Anropa QnA Maker från din robot
När din robot behöver ett svar från QnAMaker anropar GetAnswersAsync
du metoden från robotkoden för att få rätt svar baserat på den aktuella kontexten. Om du har åtkomst till dina egna kunskapsbas ändrar du meddelandet inga svar nedan för att ge användarna användbara instruktioner.
Robotar/QnABot.cs
Testa roboten
Kör exemplet lokalt på datorn. Om du inte redan har gjort det installerar du Bot Framework-emulatorn. Mer information finns i exemplets README
(C# (arkiverad), JavaScript (arkiverad), Java (arkiverad)eller Python (arkiverad)).
Starta emulatorn, anslut till roboten och skicka meddelanden till roboten. Svaren på dina frågor varierar beroende på vilken information du kunskapsbas.
Ytterligare information
QnA Maker-exempel med flera svängar (C# multi-turn sample (arkiverat), JavaScript multi-turn sample (arkiverat), Java multi-turn sample (arkiverat), Python multi-turn sample (arkiverat)) visar hur du använder en QnA Maker-dialogruta för att stödja QnA Maker:s uppföljningsprompt och aktiva inlärningsfunktioner.
QnA Maker stöder uppföljningsprompter, även kallade frågor med flera svängar. Om QnA Maker-kunskapsbas kräver mer information från användaren skickar QnA Maker sammanhangsinformation som du kan använda för att fråga användaren. Den här informationen används också för att göra uppföljningsanrop till QnA Maker-tjänsten. I version 4.6 har Bot Framework SDK lagt till stöd för den här funktionen.
Om du vill skapa en sådan kunskapsbas kan du läsa QnA Maker-dokumentationen om hur du använder uppföljningsprompter för att skapa flera konversationsvarv.
QnA Maker har också stöd för aktiva inlärningsförslag, vilket gör att kunskapsbas kan förbättras med tiden. Dialogrutan QnA Maker stöder explicit feedback för den aktiva inlärningsfunktionen.
Information om hur du aktiverar den här funktionen på en kunskapsbas finns i QnA Maker-dokumentationen om förslag på aktiv inlärning.
Nästa steg
QnA Maker kan kombineras med andra Azure AI-tjänster för att göra din robot ännu kraftfullare. Bot Framework Orchestrator är ett sätt att kombinera QnA med Language Understanding (LUIS) i din robot.