Po skonfigurowaniu intencji i scen musisz zaktualizować kod realizacji, aby uwzględniał zmiany w formatach żądań i odpowiedzi w narzędziu Action Builder. Warto też rozważyć skorzystanie z dodatkowych funkcji Actions Builder. Na tej stronie znajdziesz ogólne instrukcje i uwagi dotyczące aktualizowania kodu realizacji.
Zastanów się nad sposobem realizacji celu
Kod realizacji projektu zależy od modelu konwersacyjnego i funkcji platformy programistycznej. Actions Builder wprowadza nowy model konwersacyjny i funkcję, które zmieniają sposób budowania rozmowy i prawdopodobnie zmienią Twoje podejście do realizacji projektu. W tej sekcji opisujemy funkcje Actions Builder, które różnią się od Dialogflow oraz jak te różnice wpływają na sposób implementacji kodu realizacji.
Zmiany w implementacji rozmów
- Dialogflow wykorzystuje przepływ konwersacyjny oparty na zamiarach i kontekstach, w którym poszczególne intencje są dopasowywane na podstawie wyrażeń na potrzeby trenowania oraz kontekstów danych wejściowych i wyjściowych poprzedzającej intencję.
- Proces konwersacyjny w Actions Builder używa scen jako kontenera na potrzeby zwrotów w rozmowie. W ramach sceny można dopasować konkretne intencje, podobnie jak w kontekście Dialogflow. Przejścia określają, do której sceny przejść, w zależności od dopasowanej intencji.
Funkcje 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ą niestandardowe nazwy modułów obsługi w Actions Builder. Ta funkcja umożliwia wywoływanie funkcji z różnych scen w projekcie.
Więcej sposobów wywoływania webhooków
- Jeden webhook na podejście do intencji w Dialogflow wymaga dodatkowych intencji, które ułatwiają logikę konwersacyjną w ramach realizacji projektu.
- Kreator działań umożliwia wykonywanie wywołań webhooka z wielu miejsc w scenie: po naciśnięciu klawisza Enter na podstawie warunków, na podstawie wypełnienia przedziałów oraz przez dopasowywanie niestandardowych i systemowych intencji.
Aktualizowanie kodu realizacji
Kod realizacji akcji różni się w zależności od jej złożoności i przeznaczenia, ale podczas aktualizowania kodu należy wykonać ogólne czynności:
Pobierz i zainstaluj najnowszą wersję biblioteki klienta.
npm install @assistant/conversation
Zaktualizuj w kodzie instrukcje
require
. Na przykład:const { SimpleResponse, BasicCard, Image, } = require('actions-on-google');
Powyższy kod został zmieniony w taki sposób:
const { conversation, Simple, Card, Image, } = require('@assistant/conversation');
Refaktoryzacja kodu pod kątem nowych metod.
- Moduły obsługi intencji:
app.intent
→app.handle
- Odpowiedź/prompty:
conv.ask
→conv.add
- Funkcje platformy/urządzenia:
conv.surface.capabilities.has('actions.capability.SCREEN_OUTPUT')
→conv.device.capabilities.includes('RICH_RESPONSE')
- Miejsce na dane:
conv.data
→conv.session.params
Typy odpowiedzi:
SimpleResponse
→Simple
BasicCard
→Card
Suggestions
→Suggestion
Parametry intencji:
conv.parameters[KEY]
→conv.intent.parameters[KEY].resolved
Konteksty/przejścia scen:
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'
- Moduły obsługi intencji:
Zaktualizuj kod odpowiedzi, aby wykorzystywał nowe podstawowe elementy odpowiedzi konstruktora. Na przykład:
conv.ask(new Suggestions (['a', 'b']));
Powyższy kod został zmieniony w taki sposób:
for (suggestion of ['a', 'b']) { conv.add.(new Suggestion({title: suggestion})) }
Pełną listę metod znajdziesz poniżej, w mapie translacji kodu realizacji.
Na tych stronach możesz porównać ładunki żądań i odpowiedzi:
- Formaty żądań
- Formaty odpowiedzi
Konfigurowanie webhooków
Po zaktualizowaniu realizacji zamówienia włącz wywołania webhooka w scenach w projekcie. Narzędzie do migracji przenosi ustawienia webhooka intencji Dialogflow, ale musisz sprawdzić te ustawienia, ponieważ zrefaktoryzowany 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, które mają być wykonywane po dopasowaniu intencji. W Kreatorze działań webhook może być aktywowany w ramach intencji lub scen wywołania, co spowoduje wysłanie żądania do punktu końcowego realizacji. Twoja 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
- W trakcie sceny
- Po ocenie stanu jako prawda na etapie stanu sceny
- Na etapie wypełniania przedziału czasowego sceny
- Po wystąpieniu dopasowania intencji na etapie wprowadzania sceny
Podczas migracji z Dialogflow do Actions Builder musisz wziąć pod uwagę zmiany w przebiegu rozmowy, ponieważ może to wpłynąć na czas i miejsce wykonywania wywołań webhooka.
Aby włączyć wywołanie webhooka, wykonaj te czynności:
- Wybierz scenę, z której chcesz wywołać webhooka.
Wybierz stan, dla którego chcesz włączyć webhooka. Webhooka możesz włączyć w przypadku jednego lub kilku z tych stanów:
- Przy wprowadzaniu
- Warunek
- Wypełnienie otworów
- Obsługa intencji użytkownika
- Obsługa intencji systemowych
Zaznacz opcję Zadzwoń do webhooka.
Wpisz moduł obsługi webhooka zdefiniowany w kodzie realizacji.
Kliknij Zapisz.
Otwórz Testowanie, aby wypróbować zmiany dotyczące wywołania webhooka i realizacji.
Mapa tłumaczenia kodu realizacji
W tabeli poniżej pokazujemy, jak składnia kodu realizacji Dialogflow przekłada się na kod Actions Builder. Pełną listę metod znajdziesz w dokumentacji usługi 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 systemowych: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ź z elementami rozszerzonymi |
prompt
-content
-card: object
-image: object
-table: object
-media: object
-suggestions
-link
|
Informacje na temat dodatkowych narzędzi znajdziesz poniżej: