Natuurlijke taalbegrip toevoegen aan uw bot
VAN TOEPASSING OP: SDK v4
Notitie
Language Understanding (LUIS) wordt op 1 oktober 2025 buiten gebruik gesteld. Vanaf 1 april 2023 kunt u geen nieuwe LUIS-resources maken. Er is nu een nieuwere versie van taalkennis beschikbaar als onderdeel van Azure AI Language.
Conversational Language Understanding (CLU), een functie van Azure AI Language, is de bijgewerkte versie van LUIS. Zie Natuurlijke taalkennis voor meer informatie over ondersteuning voor taalkennis in de Bot Framework SDK.
De mogelijkheid om te begrijpen wat uw gebruiker gesprekskundig en contextueel betekent, kan een moeilijke taak zijn, maar kan uw bot een natuurlijker gespreksgevoel bieden. Language Understanding (LUIS) is een cloud-API-service waarmee u dit kunt doen, zodat uw bot de intentie van gebruikersberichten kan herkennen, meer natuurlijke taal van uw gebruiker kan toestaan en de gespreksstroom beter kan doorsturen.
In dit onderwerp wordt uitgelegd hoe u LUIS toevoegt aan een vluchtboekingstoepassing om verschillende intenties en entiteiten in gebruikersinvoer te herkennen.
Notitie
De Sdk's voor Bot Framework JavaScript, C# en Python blijven ondersteund, maar de Java SDK wordt buiten gebruik gesteld met definitieve langetermijnondersteuning die eindigt op november 2023.
Bestaande bots die zijn gebouwd met de Java SDK blijven functioneren.
Voor het bouwen van nieuwe bots kunt u Microsoft Copilot Studio gebruiken en lezen over het kiezen van de juiste copilot-oplossing.
Zie De toekomst van botbouw voor meer informatie.
Vereisten
- Een LUIS-account .
- Een kopie van het Core Bot-voorbeeld in C#, JavaScript, Java of Python.
- Kennis van basisprincipes van bot en verwerking van natuurlijke taal.
Over dit voorbeeld
Dit kernbotvoorbeeld toont een voorbeeld van een vluchtboekingstoepassing voor een luchthaven. Er wordt een LUIS-service gebruikt om de gebruikersinvoer te herkennen en de belangrijkste herkende LUIS-intentie te retourneren.
Het taalmodel bevat drie intenties: Book Flight
, Cancel
en None
. LUIS gebruikt deze intenties om te begrijpen wat de gebruiker bedoelde wanneer ze een bericht naar de bot verzenden. Het taalmodel definieert ook entiteiten die LUIS kan extraheren uit de invoer van de gebruiker, zoals de luchthaven van oorsprong of bestemming.
Na elke verwerking van gebruikersinvoer slaat DialogBot
de huidige status van zowel UserState
als ConversationState
op. Zodra alle vereiste informatie is verzameld, maakt het codevoorbeeld een demo vliegtuigboeking. In dit artikel behandelen we de LUIS-aspecten van dit voorbeeld. De algemene stroom van de steekproef is echter:
-
OnMembersAddedAsync
wordt aangeroepen wanneer een nieuwe gebruiker is verbonden en een welkomstkaart weergeeft. -
OnMessageActivityAsync
wordt aangeroepen voor elke ontvangen gebruikersinvoer.
De OnMessageActivityAsync
module voert het juiste dialoogvenster uit via de Run
dialoogvensterextensiemethode. Vervolgens roept het hoofddialoogvenster de LUIS-helper aan om de meest scorende gebruikersintentie te vinden. Als de hoofdintentie voor de invoer van de gebruiker "BookFlight" is, vult de helper de informatie in van de gebruiker die door LUIS is geretourneerd. Na die tijd start het hoofddialoogvenster BookingDialog
, die aanvullende informatie verkrijgt van de gebruiker, zoals:
-
Origin
de oorspronkelijke stad -
TravelDate
de datum waarop de vlucht moet worden geboekt -
Destination
de bestemmingsstad
In dit artikel wordt beschreven hoe u LUIS toevoegt aan een bot. Zie voor informatie over het gebruik van dialoogvensters of statussen hoe u gebruikersinvoer verzamelt met behulp van een dialoogvensterprompt of respectievelijk gebruikers- en gespreksgegevens opslaat.
Een LUIS-app maken in de LUIS-portal
- Meld u aan bij de LUIS-portal en maak indien nodig een account en ontwerpresource.
- Selecteer Importeren op de pagina Gespreks-apps in LUIS en importeer vervolgens als JSON.
- In het dialoogvenster Nieuwe app importeren:
- Kies het bestand FlightBooking.json in de map CognitiveModels van het voorbeeld.
- Voer
FlightBooking
de optionele naam van de app in en selecteer Gereed.
- Op de site kan worden weergegeven hoe u een effectieve LUIS-app maakt en dialoogvensters voor samengestelde entiteiten bijwerken. U kunt deze dialoogvensters sluiten en doorgaan.
- Train uw app en publiceer uw app vervolgens naar de productieomgeving . Zie de LUIS-documentatie over het trainen en publiceren van een app voor meer informatie.
Waarom entiteiten gebruiken
Met LUIS-entiteiten kan uw bot gebeurtenissen begrijpen die verder gaan dan standaardintenties. Hierdoor kunt u aanvullende informatie verzamelen van gebruikers, zodat uw bot vragen kan stellen en intelligenter kan reageren. Samen met definities voor de drie LUIS-intenties 'Book Flight', 'Cancel' en 'None', bevat het bestand FlightBooking.json ook een reeks entiteiten zoals 'Van.Airport' en 'Naar.Airport'. Met deze entiteiten kan LUIS aanvullende informatie detecteren en retourneren die is opgenomen in de oorspronkelijke invoer van de gebruiker wanneer ze een nieuwe reisboeking aanvragen.
Waarden verkrijgen om verbinding te maken met uw LUIS-app
Zodra uw LUIS-app is gepubliceerd, kunt u deze openen vanuit uw bot. U moet verschillende waarden vastleggen voor toegang tot uw LUIS-app vanuit uw bot. U kunt deze informatie ophalen met behulp van de LUIS-portal.
Toepassingsgegevens ophalen uit de LUIS.ai-portal
Het instellingenbestand (appsettings.json
of .env
config.py
) fungeert als de plaats waar alle serviceverwijzingen op één plaats worden samengevoegd. De informatie die u ophaalt, wordt toegevoegd aan dit bestand in de volgende sectie.
Selecteer uw gepubliceerde LUIS-app in luis.ai.
Wanneer uw gepubliceerde LUIS-app is geopend, selecteert u het tabblad BEHEREN .
Selecteer het tabblad Instellingen aan de linkerkant en noteer de waarde die wordt weergegeven voor de toepassings-id als <YOUR_APP_ID>.
Selecteer Azure-resources en vervolgens Voorspellingsresource. Noteer de waarde die wordt weergegeven voor Locatie als <YOUR_REGION> en primaire sleutel als <YOUR_AUTHORING_KEY>.
U kunt ook de regio en primaire sleutel voor uw auteursresource gebruiken.
Het instellingenbestand bijwerken
Voeg de informatie toe die nodig is voor toegang tot uw LUIS-app, inclusief toepassings-id, ontwerpsleutel en regio in het appsettings.json
bestand. In de vorige stap hebt u deze waarden opgehaald uit uw gepubliceerde LUIS-app. De NAAM van de API-host moet de indeling <your region>.api.cognitive.microsoft.com
hebben.
appsetting.json
Waarschuwing
Het lijkt erop dat het voorbeeld dat u zoekt, is verplaatst. Wees gerust dat we aan het oplossen hiervan werken.
Uw bot configureren voor het gebruik van uw LUIS-app
Zorg ervoor dat het Microsoft.Bot.Builder.AI.Luis NuGet-pakket is geïnstalleerd voor uw project.
Om verbinding te maken met de LUIS-service, haalt de bot de informatie op die u hebt toegevoegd aan het appsetting.json-bestand. De FlightBookingRecognizer
klasse bevat code met uw instellingen uit het appsetting.json-bestand en voert query's uit op de LUIS-service door de methode aan te roepen RecognizeAsync
.
FlightBookingRecognizer.cs
Waarschuwing
Het lijkt erop dat het voorbeeld dat u zoekt, is verplaatst. Wees gerust dat we aan het oplossen hiervan werken.
De FlightBookingEx.cs
bevat de logica voor het extraheren van, Naar en TravelDate; het breidt de gedeeltelijke klasse FlightBooking.cs
uit die wordt gebruikt om LUIS-resultaten op te slaan bij het aanroepen FlightBookingRecognizer.RecognizeAsync<FlightBooking>
van de MainDialog.cs
.
CognitiveModels\FlightBookingEx.cs
Waarschuwing
Het lijkt erop dat het voorbeeld dat u zoekt, is verplaatst. Wees gerust dat we aan het oplossen hiervan werken.
LUIS is nu geconfigureerd en verbonden voor uw bot.
De bot testen
De nieuwste Bot Framework Emulator downloaden en installeren
Voer het voorbeeld lokaal uit op uw computer. Als u instructies nodig hebt, raadpleegt u het bestand voor het
README
C#-voorbeeld, JS-voorbeeld of Python-voorbeeld.Typ in de Emulator een bericht zoals 'reizen naar Parijs' of 'van Parijs naar Berlijn'. Gebruik een willekeurige uiting in het bestand FlightBooking.json voor het trainen van de bedoeling 'Boek vlucht'.
Als de belangrijkste intentie die door LUIS wordt geretourneerd, wordt omgezet in 'Boekvlucht', stelt uw bot meer vragen totdat er voldoende informatie is opgeslagen om een reisboeking te maken. Op dat moment worden deze boekingsgegevens teruggezet naar uw gebruiker.
Op dit moment wordt de logica van de codebot opnieuw ingesteld en kunt u meer boekingen blijven maken.
Aanvullende informatie
Zie de LUIS-documentatie voor meer informatie over LUIS:
- Wat is Language Understanding (LUIS)?
- Een nieuwe LUIS-app maken in de LUIS-portal
- Ontwerpen met intentie- en entiteitsmodellen
- Migreren naar V3-creatie-API's
- Migreren naar V3-voorspellings-API's
Tip
Verschillende onderdelen van de SDK definiëren afzonderlijke entiteitsklassen of -elementen. Zie Entiteiten en activiteitstypen voor berichtentiteiten.