Migracja realizacji zamówień

Po skonfigurowaniu intencji i scen musisz zaktualizować kod realizacji, aby uwzględnić zmiany w formatach żądań i odpowiedzi dostępnych w komponencie Action Builder. Możesz też skorzystać z dodatkowych funkcji narzędzia Actions Builder. Na tej stronie znajdziesz ogólne instrukcje i uwagi dotyczące aktualizowania kodu realizacji.

Rozważanie sposobu realizacji zamówień

Kod realizacji projektu zależy od modelu rozmowy i funkcji platformy deweloperskiej. Actions Builder to nowy model rozmowy i funkcje, które zmieniają sposób prowadzenia rozmowy i mogą zmienić sposób, w jaki podchodzisz do realizacji projektu. W tej sekcji opisano funkcje Actions Builder, które różnią się od Dialogflow, oraz sposób, w jaki te różnice wpływają na sposób implementacji kodu realizacji.

  • Zmiany w implementacji rozmów

    • Dialogflow korzysta z przebiegu rozmowy opartego na zamiarach i zamiarach, w którym poszczególne intencje są dopasowywane na podstawie wyrażeń treningowych oraz kontekstów wejściowych i wyjściowych wcześniejszych intencji.
    • W procesie konwersacyjnym w Actions Builder sceny są kontenerami do rozmów. W obrębie sceny można dopasować określone intencje, podobnie jak konteksty w Dialogflow. Przejścia określają, do której sceny ma zostać przejście w zależności od dopasowanej intencji.
  • Funkcje webhooka wielokrotnego użytku

    • W Dialogflow moduły obsługi webhooka są powiązane z poszczególnymi intencjami. Jeśli potrzebna jest dodatkowa logika, musisz utworzyć osobną intencję do obsługi nowej funkcji.
    • Moduły obsługi webhooka mają w Actions Builder niestandardowe nazwy modułów obsługi. Ta funkcja umożliwia wywoływanie funkcji z wielu scen w całym projekcie.
  • Więcej sposobów wywoływania webhooków

    • Jeden webhook na każdą intencję w Dialogflow wymaga dodatkowych intencji, które usprawniają logikę konwersacyjną w ramach realizacji projektu.
    • Kreator akcji umożliwia wykonywanie wywołań webhooka z wielu miejsc w scenie: wejścia, na podstawie warunków, wypełnienia przedziałów oraz przez dopasowywanie intencji niestandardowych i systemowych.

Aktualizowanie kodu realizacji

Kod realizacji poszczególnych akcji będzie się różnił w zależności od złożoności i przeznaczenia akcji, ale podczas aktualizacji kodu musisz wykonać kilka ogólnych czynności:

  1. Pobierz i zainstaluj najnowszą wersję biblioteki klienta.

    npm install @assistant/conversation
    
  2. Zaktualizuj instrukcje require w kodzie. Na przykład:

    const {
      SimpleResponse,
      BasicCard,
      Image,
    } = require('actions-on-google');
    

    Powyższy kod został zmieniony na taki:

    const {
      conversation,
      Simple,
      Card,
      Image,
    } = require('@assistant/conversation');
    
  3. refaktoryzuj kod, aby korzystać z nowych metod.

    • Moduły obsługi intencji: app.intentapp.handle
    • Odpowiedź/prośby: conv.askconv.add
    • Możliwości platformy/urządzenia: conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')conv.device.capabilities.includes('RICH_RESPONSE')
    • Miejsce na dane: conv.dataconv.session.params
    • Typy odpowiedzi:

      • SimpleResponseSimple
      • BasicCardCard
      • SuggestionsSuggestion
    • Parametry intencji: conv.parameters[KEY]conv.intent.parameters[KEY].resolved

    • Przejścia sceniczne i kontekstów: conv.contexts.set(content_name, 5);conv.scene.next.name = 'context_name'

    • Zakończ rozmowę: conv.close(response)conv.add.response; conv.scene.next.name = 'actions.page.END_CONVERSATION'

  4. Zaktualizuj kod odpowiedzi, aby używać nowych podstawowych elementów odpowiedzi w konstrukcji. Na przykład:

    conv.ask(new Suggestions (['a', 'b']));
    

    Powyższy kod został zmieniony na taki:

    for (suggestion of ['a', 'b']) {
      conv.add.(new Suggestion({title: suggestion}))
    }
    

