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-baza znanja 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-baza znanja.
- 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 baza znanja i QnA Maker-portalen. Roboten kan sedan använda baza znanja 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 baza znanja 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-baza znanja.
Användarens indata skickas till din baza znanja och det bästa returnerade svaret visas tillbaka till användaren.
Hämta värden för att ansluta roboten till baza znanja
Dricks
QnA Maker-dokumentationen innehåller instruktioner om hur du skapar, tränar och publicerar dina baza znanja.
- Välj din baza znanja på QnA Maker-webbplatsen.
- När baza znanja är öppen väljer du fliken INSTÄLLNINGAR. Registrera det värde som visas som tjänstnamn. Det här värdet är användbart för att hitta dina baza znanja av intresse när du använder QnA Maker-portalgränssnittet. Den används inte för att ansluta robotappen till den här baza znanja.
- 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 baza znanja-ID, värd-URL och slutpunktsnyckel för att ansluta till din QnA Maker-baza znanja.
Uppdatera inställningsfilen
Lägg först till den information som krävs för att komma åt din baza znanja– inklusive värdnamn, slutpunktsnyckel och baza znanja-ID (kbId)– i inställningsfilen. Det här är de värden som du sparade på fliken INSTÄLLNINGAR i din baza znanja 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-baza znanja 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-baza znanja.
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 baza znanja 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 baza znanja ä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 baza znanja.
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-baza znanja kräver mer information från användaren skickar QnA Maker kontextinformation 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 baza znanja kan du läsa QnA Maker-dokumentationen om hur du använder uppföljningsprompter för att skapa flera konversationsvarv.
QnA Maker stöder också förslag på aktiv inlärning, vilket gör att baza znanja kan förbättras med tiden. Dialogrutan QnA Maker stöder explicit feedback för den aktiva inlärningsfunktionen.
Om du vill aktivera den här funktionen på en baza znanja kan du läsa QnA Maker-dokumentationen om aktiva inlärningsförslag.
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.