Wdrażanie realizacji (Dialogflow)

Po utworzeniu realizacji webhooka wdróż ją w środowisku produkcyjnym i połącz z akcją. Z kolejnych kroków dowiesz się, jak skonfigurować środowisko do wdrożenia w Cloud Functions dla Firebase w zakresie hostingu produkcyjnego. Możesz jednak wybrać dowolną platformę hostingu WWW, która obsługuje żądania i odpowiedzi HTTPS, aby hostować Twoją realizację.

Jeśli webhook został już wdrożony na platformie hostingu WWW, możesz przejść do sekcji Łączenie webhooka z akcją. Pamiętaj, że końcowe kroki opisane poniżej różnią się w zależności od tego, czy używasz Dialogflow czy pakietu SDK Actions.

Wdrażanie w Cloud Functions dla Firebase

  1. Pobierz i zainstaluj Node.js.
  2. Skonfiguruj i zainicjuj interfejs wiersza poleceń Firebase. Jeśli poniższe polecenie nie powiedzie się i pojawi się błąd EACCES, może być konieczna zmiana uprawnień npm.

    npm install -g firebase-tools
    
  3. Uwierzytelnij narzędzie Firebase za pomocą konta Google:

    firebase login
    
  4. Przejdź do katalogu projektu Action i zainicjuj Firebase. Pojawi się prośba o wybranie funkcji interfejsu wiersza poleceń Firebase, które chcesz skonfigurować dla projektu Actions. Wybierz Functions i inne funkcje, których chcesz używać, na przykład Firestore, a następnie naciśnij Enter, aby potwierdzić i przejść dalej:

    cd <cloud_function_dir>
    firebase init
    
  5. Powiąż narzędzie Firebase z projektem w Actions, wybierając je za pomocą klawiszy strzałek do poruszania się po liście projektów:

    .
  6. Po wybraniu projektu narzędzie Firebase rozpocznie konfigurację funkcji z pytaniem, jakiego języka chcesz użyć. Wybierz za pomocą klawiszy strzałek i naciśnij Enter, aby kontynuować.

    === Functions Setup
    A functions directory will be created in your project with a Node.js package pre-configured. Functions can be deployed with firebase deploy. ? What language would you like to use to write Cloud Functions? (Use arrow keys) > JavaScript TypeScript
  7. Wybierz, czy chcesz używać ESLint do wychwytywania prawdopodobnych błędów i egzekwowania stylu pisania Y lub N:

    ? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
  8. Aby uzyskać zależności projektu, wpisz w wierszu polecenie Y:

    ? Do you want to install dependencies with npm now? (Y/n)

    Po zakończeniu konfiguracji zobaczysz dane wyjściowe podobne do tych:

    ✔  Firebase initialization complete!
  9. Zainstaluj zależność actions-on-google:

    cd <cloud_function_dir>/functions
    npm install actions-on-google
    
  10. Uzyskaj zależności dotyczące realizacji i wdróż funkcję realizacji:

    npm install
    firebase deploy --only functions
    

    Wdrożenie trwa kilka minut. Gdy skończysz, zobaczysz dane wyjściowe podobne do tych poniżej. Aby go wpisać w Dialogflow, potrzebujesz adresu URL funkcji.

    ✔  Deploy complete!
    Project Console: https://console.firebase.google.com/project/exampleproject-123/overview Function URL (cloudFunctionName): https://us-central1-exampleproject-123.cloudfunctions.net/cloudFunctionName

Połącz webhooka z akcją

Jeśli korzystasz z Dialogflow: w konsoli Dialogflow wybierz Fulfillment (Realizacja), ustaw przycisk Webhook na ENABLED i zastąp adres URL w polu URL wartością Functions URL (Adres URL funkcji).

Jeśli korzystasz z pakietu SDK Actions: utwórz obiekt w obiekcie conversations, aby zadeklarować realizację w pakiecie Action:

{
  "actions": [
    {
      "description": "Default Welcome Intent",
      "name": "MAIN",
      "fulfillment": {
        "conversationName": "myFulfillmentFunction"
      },
      "intent": {
        "name": "actions.intent.MAIN",
        "trigger": {
          "queryPatterns": [
            "talk to myFulfillmentFunction"
          ]
        }
      }
    }
  ],
  "conversations": {
    "myFulfillmentFunction": {
      "name": "myFulfillmentFunction",
      "url": "https://us-central1-myprojectname-ab123.cloudfunctions.net/cloudFunctionName"
    }
  },
  "locale": "en"
}