Udostępnij za pośrednictwem


Aktualizowanie polecenia z poziomu aplikacji klienckiej

Ważne

Polecenia niestandardowe zostaną wycofane 30 kwietnia 2026 r. Od 30 października 2023 r. nie można tworzyć nowych aplikacji poleceń niestandardowych w programie Speech Studio. W związku z tą zmianą usługa LUIS zostanie wycofana 1 października 2025 r. Od 1 kwietnia 2023 r. nie można tworzyć nowych zasobów usługi LUIS.

Z tego artykułu dowiesz się, jak zaktualizować bieżące polecenie z poziomu aplikacji klienckiej.

Wymagania wstępne

Aktualizowanie stanu polecenia

Jeśli aplikacja kliencka wymaga zaktualizowania stanu bieżącego polecenia bez danych wejściowych głosowych, możesz wysłać zdarzenie w celu zaktualizowania polecenia.

Aby zilustrować ten scenariusz, wyślij następujące działanie zdarzenia, aby zaktualizować stan bieżącego polecenia (TurnOnOff):

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

Przejrzyjmy kluczowe atrybuty tego działania:

Atrybut Wyjaśnienie
type Działanie jest typu "event".
name Nazwa zdarzenia musi mieć wartość "RemoteUpdate".
wartość "value" Atrybut zawiera atrybuty wymagane do zaktualizowania bieżącego polecenia.
updatedCommand "updatedCommand" Atrybut zawiera nazwę polecenia. W tym atrybucie "updatedParameters" jest mapą z nazwami parametrów i ich zaktualizowanymi wartościami.
Anuluj Jeśli bieżące polecenie musi zostać anulowane, ustaw atrybut "cancel" na true.
updatedGlobalParameters Atrybut jest mapą podobną do "updatedParameters", "updatedGlobalParameters" ale jest używany dla parametrów globalnych.
processTurn Jeśli kolei należy przetworzyć po wysłaniu działania, ustaw atrybut "processTurn" na truewartość .

Ten scenariusz można przetestować w portalu Poleceń niestandardowych:

  1. Otwórz utworzoną wcześniej aplikację Polecenia niestandardowe.
  2. Wybierz pozycję Trenuj , a następnie pozycję Testuj.
  3. Wyślij turn.
  4. Otwórz panel boczny i wybierz pozycję Edytor działań.
  5. Wpisz i wyślij RemoteCommand zdarzenie określone w poprzedniej sekcji.

    Screenshot that shows the event for a remote command.

Zwróć uwagę, że wartość parametru "OnOff" została ustawiona "on" na wartość za pośrednictwem działania od klienta zamiast mowy lub tekstu.

Aktualizowanie katalogu parametru dla polecenia

Podczas konfigurowania listy prawidłowych opcji parametru wartości parametru są definiowane globalnie dla aplikacji.

W naszym przykładzie SubjectDevice parametr ma stałą listę obsługiwanych wartości niezależnie od konwersacji.

Jeśli chcesz dodać nowe wpisy do katalogu parametrów na konwersację, możesz wysłać następujące działanie:

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

W przypadku tego działania dodano wpis do "stereo" katalogu parametru "SubjectDevice" w poleceniu "TurnOnOff".

Screenshot that shows a catalog update.

Zwróć uwagę na kilka rzeczy:

  • To działanie należy wysłać tylko raz (najlepiej, bezpośrednio po uruchomieniu połączenia).
  • Po wysłaniu tego działania należy poczekać na odesłanie zdarzenia ParameterCatalogsUpdated do klienta.

Dodawanie więcej kontekstu z aplikacji klienckiej

Więcej kontekstu można ustawić z poziomu aplikacji klienckiej na konwersację, która może być później używana w aplikacji Polecenia niestandardowe.

Pomyśl na przykład o scenariuszu, w którym chcesz wysłać identyfikator i nazwę urządzenia połączonego z aplikacją Custom Commands.

Aby przetestować ten scenariusz, utwórzmy nowe polecenie w bieżącej aplikacji:

  1. Utwórz nowe polecenie o nazwie GetDeviceInfo.

  2. Dodaj przykładowe zdanie funkcji get device info.

  3. W regule uzupełniania Dodaj akcję Wyślij odpowiedź mowy zawierającą atrybuty clientContext. Screenshot that shows a response for sending speech with context.

  4. Zapisywanie, trenowanie i testowanie aplikacji.

  5. W oknie testowania wyślij działanie, aby zaktualizować kontekst klienta.

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

Zwróć uwagę na kilka rzeczy:

  • To działanie należy wysłać tylko raz (najlepiej, bezpośrednio po uruchomieniu połączenia).
  • Można użyć złożonych obiektów dla programu clientContext.
  • W odpowiedziach mowy można używać clientContext do wysyłania działań i wywoływania internetowych punktów końcowych.

Następne kroki