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 bör du överväga att använda Power Virtual Agents och läsa om hur du väljer rätt chattrobotlösning.

Mer information finns i Framtiden för robotbygge.

Förutsättningar

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.

För ny robotutveckling bör du överväga att använda virtuella Power-agenter. 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:

C# QnABot-logikflöde

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.

  1. På QnA Maker-webbplatsen väljer du din kunskapsbas.
  2. 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.
  3. 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

C# (arkiverad)

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

C# (arkiverad)

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

C# (arkiverad)

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.

Testa exempelroboten.

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.