Tích hợp Trợ lý vào dự án của bạn (Các ngôn ngữ khác)

Làm theo hướng dẫn trong từng phần bên dưới để tích hợp Trợ lý Google vào dự án của bạn.

Liên kết gRPC

Dịch vụ Trợ lý Google được xây dựng dựa trên gRPC, một hiệu suất, khung RPC nguồn mở. Khung này phù hợp với phát trực tuyến âm thanh hai chiều.

Python

Nếu bạn đang sử dụng Python, hãy bắt đầu bằng hướng dẫn này.

C++

Xem mẫu C++ của chúng tôi trên GitHub.

Node.js

Hãy xem mẫu Node.js của chúng tôi trên GitHub.

Android Things

Bạn quan tâm đến thiết bị được nhúng? Hãy xem SDK Trợ lý mẫu cho Android Things.

Ngôn ngữ khác

  • Sao chép kho lưu trữ googleapis để lấy định nghĩa giao diện vùng đệm giao thức cho Google Assistant Service API.
  • Làm theo tài liệu gRPC để tạo gRPC liên kết cho ngôn ngữ bạn chọn
  • Hãy làm theo các bước trong các phần dưới đây.

Cho phép và xác thực Tài khoản Google của bạn để làm việc với Trợ lý

Bước tiếp theo là cho phép thiết bị của bạn trò chuyện với Trợ lý Google thông qua Tài khoản Google của bạn.

Nhận mã thông báo OAuth bằng phạm vi SDK Trợ lý

SDK Trợ lý dùng mã truy cập OAuth 2.0 để cho phép thiết bị của bạn kết nối với Trợ lý.

Khi tạo nguyên mẫu, bạn có thể sử dụng công cụ uỷ quyền để dễ dàng tạo OAuth2.0 thông tin xác thực từ tệp client_secret_<client-id>.json được tạo khi đăng ký mẫu thiết bị của bạn.

Hãy làm như sau để tạo thông tin xác thực:

  1. Sử dụng môi trường ảo Python để tách riêng công cụ uỷ quyền và các phần phụ thuộc của công cụ đó khỏi các gói Python của hệ thống.

    sudo apt-get update
    sudo apt-get install python3-dev python3-venv # Use python3.4-venv if the package cannot be found.
    python3 -m venv env
    env/bin/python -m pip install --upgrade pip setuptools wheel
    source env/bin/activate
    
  2. Cài đặt công cụ uỷ quyền:

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. Chạy công cụ này. Xoá cờ --headless nếu bạn đang chạy từ một thiết bị đầu cuối trên thiết bị (không phải phiên SSH):

    google-oauthlib-tool --client-secrets /path/to/client_secret_client-id.json --scope https://www.googleapis.com/auth/assistant-sdk-prototype --save --headless
    

Khi bạn đã sẵn sàng tích hợp yêu cầu uỷ quyền trong quá trình cấp phép cơ chế của thiết bị của bạn, hãy đọc hướng dẫn của chúng tôi về Sử dụng OAuth 2.0 để truy cập Google API hiểu cách lấy, duy trì và sử dụng mã truy cập OAuth để cho phép thiết bị để giao tiếp với API Trợ lý.

Hãy làm theo các hướng dẫn sau:

Xem các phương pháp hay nhất về quyền riêng tư và bảo mật để được đề xuất cách bảo mật thiết bị của bạn.

Xác thực kết nối gRPC bằng mã thông báo OAuth

Cuối cùng, hãy tập hợp tất cả các phần lại với nhau bằng cách đọc cách sử dụng phương thức dựa trên mã thông báo xác thực với Google để xác thực kết nối gRPC với API Trợ lý.

Đăng ký thiết bị của bạn

Đăng ký kiểu thiết bị và thực thể thiết bị theo cách thủ công hoặc thông qua công cụ đăng ký (có sẵn bằng Python).

