Uppdatera ett kommando från en klientapp
Viktigt!
Anpassade kommandon dras tillbaka den 30 april 2026. Från och med den 30 oktober 2023 kan du inte skapa nya program för anpassade kommandon i Speech Studio. I samband med den här ändringen dras LUIS tillbaka den 1 oktober 2025. Från och med den 1 april 2023 kan du inte skapa nya LUIS-resurser.
I den här artikeln får du lära dig hur du uppdaterar ett pågående kommando från ett klientprogram.
Förutsättningar
- En tidigare skapad app för Anpassade kommandon
Uppdatera tillståndet för ett kommando
Om klientprogrammet kräver att du uppdaterar tillståndet för ett pågående kommando utan röstindata kan du skicka en händelse för att uppdatera kommandot.
För att illustrera det här scenariot skickar du följande händelseaktivitet för att uppdatera tillståndet för ett pågående kommando (TurnOnOff
):
{
"type": "event",
"name": "RemoteUpdate",
"value": {
"updatedCommand": {
"name": "TurnOnOff",
"updatedParameters": {
"OnOff": "on"
},
"cancel": false
},
"updatedGlobalParameters": {},
"processTurn": true
}
}
Nu ska vi gå igenom de viktigaste attributen för den här aktiviteten:
Attribut | Förklaring |
---|---|
typ | Aktiviteten är av typen "event" . |
Namn | Namnet på händelsen måste vara "RemoteUpdate" . |
värde | Attributet "value" innehåller de attribut som krävs för att uppdatera det aktuella kommandot. |
updatedCommand | Attributet "updatedCommand" innehåller namnet på kommandot. Inom det attributet "updatedParameters" finns en karta med namnen på parametrarna och deras uppdaterade värden. |
Avbryt | Om det pågående kommandot måste avbrytas anger du attributet "cancel" till true . |
updatedGlobalParameters | Attributet "updatedGlobalParameters" är en karta precis som "updatedParameters" , men används för globala parametrar. |
processTurn | Om svängen behöver bearbetas efter att aktiviteten har skickats anger du attributet "processTurn" till true . |
Du kan testa det här scenariot i portalen för anpassade kommandon:
- Öppna programmet Anpassade kommandon som du skapade tidigare.
- Välj Träna och sedan Testa.
- Skicka
turn
. - Öppna sidopanelen och välj Aktivitetsredigeraren.
- Skriv och skicka händelsen
RemoteCommand
som angavs i föregående avsnitt.
Observera hur värdet för parametern "OnOff"
har angetts till "on"
via en aktivitet från klienten i stället för tal eller text.
Uppdatera katalogen för parametern för ett kommando
När du konfigurerar listan över giltiga alternativ för en parameter definieras värdena för parametern globalt för programmet.
I vårt exempel har parametern SubjectDevice
en fast lista över värden som stöds oavsett konversation.
Om du vill lägga till nya poster i parameterns katalog per konversation kan du skicka följande aktivitet:
{
"type": "event",
"name": "RemoteUpdate",
"value": {
"catalogUpdate": {
"commandParameterCatalogs": {
"TurnOnOff": [
{
"name": "SubjectDevice",
"values": {
"stereo": [
"cd player"
]
}
}
]
}
},
"processTurn": false
}
}
Med den här aktiviteten har du lagt till en post för "stereo"
i katalogen för parametern "SubjectDevice"
i kommandot "TurnOnOff"
.
Observera några saker:
- Du behöver bara skicka den här aktiviteten en gång (helst direkt efter att du har startat en anslutning).
- När du har skickat den här aktiviteten bör du vänta tills händelsen
ParameterCatalogsUpdated
skickas tillbaka till klienten.
Lägga till mer kontext från klientprogrammet
Du kan ange mer kontext från klientprogrammet per konversation som senare kan användas i ditt program för anpassade kommandon.
Tänk till exempel på scenariot där du vill skicka ID:t och namnet på den enhet som är ansluten till programmet Anpassade kommandon.
För att testa det här scenariot ska vi skapa ett nytt kommando i det aktuella programmet:
Skapa ett nytt kommando med namnet
GetDeviceInfo
.Lägg till en exempel mening med
get device info
.I slutföranderegeln Klar lägger du till en skicka talsvarsåtgärd som innehåller attributen
clientContext
för .Spara, träna och testa ditt program.
I testfönstret skickar du en aktivitet för att uppdatera klientkontexten.
{ "type": "event", "name": "RemoteUpdate", "value": { "clientContext": { "deviceId": "12345", "deviceName": "My device" }, "processTurn": false } }
Skicka texten
get device info
.
Observera några saker:
- Du behöver bara skicka den här aktiviteten en gång (helst direkt efter att du har startat en anslutning).
- Du kan använda komplexa objekt för
clientContext
. - Du kan använda
clientContext
i talsvar, för att skicka aktiviteter och för att anropa webbslutpunkter.
Nästa steg
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för