ผสานรวม Assistant เข้ากับโครงการของคุณ (ภาษาอื่นๆ)

ทำตามวิธีการในแต่ละส่วนด้านล่างเพื่อผสานรวม Google Assistant เข้ากับโปรเจ็กต์ของคุณ

การเชื่อมโยง gRPC

บริการ Google Assistant สร้างขึ้นจาก gRPC ซึ่งเป็นเฟรมเวิร์ก RPC แบบโอเพนซอร์สประสิทธิภาพสูง เฟรมเวิร์กนี้เหมาะสมสำหรับ การสตรีมเสียงแบบ 2 ทิศทาง

Python

หากคุณใช้ Python ให้เริ่มต้นใช้งานด้วยคู่มือนี้

C++

ลองดูตัวอย่าง C++ ใน GitHub

Node.js

ลองดูตัวอย่าง Node.js ใน GitHub

Android Things

หากสนใจอุปกรณ์แบบฝัง ดู Assistant SDK ตัวอย่างสำหรับ Android Things

ภาษาอื่นๆ

  • โคลนที่เก็บ googleapis เพื่อดูคำจำกัดความของอินเทอร์เฟซบัฟเฟอร์โปรโตคอลสำหรับ Google Assistant Service API
  • ทำตามเอกสารประกอบ gRPC เพื่อสร้างการเชื่อมโยง gRPC สำหรับภาษาที่คุณเลือก
  • ทำตามขั้นตอนในส่วนด้านล่าง

ให้สิทธิ์และตรวจสอบสิทธิ์บัญชี Google เพื่อทำงานกับ Assistant

ขั้นตอนต่อไปคือการอนุญาตให้อุปกรณ์พูดคุยกับ Google Assistant โดยใช้บัญชี Google ของคุณ

รับโทเค็น OAuth ด้วยขอบเขต SDK ของ Assistant

Assistant SDK ใช้โทเค็นเพื่อการเข้าถึง OAuth 2.0 เพื่อให้สิทธิ์อุปกรณ์เชื่อมต่อกับ Assistant

เมื่อสร้างต้นแบบ คุณสามารถใช้เครื่องมือการให้สิทธิ์เพื่อสร้างข้อมูลเข้าสู่ระบบ OAuth2.0 ได้อย่างง่ายดายจากไฟล์ client_secret_<client-id>.json ที่สร้างขึ้นเมื่อลงทะเบียนรุ่นอุปกรณ์

ทำตามขั้นตอนต่อไปนี้เพื่อสร้างข้อมูลเข้าสู่ระบบ

  1. ใช้สภาพแวดล้อมเสมือนของ Python เพื่อแยกเครื่องมือการให้สิทธิ์และทรัพยากร Dependency ออกจากแพ็กเกจ Python ของระบบ

    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. ติดตั้งเครื่องมือการให้สิทธิ์

    python -m pip install --upgrade google-auth-oauthlib[tool]
  3. เรียกใช้เครื่องมือ นำแฟล็ก --headless ออกหากเรียกใช้จากเทอร์มินัลในอุปกรณ์ (ไม่ใช่เซสชัน SSH)

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

เมื่อคุณพร้อมที่จะผสานรวมการให้สิทธิ์เป็นส่วนหนึ่งของกลไกการจัดสรรของอุปกรณ์ โปรดอ่านคู่มือของเราสำหรับการใช้ OAuth 2.0 เพื่อเข้าถึง Google API เพื่อทำความเข้าใจวิธีรับ คงสถานะ และใช้โทเค็นเพื่อการเข้าถึง OAuth เพื่ออนุญาตให้อุปกรณ์พูดคุยกับ Assistant API

ใช้ข้อมูลต่อไปนี้เมื่ออ่านคู่มือเหล่านี้

ดูแนวทางปฏิบัติแนะนำเกี่ยวกับความเป็นส่วนตัวและความปลอดภัยสำหรับคำแนะนำเกี่ยวกับวิธีรักษาความปลอดภัยของอุปกรณ์

ตรวจสอบสิทธิ์การเชื่อมต่อ gRPC ด้วยโทเค็น OAuth

สุดท้าย ให้นำข้อมูลทั้งหมดมารวมกันโดยอ่านวิธีใช้การตรวจสอบสิทธิ์โดยใช้โทเค็นกับ Google เพื่อตรวจสอบสิทธิ์การเชื่อมต่อ gRPC กับ Assistant API

ลงทะเบียนอุปกรณ์ของคุณ

ลงทะเบียนรุ่นอุปกรณ์และอินสแตนซ์ด้วยตนเองหรือใช้เครื่องมือการลงทะเบียน (พร้อมใช้งานใน Python)

