Dela via


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

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:

  1. Öppna programmet Anpassade kommandon som du skapade tidigare.
  2. Välj Träna och sedan Testa.
  3. Skicka turn.
  4. Öppna sidopanelen och välj Aktivitetsredigeraren.
  5. Skriv och skicka händelsen RemoteCommand som angavs i föregående avsnitt.

    Screenshot that shows the event for a remote command.

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".

Screenshot that shows a catalog update.

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:

  1. Skapa ett nytt kommando med namnet GetDeviceInfo.

  2. Lägg till en exempel mening med get device info.

  3. I slutföranderegeln Klar lägger du till en skicka talsvarsåtgärd som innehåller attributen clientContextför . Screenshot that shows a response for sending speech with context.

  4. Spara, träna och testa ditt program.

  5. 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
       }
    }
    
  6. Skicka texten get device info. Screenshot that shows an activity for sending client context.

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