Természetes hangfelismerés hozzáadása a robothoz
A KÖVETKEZŐKRE VONATKOZIK: SDK v4
Feljegyzés
A Language Understanding (LUIS) szolgáltatást 2025. október 1-jén megszüntetik. 2023. április 1-től nem hozhat létre új LUIS-erőforrásokat. Az Azure AI Language részeként már elérhető a nyelvértés újabb verziója.
Az Azure AI Language egyik funkciója, a beszélgetési nyelv megértése (CLU) a LUIS frissített verziója. További információ a Bot Framework SDK nyelvfelismerési támogatásáról: Természetes nyelvfelismerés.
Nehéz feladat lehet megérteni, hogy a felhasználó mit jelent a beszélgetésben és a kontextusban, de természetesebb beszélgetési környezetet biztosíthat a robotnak. A Language Understanding (LUIS) egy felhőalapú API-szolgáltatás, amely lehetővé teszi, hogy a robot felismerje a felhasználói üzenetek szándékát, természetesebb nyelvet biztosíthasson a felhasználótól, és jobban irányíthassa a beszélgetési folyamatot.
Ez a témakör végigvezeti a LUIS hozzáadásán egy repülőjegy-foglalási alkalmazáshoz, hogy felismerje a felhasználói bemenetben található különböző szándékokat és entitásokat.
Feljegyzés
A Bot Framework JavaScript, C# és Python SDK-k továbbra is támogatottak lesznek, a Java SDK-t azonban 2023 novemberében végső hosszú távú támogatással kivonják.
A Java SDK-val létrehozott meglévő robotok továbbra is működni fognak.
Az új robotépítéshez fontolja meg a Microsoft Copilot Studio használatát, és olvassa el a megfelelő copilot-megoldás kiválasztását.
További információ: A robotépítés jövője.
Előfeltételek
- LUIS-fiók.
- A Core Bot minta egy másolata C#, JavaScript, Java vagy Python nyelven.
- A robot alapjainak és a természetes nyelvi feldolgozásnak a ismerete.
A minta ismertetése
Ez az alapvető robotminta egy repülőtéri járatfoglalási alkalmazás példáját mutatja be. Luis-szolgáltatással ismeri fel a felhasználói bemenetet, és visszaadja a legjobban felismert LUIS-szándékot.
A nyelvi modell három szándékot tartalmaz: Book Flight
, Cancel
és None
. A LUIS ezeket a szándékokat arra használja, hogy megértse, mit jelentett a felhasználó, amikor üzenetet küld a robotnak. A nyelvi modell meghatározza azokat az entitásokat is, amelyeket a LUIS kinyerhet a felhasználó bemenetéből, például a forrás- vagy célrepülőteret.
A felhasználói bemenetek feldolgozása után a DialogBot
menti mind a UserState
, mind a ConversationState
aktuális állapotát. Az összes szükséges információ összegyűjtése után a kódolási minta létrehoz egy bemutató repülőjegy foglalást. Ebben a cikkben a minta LUIS-szempontjait fogjuk lefedni. A minta általános folyamata azonban a következő:
-
OnMembersAddedAsync
a rendszer meghívja, amikor egy új felhasználó csatlakozik, és üdvözlőkártyát jelenít meg. - Minden beérkező felhasználói bemenet esetén meghívják a
OnMessageActivityAsync
-t.
A OnMessageActivityAsync
modul a Run
párbeszédpanel bővítési metódusán keresztül futtatja a megfelelő párbeszédet. Ezután a fő párbeszédpanel meghívja a LUIS-segítőt, hogy keresse meg a legmagasabb pontszámú felhasználói szándékot. Ha a felhasználói bemenet fő szándéka a "BookFlight" értéket adja vissza, a segéd kitölti azokat az információkat, amelyeket a LUIS adott vissza a felhasználónak. Ezután a fő párbeszédpanel elindítja a BookingDialog
következőt, amely szükség szerint további információkat szerez be a felhasználótól, például:
-
Origin
a kiinduló város -
TravelDate
a járat lefoglalásának dátuma -
Destination
a cél város
Ez a cikk bemutatja, hogyan adhat hozzá LUIS-t egy robothoz. A párbeszédpanelek vagy állapotok használatával kapcsolatos információkért tekintse meg, hogyan gyűjthet felhasználói bemenetet egy párbeszédpanel-parancssor használatával, illetve hogyan mentheti a felhasználói és a beszélgetési adatokat.
LUIS-alkalmazás létrehozása a LUIS-portálon
- Jelentkezzen be a LUIS-portálra , és szükség esetén hozzon létre egy fiókot és egy szerzői erőforrást.
- A LUIS Beszélgetési alkalmazások lapján válassza az Importálás, majd az Importálás JSON-ként lehetőséget.
-
Az Új alkalmazás importálása párbeszédpanelen:
- Válassza ki a FlightBooking.json fájlt a minta CognitiveModels mappájában.
- Adja meg
FlightBooking
az alkalmazás opcionális nevét, és válassza a Kész lehetőséget.
- A webhely megjelenítheti , hogyan hozhat létre hatékony LUIS-alkalmazást , és frissítheti az összetett entitások párbeszédpaneleit. Ezeket a párbeszédpaneleket bezárhatja, és folytathatja.
- Tanítsa be az alkalmazást, majd tegye közzé az alkalmazást az éles környezetben. További információkért tekintse meg a LUIS-dokumentációt, amely bemutatja, hogyan lehet egy alkalmazást kiképezni és közzétenni.
Miért érdemes entitásokat használni?
A LUIS-entitások lehetővé teszik a robot számára, hogy megértse a szabványos szándékokon túli eseményeket. Ez lehetővé teszi, hogy további információkat gyűjtsön a felhasználóktól, így a robot kérdéseket tehet fel, és intelligensebben válaszolhat. A három LUIS-szándék , a "Book Flight", a "Cancel" és a "None" definícióival együtt a FlightBooking.json fájl olyan entitásokat is tartalmaz, mint a From.Airport és a To.Airport. Ezek az entitások lehetővé teszik a LUIS számára, hogy észlelje és visszaadja a felhasználó eredeti bemenetén belül található további információkat, amikor új utazási foglalást kérnek.
Értékek lekérése a LUIS-alkalmazáshoz való csatlakozáshoz
A LUIS-alkalmazás közzétételét követően a botján keresztül érheti el. Több értéket kell rögzítenie, hogy a robotjából hozzáférjen a LUIS-alkalmazáshoz. Ezeket az információkat a LUIS-portálon lehet lekérni.
Alkalmazásadatok lekérése a LUIS.ai portálról
A beállításfájl (appsettings.json
.env
vagy config.py
) az összes szolgáltatáshivatkozás egy helyen való összevonásának helye. A lekért információk a következő szakaszban lesznek hozzáadva ehhez a fájlhoz.
Válassza ki a közzétett LUIS-alkalmazást a luis.ai.
A közzétett LUIS-alkalmazás megnyitása után válassza a MANAGE lapot.
Válassza a bal oldalon a Beállítások lapot, és rögzítse az alkalmazásazonosítóhoz <>YOUR_APP_ID megjelenített értéket.
Válassza ki az Azure-erőforrásokat, majd az előrejelzési erőforrást. Jegyezze fel a Hely értékét mint <YOUR_REGION>, és az elsődleges kulcs értékét mint <YOUR_AUTHORING_KEY>.
Másik lehetőségként használhatja a régiót és az elsődleges kulcsot a szerzői erőforráshoz.
A beállításfájl frissítése
Adja hozzá a LUIS-alkalmazás eléréséhez szükséges információkat, beleértve az alkalmazásazonosítót, a szerzői kulcsot és a régiót a appsettings.json
fájlba. Az előző lépésben lekérte ezeket az értékeket a közzétett LUIS-alkalmazásból. Az API-gazdagép nevének formátumában <your region>.api.cognitive.microsoft.com
kell lennie.
appsetting.json
Figyelmeztetés
Úgy tűnik, hogy a keresett minta át lett helyezve! Biztos lehet benne, hogy dolgozunk a probléma megoldásán.
A robot konfigurálása a LUIS-alkalmazás használatára
Győződjön meg arról, hogy a Microsoft.Bot.Builder.AI.Luis NuGet csomag telepítve van a projekthez.
A LUIS szolgáltatáshoz való csatlakozáshoz a robot lekéri a appsetting.json fájlhoz hozzáadott adatokat. Az FlightBookingRecognizer
osztály a appsetting.json fájlban található beállításokat tartalmazó kódot tartalmaz, és hívási RecognizeAsync
metódussal lekérdezi a LUIS szolgáltatást.
FlightBookingRecognizer.cs
Figyelmeztetés
Úgy tűnik, hogy a keresett minta át lett helyezve! Biztos lehet benne, hogy dolgozunk a probléma megoldásán.
Az FlightBookingEx.cs
tartalmazza azt a logikát, amellyel ki lehet nyerni a From, To és TravelDate adatokat; kiterjeszti a részleges osztályt FlightBooking.cs
, amelyet a LUIS-eredmények tárolására használnak, amikor a MainDialog.cs
-ból/ből FlightBookingRecognizer.RecognizeAsync<FlightBooking>
-ot/et hívnak meg.
CognitiveModels\FlightBookingEx.cs
Figyelmeztetés
Úgy tűnik, hogy a keresett minta át lett helyezve! Biztos lehet benne, hogy dolgozunk a probléma megoldásán.
A LUIS most már konfigurálva van, és csatlakozik a robothoz.
A robot tesztelése
Töltse le és telepítse a legújabb Bot Framework Emulatort
Futtassa a mintát helyileg a számítógépen. Ha útmutatásra van szüksége, tekintse meg a
README
C#-minta, a JS-minta vagy a Python-minta fájljait.Az Emulátorban írjon be egy üzenetet, például "utazás Párizsba" vagy "Párizsból Berlinbe". A "Repülőjegy foglalás" szándék betanításához használja a FlightBooking.json fájlban található bármelyik kifejezést.
Ha a LUIS által visszaadott fő szándék a "Repülőjegy foglalás", a robot további kérdéseket tesz fel, amíg elegendő információ nem áll rendelkezésére az utazási foglalás létrehozásához. Ezen a ponton vissza fogja adni ezt a foglalási információt a felhasználónak.
Ezen a ponton a kódrobot logikája alaphelyzetbe áll, és továbbra is létrehozhat további foglalásokat.
További információk
A LUIS-ról további információt a LUIS dokumentációjában talál:
- Mi az a Language Understanding (LUIS)?
- Új LUIS-alkalmazás létrehozása a LUIS-portálon
- Tervezés szándék- és entitásmodellekkel
- V3 szerzői API-kra való migrálás
- Migrálás v3 előrejelzési API-kba
Tipp
Az SDK különböző részei külön entitásosztályokat vagy elemeket határoznak meg. Az üzenetentitásokról az Entitások és a tevékenységtípusok című témakörben olvashat.