Pełną listę metod znajdziesz na mapie tłumaczenia kodu realizacji poniżej.

Na tych stronach możesz porównać ładunki żądań i odpowiedzi:

Konfigurowanie webhooków

Po zaktualizowaniu realizacji zamówienia włącz wywołania webhooka w całych scenach w projekcie. Narzędzie do migracji przenosi ustawienia webhooka intencji Dialogflow, ale musisz sprawdzić te ustawienia, ponieważ refaktoryzowany kod realizacji i funkcje webhooka mogą ulec zmianie.

W Dialogflow webhooki są włączone w intencjach, a kod realizacji zawiera moduły obsługi i funkcje do wykonania, gdy intencja jest zgodna. W Kreatorze działań webhook może zostać aktywowany w intencjach lub scenach wywołania, co spowoduje wysłanie żądania do punktu końcowego realizacji realizacji. Realizacja zawiera moduły obsługi webhooka, które przetwarzają ładunek JSON w żądaniu. Webhooki możesz aktywować w tych sytuacjach:

  • Po dopasowaniu intencji wywołania
  • Podczas wprowadzania sceny na scenie
  • Gdy warunek zostanie oceniony jako prawda na etapie warunku sceny
  • Podczas etapu wypełniania przedziałów sceny
  • Po dopasowaniu intencji na etapie wprowadzania sceny

Podczas migracji z Dialogflow do Actions Builder musisz wziąć pod uwagę zmiany w przepływie rozmowy, ponieważ mogą one ulec zmianie, kiedy i gdzie wykonujesz wywołania webhooka.

Aby włączyć wywołanie webhooka, wykonaj te czynności:

  1. Wybierz scenę, z której chcesz wywołać webhooka.
  2. Wybierz stan, dla którego chcesz włączyć webhooka. Webhooka możesz włączyć dla co najmniej jednego z tych stanów:

    • Po wejściu
    • Warunek
    • Wypełnianie przedziałów
    • Obsługa intencji użytkownika
    • Obsługa intencji systemu
  3. Zaznacz opcję Wywołaj webhooka.

  4. Wpisz moduł obsługi webhooka zdefiniowany w kodzie realizacji.

  5. Kliknij Zapisz.

  6. Kliknij Testowanie, aby wypróbować wywołanie webhooka i zmiany realizacji.

Mapa tłumaczenia kodu realizacji

Tabela poniżej pokazuje, jak składnia kodu realizacji Dialogflow jest przekładana na kod Actions Builder. Pełną listę metod znajdziesz w dokumentacji referencyjnej Actions Builder i SDK.

Dialogflow Kreator działań
conv.data conv.session.params
conv.ask conv.add
conv.close conv.scene.next.name = 'actions.scene.END_CONVERSATION'
conv.user.storage conv.user.params
conv.input.raw conv.intent.query
conv.parameters conv.intent.params[key].resolved
conv.arguments.get('MEDIA_STATUS')
mediaStatus.status==='FINISHED'
conv.intent.params['MEDIA_STATUS']
mediaStatus.resolved==='FINISHED'
Wydarzenia Obsługa intencji systemu:
MEDIA_STATUS_FINISHED
MEDIA_STATUS_FAILED
conv.device.capabilities.has("actions.capability.SCREEN_OUTPUT") conv.device.capabilities.includes("RICH_RESPONSE")
app.intent app.handler
app.middleware app.middleware
Prosta odpowiedź prompt -firstSimple
Odpowiedź rozszerzona prompt -content -card: object -image: object -table: object -media: object -suggestions -link

Poniżej znajdziesz informacje na temat dodatkowych narzędzi: