Sdílet prostřednictvím


Aktualizace příkazu z klientské aplikace

Důležité

Vlastní příkazy budou vyřazeny 30. dubna 2026. Od 30. října 2023 nemůžete v sadě Speech Studio vytvářet nové aplikace Vlastních příkazů. V souvislosti s touto změnou bude služba LUIS vyřazena 1. října 2025. Od 1. dubna 2023 nemůžete vytvářet nové prostředky LUIS.

V tomto článku se dozvíte, jak aktualizovat probíhající příkaz z klientské aplikace.

Požadavky

Aktualizace stavu příkazu

Pokud vaše klientská aplikace vyžaduje, abyste aktualizovali stav probíhajícího příkazu bez hlasového vstupu, můžete odeslat událost, která příkaz aktualizuje.

Chcete-li tento scénář ilustrovat, odešlete následující aktivitu události, která aktualizuje stav probíhajícího příkazu (TurnOnOff):

{
  "type": "event",
  "name": "RemoteUpdate",
  "value": {
    "updatedCommand": {
      "name": "TurnOnOff",
      "updatedParameters": {
        "OnOff": "on"
      },
      "cancel": false
    },
    "updatedGlobalParameters": {},
    "processTurn": true
  }
}

Pojďme se podívat na klíčové atributy této aktivity:

Atribut Vysvětlení
type Aktivita je typu "event".
Jméno Název události musí být "RemoteUpdate".
value Atribut "value" obsahuje atributy potřebné k aktualizaci aktuálního příkazu.
updatedCommand "updatedCommand" Atribut obsahuje název příkazu. V rámci tohoto atributu "updatedParameters" je mapa s názvy parametrů a jejich aktualizovanými hodnotami.
Zrušit Pokud je potřeba probíhající příkaz zrušit, nastavte atribut "cancel" na truehodnotu .
updatedGlobalParameters Atribut "updatedGlobalParameters" je mapa stejně jako "updatedParameters", ale používá se pro globální parametry.
processTurn Pokud je potřeba zpracovat turn po odeslání aktivity, nastavte atribut "processTurn" na true.

Tento scénář můžete otestovat na portálu Vlastních příkazů:

  1. Otevřete aplikaci Vlastní příkazy, kterou jste vytvořili dříve.
  2. Vyberte Trénování a pak Test.
  3. Odeslat turn.
  4. Otevřete boční panel a vyberte Editor aktivit.
  5. Zadejte a odešlete událost určenou RemoteCommand v předchozí části.

    Screenshot that shows the event for a remote command.

Všimněte si, jak byla hodnota parametru "OnOff" nastavena "on" prostřednictvím aktivity z klienta místo řeči nebo textu.

Aktualizace katalogu parametru pro příkaz

Při konfiguraci seznamu platných možností pro parametr se hodnoty parametru definují globálně pro aplikaci.

V našem příkladu SubjectDevice má parametr pevný seznam podporovaných hodnot bez ohledu na konverzaci.

Pokud chcete přidat nové položky do katalogu parametrů pro každou konverzaci, můžete odeslat následující aktivitu:

{
  "type": "event",
  "name": "RemoteUpdate",
  "value": {
    "catalogUpdate": {
      "commandParameterCatalogs": {
        "TurnOnOff": [
          {
            "name": "SubjectDevice",
            "values": {
              "stereo": [
                "cd player"
              ]
            }
          }
        ]
      }
    },
    "processTurn": false
  }
}

S touto aktivitou jste přidali položku do "stereo" katalogu parametru "SubjectDevice" v příkazu "TurnOnOff".

Screenshot that shows a catalog update.

Všimněte si několika věcí:

  • Tuto aktivitu musíte odeslat jenom jednou (ideálně hned po spuštění připojení).
  • Po odeslání této aktivity byste měli počkat, až se událost ParameterCatalogsUpdated odešle zpět klientovi.

Přidání dalšího kontextu z klientské aplikace

Pro každou konverzaci můžete nastavit další kontext z klientské aplikace, kterou můžete později použít v aplikaci Vlastní příkazy.

Představte si například scénář, ve kterém chcete odeslat ID a název zařízení připojeného k aplikaci Vlastní příkazy.

K otestování tohoto scénáře vytvoříme v aktuální aplikaci nový příkaz:

  1. Vytvořte nový příkaz s názvem GetDeviceInfo.

  2. Přidejte ukázkovou větu .get device info

  3. V pravidle dokončení Hotovo přidejte akci Odeslat odpověď řeči , která obsahuje atributy clientContext. Screenshot that shows a response for sending speech with context.

  4. Uložte, vytrénujte a otestujte aplikaci.

  5. V testovacím okně odešlete aktivitu, která aktualizuje kontext klienta.

    {
       "type": "event",
       "name": "RemoteUpdate",
       "value": {
         "clientContext": {
           "deviceId": "12345",
           "deviceName": "My device"
         },
         "processTurn": false
       }
    }
    
  6. Odeslat text get device info. Screenshot that shows an activity for sending client context.

Všimněte si několika věcí:

  • Tuto aktivitu musíte odeslat jenom jednou (ideálně hned po spuštění připojení).
  • Můžete použít komplexní objekty pro clientContext.
  • V odpovědích na řeč můžete použít clientContext odesílání aktivit a volání webových koncových bodů.

Další kroky