Sdílet prostřednictvím


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ů:

  1. Přidejte nový příkaz s názvem IncrementCounter.
  2. Přidejte pouze jednu ukázkovou větu s hodnotou increment.
  3. Přidejte nový parametr s názvem Counter (stejný název jako zadaný ve funkci Azure) Number s výchozí hodnotou 0.
  4. Přidejte nový webový koncový bod volaný IncrementEndpoint s adresou URL funkce Azure s nastavenými vzdálenými aktualizacemi na Povoleno.

    Screenshot that shows setting a web endpoint with remote updates.

  5. Vytvořte nové pravidlo interakce s názvem IncrementRule a přidejte akci volání webového koncového bodu .

    Screenshot that shows the creation of an interaction rule.

  6. V konfiguraci akce vyberte IncrementEndpoint. Nakonfigurujte Při úspěchu odeslat odpověď řeči s hodnotou Countera nakonfigurovat Při selhání chybovou zprávou.

    Screenshot that shows setting an increment counter for calling a web endpoint.

  7. Nastavte stav po spuštění pravidla tak, aby čekal na vstup uživatele.

Testování

  1. Uložte a vytrénujte aplikaci.
  2. Vyberte Test.
  3. Odešlete increment několikrát (což je příklad věty IncrementCounter pro příkaz).

    Screenshot that shows an increment counter example.

Všimněte si, jak funkce Azure zvýší hodnotu parametru Counter při každém zapnutí.

Další kroky