Lệnh xử lý

Làm theo các hướng dẫn sau để thực thi mã tuỳ chỉnh trên thiết bị của bạn trong phản hồi các lệnh của Trợ lý Google.

Chạy mẫu

Bây giờ, bạn đã xác định được một đặc điểm và cập nhật mô hình, hãy kiểm tra để đảm bảo Trợ lý Google đang gửi lại lệnh Bật/Tắt để yêu cầu truy vấn.

googlesamples-assistant-pushtotalk

Nhấn phím Enter và thử truy vấn sau:

Bật.

Bạn sẽ thấy các câu lệnh sau trong kết quả của bảng điều khiển. Nếu không, hãy xem hướng dẫn khắc phục sự cố.

INFO:root:Recording audio request.
INFO:root:End of audio request detected
INFO:root:Transcript of user request: "turn on".
INFO:root:Playing assistant response.
INFO:root:Turning device on
INFO:root:Waiting for device executions to complete.
INFO:root:Finished playing assistant response.

Bạn sẽ tìm thấy nơi in những câu lệnh này trong mã nguồn.

Lấy mã nguồn

Bây giờ, bạn đã sẵn sàng bắt đầu dự án của riêng mình:

git clone https://github.com/googlesamples/assistant-sdk-python

Tìm trình xử lý lệnh

Tệp pushtotalk.py trong mã mẫu sử dụng SDK để gửi yêu cầu và nhận phản hồi từ Trợ lý Google.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py

Tìm định nghĩa trình xử lý sau đây:

device_handler = device_helpers.DeviceRequestHandler(device_id)

@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
    if on:
        logging.info('Turning device on')
    else:
        logging.info('Turning device off')

Mã trong onoff() xử lý lệnh action.devices.commands.OnOff. Chiến dịch này là một phần của OnOff giản đồ trait.

Hiện tại, định nghĩa onoff() ghi nhật ký kết quả xuất ra trong bảng điều khiển. Công cụ này sử dụng trình trợ giúp các hàm trong device_helpers.py để phân tích cú pháp JSON phản hồi và lưu trữ lệnh trong các biến để dễ sử dụng. Bạn có thể sửa đổi mã này để làm bất cứ điều gì mà bạn muốn cho dự án của mình.

Nếu bạn có một bộ đèn LED, hãy tiếp tục đọc để tìm hiểu cách chiếu đèn LED để phản hồi vào lệnh Bật. Nếu không, hãy bỏ qua phần tiếp theo để tìm hiểu cách bổ sung thêm các tính năng và trình xử lý.

Các bước tiếp theo – Raspberry Pi

Bây giờ, bạn đã biết cách xử lý lệnh đến, hãy sửa đổi mã mẫu bật đèn LED. Bạn sẽ phải thêm một số phần cứng bổ sung nếu đang sử dụng Mâm xôi Pi.

Nhập gói GPIO

Để đơn giản hoá việc truy cập phần mềm vào các chân cắm Đầu vào/Đầu ra cho mục đích chung (GPIO) đang bật Raspberry Pi, cài đặt RPi.GPIO trong môi trường ảo.

pip install RPi.GPIO

Sửa đổi mẫu

Mở tệp pushtotalk.py.

cd assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc
nano pushtotalk.py

Trong tệp pushtotalk.py, hãy nhập tệp RPi.GPIO để điều khiển các chân GPIO trên Pi. Đặt câu lệnh sau gần các câu lệnh import khác:

import RPi.GPIO as GPIO

Sửa đổi mã để đặt chân đầu ra ban đầu thành trạng thái logic thấp. Khi khi nhận được lệnh, hãy đặt chân ở trạng thái logic cao. Khi nhận được lệnh tắt, hãy đặt ghim ở trạng thái logic thấp.

device_handler = device_helpers.DeviceRequestHandler(device_id)
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.OUT, initial=GPIO.LOW)

@device_handler.command('action.devices.commands.OnOff')
def onoff(on):
    if on:
        logging.info('Turning device on')
        GPIO.output(25, 1)
    else:
        logging.info('Turning device off')
        GPIO.output(25, 0)

Lưu thay đổi rồi đóng tệp.

Chạy mẫu

Chạy mã mẫu đã sửa đổi.

python pushtotalk.py

Sử dụng cùng một truy vấn như trước đây. Đèn LED sẽ bật.

Đây chỉ mới là bước khởi đầu. Tìm hiểu cách bổ sung các tính năng và trình xử lý.