Triển khai hộp thoại trò chuyện cơ bản bằng Trợ lý

  1. Triển khai ứng dụng gRPC truyền trực tuyến hai chiều cho Google Assistant Service API.
  2. Đợi người dùng kích hoạt yêu cầu mới (ví dụ: đợi gián đoạn GPIO từ một lượt nhấn nút).
  3. Gửi AssistRequest với nhóm trường config (xem AssistConfig). Hãy đảm bảo trường config chứa nội dung sau:

    • Trường audio_in_config chỉ định cách xử lý Dữ liệu audio_in sẽ được cung cấp trong các yêu cầu tiếp theo (xem AudioInConfig).
    • Trường audio_out_config chỉ định định dạng mong muốn cho máy chủ để sử dụng khi trả về audio_out thông báo (xem AudioOutConfig).
    • Trường device_config xác định thiết bị đã đăng ký với Trợ lý (xem DeviceConfig).
    • Trường dialog_state_in chứa language_code được liên kết với yêu cầu (xem DialogStateIn).
  4. Bắt đầu ghi.

  5. Gửi nhiều cuộc gọi đi AssistRequest tin nhắn có dữ liệu âm thanh từ truy vấn bằng giọng nói trong trường audio_in.

  6. Xử lý AssistResponse nhận được tin nhắn.

  7. Trích xuất siêu dữ liệu của cuộc trò chuyện từ AssistResponse . Ví dụ: lấy conversation_state từ dialog_state_outvolume_percentage (xem DialogStateOut).

  8. Dừng ghi khi nhận được AssistResponse bằng event_type trong tổng số END_OF_UTTERANCE.

  9. Phát lại âm thanh trong câu trả lời của Trợ lý với dữ liệu âm thanh lấy từ audio_out .

  10. Lấy conversation_state mà bạn đã giải nén trước đó rồi sao chép vào DialogStateIn trong AssistConfig cho AssistRequest tiếp theo.

Bằng cách này, bạn nên sẵn sàng gửi những yêu cầu đầu tiên đến Google Trợ lý trên thiết bị của bạn.

Mở rộng hộp thoại trò chuyện bằng Hành động trên thiết bị

Mở rộng hộp thoại trò chuyện cơ bản ở trên để kích hoạt phần cứng duy nhất khả năng của thiết bị cụ thể:

  1. Trong AssistResponse sắp tới thư, trích xuất trường device_action (xem DeviceAction).
  2. Phân tích cú pháp tải trọng JSON của trường device_request_json. Tham khảo trang Device Traits (Đặc điểm thiết bị) cho phần danh sách các trait được hỗ trợ. Mỗi trang giản đồ trait cho thấy một mẫu EXECUTE yêu cầu bằng(các) lệnh thiết bị và các tham số được trả về trong tải trọng JSON.

Lấy bản chép lời yêu cầu của người dùng

Nếu đã kết nối màn hình với thiết bị, bạn có thể muốn sử dụng màn hình đó để hiển thị yêu cầu của người dùng. Để lấy bản chép lời này, hãy phân tích cú pháp trường speech_results trong AssistResponse tin nhắn. Khi quá trình nhận dạng giọng nói hoàn tất, danh sách này sẽ chứa một mục với stability được đặt thành 1.0.

Nhận văn bản và/hoặc hình ảnh hiển thị phản hồi của Trợ lý

Nếu đã kết nối màn hình với thiết bị, bạn có thể muốn sử dụng màn hình đó để hiển thị phản hồi bằng văn bản thuần tuý của Trợ lý đối với yêu cầu của người dùng. Văn bản này nằm trong trong DialogStateOut.supplemental_display_text .

Trợ lý hỗ trợ phản hồi bằng hình ảnh qua HTML5 cho một số truy vấn nhất định (Điều gì thời tiết ở Mountain View? hoặc Bây giờ là mấy giờ?). Để bật chế độ này, hãy đặt trường screen_out_config trong AssistConfig. ScreenOutConfig tin nhắn có trường screen_mode cần được đặt thành PLAYING.

AssistResponse thông báo sẽ có trường screen_out được đặt. Bạn có thể trích xuất dữ liệu HTML5 (nếu có) từ Trường data.

Gửi truy vấn thông qua dữ liệu nhập bằng văn bản

Nếu bạn có giao diện văn bản (ví dụ: bàn phím) được gắn với thiết bị, đặt trường text_query trong trường config (xem AssistConfig). Không đặt trường audio_in_config.

Khắc phục sự cố

Xem phần Khắc phục sự cố nếu bạn gặp vấn đề.