Triển khai phương thức thực hiện (Dialogflow)

Sau khi bạn tạo phương thức thực hiện webhook, hãy triển khai phương thức này trong phiên bản chính thức và kết nối phương thức đó với Hành động của bạn. Các bước sau đây hướng dẫn bạn cách thiết lập môi trường để triển khai Hàm đám mây cho Firebase để lưu trữ phiên bản chính thức. Tuy nhiên, bạn có thể chọn bất kỳ nền tảng lưu trữ web nào hỗ trợ các yêu cầu và phản hồi HTTPS để lưu trữ phương thức thực hiện của mình.

Nếu đã triển khai webhook đến một nền tảng lưu trữ web, bạn có thể bỏ qua để Kết nối webhook với Hành động của bạn. Xin lưu ý rằng các bước cuối cùng trong quy trình dưới đây sẽ khác nhau tuỳ theo việc bạn sử dụng Dialogflow hay SDK Actions.

Triển khai cho Cloud Functions cho Firebase

  1. Tải Node.js xuống và cài đặt.
  2. Thiết lập và khởi chạy Firebase CLI. Nếu lệnh sau không thực hiện được với lỗi EACCES, bạn có thể cần phải thay đổi quyền npm.

    npm install -g firebase-tools
    
  3. Xác thực công cụ Firebase bằng Tài khoản Google:

    firebase login
    
  4. Chuyển đến thư mục dự án Hành động và khởi chạy Firebase. Bạn sẽ được yêu cầu chọn tính năng Firebase CLI mà bạn muốn thiết lập cho dự án Actions (Hành động). Chọn Functions và các tính năng khác mà bạn có thể muốn sử dụng, chẳng hạn như Firestore, sau đó nhấn Enter để xác nhận và tiếp tục:

    cd <cloud_function_dir>
    firebase init
    
  5. Liên kết công cụ Firebase với dự án Actions của bạn bằng cách chọn công cụ này bằng các phím mũi tên để di chuyển trong danh sách dự án:

    ).
  6. Sau khi chọn dự án, công cụ Firebase sẽ bắt đầu thiết lập Hàm và hỏi bạn muốn sử dụng ngôn ngữ nào. Chọn bằng các phím mũi tên và nhấn Enter để tiếp tục.

    === 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. Chọn xem bạn có muốn sử dụng ESLint để phát hiện các lỗi có thể xảy ra và thực thi nhập kiểu Y hoặc N hay không:

    ? Do you want to use ESLint to catch probable bugs and enforce style? (Y/n)
  8. Tải các phần phụ thuộc của dự án bằng cách nhập Y vào lời nhắc:

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

    Sau khi thiết lập xong, bạn sẽ thấy một kết quả tương tự như sau:

    ✔  Firebase initialization complete!
  9. Cài đặt phần phụ thuộc actions-on-google:

    cd <cloud_function_dir>/functions
    npm install actions-on-google
    
  10. Lấy các phần phụ thuộc của phương thức thực hiện và triển khai hàm thực hiện:

    npm install
    firebase deploy --only functions
    

    Quá trình triển khai sẽ mất vài phút. Sau khi hoàn tất, bạn sẽ thấy kết quả tương tự như sau. Bạn cần có Function URL để nhập vào Dialogflow.

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

Kết nối webhook với Hành động của bạn

Nếu bạn đang sử dụng Dialogflow: Trong bảng điều khiểnDialogflow, hãy chuyển đến Fulfillment, chuyển nút Webhook sang trạng thái ENABLED và thay thế url trong trường URL bằng URL hàm của bạn.

Nếu bạn đang sử dụng SDK Hành động: Hãy tạo một đối tượng bên trong đối tượng conversations để khai báo phương thức thực hiện trong gói Hành động:

{
  "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"
}