ใช้กล่องโต้ตอบการสนทนาพื้นฐานกับ Assistant

  1. ใช้ไคลเอ็นต์ gRPC สตรีมมิงแบบ 2 ทิศทางสำหรับ Google Assistant Service API
  2. รอให้ผู้ใช้ทริกเกอร์คำขอใหม่ (เช่น รอให้การรบกวน GPIO เกิดขึ้นจากการกดปุ่ม)
  3. ส่งข้อความ AssistRequest พร้อมตั้งค่าช่อง config (ดู AssistConfig) ตรวจสอบว่าช่อง config มีข้อมูลต่อไปนี้

    • ช่อง audio_in_config ซึ่งระบุวิธีประมวลผลข้อมูล audio_in ที่จะระบุในคำขอที่ตามมา (ดู AudioInConfig)
    • ช่อง audio_out_config ซึ่งระบุรูปแบบที่ต้องการเพื่อให้เซิร์ฟเวอร์ใช้เมื่อแสดงผลข้อความ audio_out (ดู AudioOutConfig)
    • ช่อง device_config ซึ่งระบุอุปกรณ์ที่ลงทะเบียนไว้กับ Assistant (ดูDeviceConfig)
    • ช่อง dialog_state_in ซึ่งมี language_code ที่เชื่อมโยงกับคำขอ (ดู DialogStateIn)
  4. เริ่มบันทึก

  5. ส่ง AssistRequest ขาออกหลายข้อความพร้อมข้อมูลเสียงจากคําค้นหาที่พูดในช่อง audio_in

  6. จัดการข้อความ AssistResponse ขาเข้า

  7. ดึงข้อมูลเมตาของการสนทนาจากข้อความ AssistResponse เช่น จาก dialog_state_out ให้รับ conversation_state และ volume_percentage (ดู DialogStateOut)

  8. หยุดบันทึกเมื่อได้รับ AssistResponse ที่มี event_type ของ END_OF_UTTERANCE

  9. เล่นเสียงจากคำตอบของ Assistant ด้วยข้อมูลเสียงที่มาจากช่อง audio_out

  10. นำ conversation_state ที่แยกออกมาก่อนหน้านี้ไปคัดลอกลงในข้อความ DialogStateIn ใน AssistConfig สำหรับ AssistRequest ถัดไป

ตอนนี้คุณก็พร้อมที่จะส่งคำขอแรกไปยัง Google Assistant ผ่านอุปกรณ์ของคุณแล้ว

ขยายกล่องโต้ตอบการสนทนาด้วยการดำเนินการของอุปกรณ์

ขยายกล่องโต้ตอบการสนทนาพื้นฐานด้านบนเพื่อทริกเกอร์ความสามารถของฮาร์ดแวร์เฉพาะของอุปกรณ์

  1. ในข้อความ AssistResponse ขาเข้า ให้แตกช่อง device_action (ดู DeviceAction)
  2. แยกวิเคราะห์เพย์โหลด JSON ของช่อง device_request_json โปรดดูรายการลักษณะที่รองรับในหน้าลักษณะของอุปกรณ์ หน้าสคีมาลักษณะแต่ละหน้าจะแสดงตัวอย่างคำขอ EXECUTE พร้อมคำสั่งของอุปกรณ์และพารามิเตอร์ที่ส่งกลับมาในเพย์โหลด JSON

รับข้อความถอดเสียงของคำขอของผู้ใช้

หากคุณมีจอแสดงผลแนบอยู่กับอุปกรณ์ คุณอาจต้องการใช้จอแสดงผลเพื่อแสดงคำขอของผู้ใช้ หากต้องการรับข้อความถอดเสียงนี้ ให้แยกวิเคราะห์ช่อง speech_results ในข้อความ AssistResponse เมื่อการรู้จำคำพูดเสร็จสมบูรณ์ รายการนี้จะมีรายการ 1 รายการที่มีการตั้งค่า stability เป็น 1.0

รับข้อความและ/หรือภาพที่แสดงคำตอบของ Assistant

หากคุณมีจอแสดงผลแนบอยู่กับอุปกรณ์ คุณอาจต้องการใช้จอแสดงผลเพื่อแสดงการตอบกลับเป็นข้อความธรรมดาของ Assistant ต่อคำขอของผู้ใช้ ข้อความนี้จะอยู่ในช่อง DialogStateOut.supplemental_display_text

Assistant รองรับการตอบสนองด้วยภาพผ่าน HTML5 สำหรับคำค้นหาบางอย่าง (อากาศที่ Mountain View เป็นยังไงบ้าง หรือตอนนี้กี่โมง) หากต้องการเปิดใช้ ให้ตั้งค่าช่อง screen_out_config ใน AssistConfig ข้อความ ScreenOutConfig มีช่อง screen_mode ซึ่งควรตั้งค่าเป็น PLAYING

ข้อความ AssistResponse จะมีช่อง screen_out ที่ตั้งค่าไว้ คุณดึงข้อมูล HTML5 (หากมี) จากช่อง data ได้

การส่งการค้นหาผ่านการป้อนข้อความ

หากคุณมีอินเทอร์เฟซข้อความ (เช่น แป้นพิมพ์) ต่อเข้ากับอุปกรณ์ ให้ตั้งค่าช่อง text_query ในช่อง config (ดู AssistConfig) ไม่ต้องตั้งค่าช่อง audio_in_config

การแก้ปัญหา

ดูหน้าการแก้ปัญหาหากพบปัญหา