Aktualizace příkazu z webového koncového bodu
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.
Pokud vaše klientská aplikace vyžaduje aktualizaci stavu probíhajícího příkazu bez hlasového vstupu, můžete k aktualizaci příkazu použít volání webového koncového bodu.
V tomto článku se dozvíte, jak aktualizovat probíhající příkaz z webového koncového bodu.
Požadavky
Vytvoření funkce Azure
V tomto příkladu potřebujete funkci Azure aktivovanou protokolem HTTP, která podporuje následující vstup (nebo podmnožinu tohoto vstupu):
{
"conversationId": "SomeConversationId",
"currentCommand": {
"name": "SomeCommandName",
"parameters": {
"SomeParameterName": "SomeParameterValue",
"SomeOtherParameterName": "SomeOtherParameterValue"
}
},
"currentGlobalParameters": {
"SomeGlobalParameterName": "SomeGlobalParameterValue",
"SomeOtherGlobalParameterName": "SomeOtherGlobalParameterValue"
}
}
Pojďme se podívat na klíčové atributy tohoto vstupu:
Atribut | Vysvětlení |
---|---|
conversationId | Jedinečný identifikátor konverzace. Toto ID lze vygenerovat z klientské aplikace. |
currentCommand | Příkaz, který je aktuálně aktivní v konverzaci. |
Jméno | Název příkazu. Atribut parameters je mapa s aktuálními hodnotami parametrů. |
currentGlobalParameters | Mapa jako parameters , ale používá se pro globální parametry. |
Výstup funkce Azure musí podporovat následující formát:
{
"updatedCommand": {
"name": "SomeCommandName",
"updatedParameters": {
"SomeParameterName": "SomeParameterValue"
},
"cancel": false
},
"updatedGlobalParameters": {
"SomeGlobalParameterName": "SomeGlobalParameterValue"
}
}
Tento formát můžete rozpoznat, protože se jedná o stejný formát, který jste použili při aktualizaci příkazu z klienta.
Teď vytvořte funkci Azure založenou na Node.js. Zkopírujte nebo vložte tento kód:
module.exports = async function (context, req) {
context.log(req.body);
context.res = {
body: {
updatedCommand: {
name: "IncrementCounter",
updatedParameters: {
Counter: req.body.currentCommand.parameters.Counter + 1
}
}
}
};
}
Když tuto funkci Azure zavoláte z vlastních příkazů, odešlete aktuální hodnoty konverzace. Vrátíte parametry, které chcete aktualizovat, nebo pokud chcete aktuální příkaz zrušit.
Aktualizace existující aplikace Vlastní příkazy
Pojďme připojit funkci Azure s existující aplikací Vlastních příkazů:
- Přidejte nový příkaz s názvem
IncrementCounter
. - Přidejte pouze jednu ukázkovou větu s hodnotou
increment
. - Přidejte nový parametr s názvem
Counter
(stejný název jako zadaný ve funkci Azure)Number
s výchozí hodnotou0
. - Přidejte nový webový koncový bod volaný
IncrementEndpoint
s adresou URL funkce Azure s nastavenými vzdálenými aktualizacemi na Povoleno. - Vytvořte nové pravidlo interakce s názvem IncrementRule a přidejte akci volání webového koncového bodu .
- V konfiguraci akce vyberte
IncrementEndpoint
. Nakonfigurujte Při úspěchu odeslat odpověď řeči s hodnotouCounter
a nakonfigurovat Při selhání chybovou zprávou. - Nastavte stav po spuštění pravidla tak, aby čekal na vstup uživatele.
Testování
- Uložte a vytrénujte aplikaci.
- Vyberte Test.
- Odešlete
increment
několikrát (což je příklad větyIncrementCounter
pro příkaz).
Všimněte si, jak funkce Azure zvýší hodnotu parametru Counter
při každém zapnutí.
Další kroky
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro