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 true wartość . |
Ten scenariusz można przetestować w portalu Poleceń niestandardowych:
- Otwórz utworzoną wcześniej aplikację Polecenia niestandardowe.
- Wybierz pozycję Trenuj , a następnie pozycję Testuj.
- Wyślij
turn
. - Otwórz panel boczny i wybierz pozycję Edytor działań.
- Wpisz i wyślij
RemoteCommand
zdarzenie określone w poprzedniej sekcji.
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"
.
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:
Utwórz nowe polecenie o nazwie
GetDeviceInfo
.Dodaj przykładowe zdanie funkcji
get device info
.W regule uzupełniania Dodaj akcję Wyślij odpowiedź mowy zawierającą atrybuty
clientContext
.Zapisywanie, trenowanie i testowanie aplikacji.
W oknie testowania wyślij działanie, aby zaktualizować kontekst klienta.
{ "type": "event", "name": "RemoteUpdate", "value": { "clientContext": { "deviceId": "12345", "deviceName": "My device" }, "processTurn": false } }
Wyślij tekst
get device info
.
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
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla