Google Assistant Library

แพ็กเกจ google.assistant.library

class google.assistant.library.Assistant(credentials, device_model_id)

ไคลเอ็นต์สําหรับไลบรารี Google Assistant

ให้ฟังก์ชันการควบคุมพื้นฐานและการจัดการวงจรชีวิตของ Google Assistant แนวทางปฏิบัติแนะนำคือให้ใช้ Assistant เป็นContextManager

with Assistant(credentials, device_model_id) as assistant:

ซึ่งช่วยให้การติดตั้งใช้งานโฆษณาเนทีฟที่เกี่ยวข้อง จัดการหน่วยความจำ

เมื่อเรียก start() แล้ว Assistant จะสร้างสตรีมเหตุการณ์ที่ส่งต่อสถานะต่างๆ ของ Assistant ในขณะนั้น เช่น

ON_CONVERSATION_TURN_STARTED
ON_END_OF_UTTERANCE
ON_RECOGNIZING_SPEECH_FINISHED:
    {'text': 'what time is it'}
ON_RESPONDING_STARTED:
    {'is_error_response': False}
ON_RESPONDING_FINISHED
ON_CONVERSATION_TURN_FINISHED:
    {'with_follow_on_turn': False}

ดูรายละเอียดใน EventType เกี่ยวกับเหตุการณ์ทั้งหมดและอาร์กิวเมนต์

อภิธานศัพท์:

  • คำสั่งให้ดำเนินการ: วลีที่ Assistant จะคอยฟังเมื่อไม่ได้ปิดเสียง

    "OK Google" OR "Hey Google"
    
  • Turn: คำขอของผู้ใช้รายการเดียวตามด้วยการตอบกลับจาก Assistant

  • การสนทนา: การสนทนาอย่างน้อย 1 ครั้งที่ส่งผลให้ได้ผลลัพธ์ที่ต้องการจาก Assistant

    "What time is it?" -> "The time is 6:24 PM" OR
    "Set a timer" -> "Okay, for how long?" ->
    "5 minutes" -> "Sure, 5 minutes, starting now!"
    
พารามิเตอร์ ได้แก่
  • credentials (google.oauth2.credentials.Credentials) - ข้อมูล ข้อมูลเข้าสู่ระบบ Google OAuth2
  • device_model_id (str) – device_model_id ที่ลงทะเบียนไว้สำหรับโปรเจ็กต์ของคุณกับ Google ค่านี้ต้องไม่ใช่สตริงว่าง
เพิ่ม

ValueError – หากมีการป้อน device_model_id เป็น "ไม่มี" หรือเว้นว่างไว้

device_id

แสดงรหัสอุปกรณ์ที่ Assistant สร้างขึ้น

ค่านี้จะระบุอุปกรณ์ของคุณไปยังเซิร์ฟเวอร์เมื่อใช้บริการ เช่น Google Device Actions พร็อพเพอร์ตี้นี้เติมข้อมูล "หลังจาก" เท่านั้น โทรหา start() แล้ว

ค่าที่ส่งคืน:รหัสอุปกรณ์ 1 ครั้ง start() มี อาจถูกเรียก สตริงว่างเปล่า
ประเภทการแสดงผลstr
send_text_query(query)

ส่ง |query| ไปยัง Assistant เหมือนกับที่ผู้ใช้พูด

ซึ่งจะมีลักษณะการทำงานเหมือนกับที่ผู้ใช้พูดคำสั่งให้ดำเนินการ และทำให้ คำค้นหา หรือพูดคำตอบสำหรับคำค้นหาที่ตามมา

พารามิเตอร์ ได้แก่query (str) – ข้อความค้นหาที่จะส่งไปยัง Assistant
set_mic_mute(is_muted)

หยุด Assistant ไม่ให้ฟังคำสั่งให้ดำเนินการ

อนุญาตให้ปิดใช้ Assistant ไม่ให้คอยฟังคำสั่งให้ดำเนินการ ซึ่งจะมีฟังก์ชันการทำงานคล้ายกับปุ่มความเป็นส่วนตัวที่ด้านหลังของ Google Home

วิธีนี้ไม่ต้องดำเนินการใดๆ หากยังไม่ได้เริ่มต้นใช้งาน Assistant

พารามิเตอร์ ได้แก่is_muted (bool) – True จะหยุดไม่ให้ Assistant ฟังเสียง และ False จะอนุญาตให้เริ่มฟังอีกครั้ง
start()

เริ่มใช้ Assistant ซึ่งรวมถึงการฟังคำสั่งให้ดำเนินการ

เมื่อ start() มีมูลค่า ที่เรียกว่า Assistant จะเริ่มประมวลผลข้อมูลจาก แหล่งที่มาของเสียง ALSA "เริ่มต้น" กำลังฟังคำสั่งให้ดำเนินการ ช่วงเวลานี้ จะเริ่มบริการอื่นๆ จาก Assistant ด้วย เช่น เป็นตัวจับเวลา/นาฬิกาปลุก เรียกเมธอดนี้ได้เพียงครั้งเดียวเท่านั้น เมื่อเรียกแล้ว Assistant จะทำงานต่อไปจนกว่าจะมีการเรียก __exit__

ค่าที่ส่งคืน:คิวเหตุการณ์ที่แจ้งการเปลี่ยนแปลงสถานะของ Assistant
ประเภทการแสดงผล:google.assistant.event.IterableEventQueue
start_conversation()

เริ่มการสนทนาใหม่กับ Assistant ด้วยตนเอง

เริ่มทั้งการบันทึกคำพูดของผู้ใช้และส่งไปยัง Google ซึ่งคล้ายกับสิ่งที่เกิดขึ้นเมื่อ Assistant ได้ยินคําสั่งให้ดำเนินการ

วิธีนี้จะไม่มีการดำเนินการใดๆ หาก Assistant ไม่ได้เริ่มต้นใช้งานหรือ ปิดเสียงอยู่

stop_conversation()

หยุดการสนทนากับ Assistant ที่กำลังดำเนินอยู่

Assistant อาจฟังคำถามของผู้ใช้หรือตอบสนองอยู่ก็ได้ ถ้า ไม่มีการสนทนาที่ใช้งานอยู่ นี่เป็นการดำเนินการที่ไม่มีการดำเนินการ

คลาส google.assistant.library.event.AlertEvent(event_type, args, **_)

ขยายเหตุการณ์เพื่อเพิ่มการแยกวิเคราะห์ "alert_type"

class google.assistant.library.event.AlertType

ประเภทการแจ้งเตือน

ใช้กับเหตุการณ์ ON_ALERT_STARTED และ ON_ALERT_FINISHED

ALARM = 0

กิจกรรมที่ตั้งไว้สำหรับเวลาสัมบูรณ์ เช่น "ตี 3 วันจันทร์"

TIMER = 1

ชุดเหตุการณ์สำหรับเวลาที่เกี่ยวข้อง เช่น "30 วินาทีจากนี้"

class google.assistant.library.event.DeviceActionEvent(event_type, args, **kwargs)

ขยายเหตุการณ์เพื่อเพิ่มพร็อพเพอร์ตี้ "actions"

actions

ตัวสร้างคำสั่งที่จะดำเนินการสำหรับอุปกรณ์ปัจจุบัน

class google.assistant.library.event.Event(event_type, args, **_)

เหตุการณ์ที่สร้างโดย Assistant

type

EventType – ประเภทเหตุการณ์ที่สร้างขึ้น

args

dict – คู่คีย์/ค่าอาร์กิวเมนต์ที่เชื่อมโยงกับเหตุการณ์นี้

static New(event_type, args, **kwargs)

สร้างเหตุการณ์ใหม่โดยใช้คลาสเหตุการณ์เฉพาะทางเมื่อจําเป็น

พารามิเตอร์ ได้แก่
  • event_type (int) – รหัสตัวเลขที่สอดคล้องกับเหตุการณ์ใน google.assistant.event.EventType
  • args (dict) – คู่คีย์/ค่าอาร์กิวเมนต์ที่เชื่อมโยงกับเหตุการณ์นี้
  • kwargs (dict) – คู่คีย์/ค่าอาร์กิวเมนต์ที่ไม่บังคับซึ่งเจาะจงสำหรับคลาสเหตุการณ์ที่เชี่ยวชาญด้าน EventType
class google.assistant.library.event.EventType

ประเภทเหตุการณ์

ON_ALERT_FINISHED = 11

บ่งบอกว่าเสียงแจ้งเตือนของ alert_type สิ้นสุดแล้ว

พารามิเตอร์ ได้แก่alert_type (AlertType) – รหัสของ Enum ที่แสดงถึงประเภท ที่เพิ่งจบไป
ON_ALERT_STARTED = 10

บ่งบอกว่าการแจ้งเตือนเริ่มดังขึ้นแล้ว

การแจ้งเตือนนี้จะดำเนินต่อไปจนถึง ON_ALERT_FINISHED ที่ได้รับ alert_type เดียวกัน ควรมีการแจ้งเตือนที่ใช้งานอยู่เพียงรายการเดียวเท่านั้นในช่วงเวลาหนึ่ง

พารามิเตอร์ ได้แก่alert_type (AlertType) – รหัสของ Enum แทนค่าปัจจุบัน การส่งเสียงแจ้งเตือน
ON_ASSISTANT_ERROR = 12

ระบุว่าไลบรารี Assistant พบข้อผิดพลาดหรือไม่

พารามิเตอร์ ได้แก่is_fatal (bool) - หากเป็น "จริง" Assistant จะกู้คืนไม่ได้ และควรเริ่มต้นใหม่
ON_CONVERSATION_TURN_FINISHED = 9

Assistant จบการเลี้ยวปัจจุบันแล้ว

ซึ่งรวมถึงทั้งการประมวลผลคําค้นหาของผู้ใช้และการพูดคําตอบแบบเต็ม หากมี

พารามิเตอร์ ได้แก่with_follow_on_turn (bool) – หากเป็น True แสดงว่า Assistant คาดหวังว่าผู้ใช้จะโต้ตอบกลับ ไมโครโฟนจะเปิดขึ้นอีกครั้งเพื่อให้ผู้ใช้ตอบคำถามต่อได้
ON_CONVERSATION_TURN_STARTED = 1

บ่งบอกว่าเริ่มเลี้ยวใหม่แล้ว

Assistant กำลังฟังอยู่ กำลังรอผู้ใช้ คำถาม ซึ่งอาจเป็นผลมาจากการได้ยินคำสั่งให้ดำเนินการ หรือ start_conversation() กำลังโทรหาใน Assistant

ON_CONVERSATION_TURN_TIMEOUT = 2

Assistant หมดเวลาขณะรอคําค้นหาที่เข้าใจได้

ซึ่งอาจเกิดจากการเกิดข้อผิดพลาดของคำสั่งให้ดำเนินการหรือ Assistant อาจ ไม่เข้าใจสิ่งที่ผู้ใช้พูด

ON_DEVICE_ACTION = 14

บ่งบอกว่ามีการส่งคําขอการดำเนินการกับอุปกรณ์ไปยังอุปกรณ์

ระบบจะส่งข้อมูลนี้ไปหากมีการทริกเกอร์ไวยากรณ์ของอุปกรณ์สำหรับฟังก์ชัน ลักษณะ ที่อุปกรณ์รองรับ ประเภทเหตุการณ์นี้มี "การดำเนินการ" พิเศษ ซึ่งจะแสดงผลคำสั่ง Iterator หรือ Device Action และ พารามิเตอร์ที่เกี่ยวข้อง (หากมี)

พารามิเตอร์ ได้แก่dict – เพย์โหลด JSON ที่ถอดรหัสของคำขอการดำเนินการของอุปกรณ์
ON_END_OF_UTTERANCE = 3

Assistant หยุดฟังคำถามของผู้ใช้แล้ว

Assistant อาจยังคิดไม่ออกว่าผู้ใช้พูดอะไร อุปกรณ์หยุดฟังข้อมูลเสียงเพิ่มเติม

ON_MEDIA_STATE_ERROR = 20

บ่งบอกว่าเกิดข้อผิดพลาดในการเล่นแทร็ก

มีเดียเพลเยอร์ในตัวจะพยายามข้ามไปยังแทร็กถัดไปหรือกลับไปที่ ON_MEDIA_STATE_IDLE หากไม่มีแทร็กใดเหลือให้เล่น

ON_MEDIA_STATE_IDLE = 16

บ่งบอกว่าไม่มีรายการที่กำลังเล่นและไม่มีรายการใดอยู่ในคิวรอเล่น

เหตุการณ์นี้ออกอากาศจากโปรแกรมเล่นสื่อในตัวของคลัง Google Assistant สําหรับข่าว/พอดแคสต์เมื่อเริ่มต้นใช้งาน และเมื่อใดก็ตามที่โปรแกรมเล่นไม่มีการใช้งานเนื่องจากผู้ใช้หยุดสื่อหรือหยุดชั่วคราวและสตรีมหมดเวลา

ON_MEDIA_TRACK_LOAD = 17

บ่งบอกว่าแทร็กกำลังโหลดแต่ยังไม่ได้เริ่มเล่น

ซึ่งอาจส่งหลายครั้งหากมีการโหลดข้อมูลเมตาใหม่แบบไม่พร้อมกัน โดยทั่วไปจะตามด้วยเหตุการณ์ ON_MEDIA_TRACK_PLAY

พารามิเตอร์ ได้แก่
  • metadata (dict)

    ข้อมูลเมตาสำหรับแทร็กที่โหลด ระบบอาจไม่ได้กรอกข้อมูลในบางช่องภายในเวลานี้ หากไม่ทราบข้อมูลในช่องใด ระบบจะไม่รวมช่องนั้น ช่องข้อมูลเมตามีดังนี้

    อัลบั้ม(str): ชื่ออัลบั้มที่มีแทร็ก Albums_art(str): URL ของปกอัลบั้ม artist(str): ศิลปินที่สร้างแทร็กนี้ duration_ms(Double): ความยาวของแทร็กนี้ หน่วยเป็นมิลลิวินาที title(str): ชื่อแทร็ก
  • track_type (MediaTrackType) – ประเภทของแทร็กที่โหลด
ON_MEDIA_TRACK_PLAY = 18

บ่งบอกว่าแทร็กกำลังเอาต์พุตเสียง

สิ่งนี้จะทริกเกอร์ก็ต่อเมื่อเราเปลี่ยนรูปแบบจากสถานะหนึ่งไปยังอีกสถานะหนึ่ง เช่น จาก ON_MEDIA_TRACK_LOAD หรือ ON_MEDIA_TRACK_STOP

พารามิเตอร์ ได้แก่
  • metadata (dict)

    ข้อมูลเมตาสำหรับแทร็กที่เล่นอยู่ หากไม่ทราบช่อง และจะไม่รวมอยู่ด้วย ช่องข้อมูลเมตามีดังนี้

    album(str): ชื่ออัลบั้มของแทร็ก album_art(str): URL ของภาพปกอัลบั้ม artist(str): ศิลปินที่สร้างแทร็กนี้ duration_ms(double): ความยาวของแทร็กนี้ในหน่วยมิลลิวินาที title(str): ชื่อของแทร็ก
  • position_ms (double) – ตำแหน่งปัจจุบันในแทร็กที่เล่นใน มิลลิวินาทีตั้งแต่เริ่มต้น หาก "metadata.duration_ms" คือ ไม่ทราบ (ตั้งค่าเป็น 0) ระบบจะไม่ตั้งค่าช่องนี้
  • track_type (MediaTrackType) – ประเภทของแทร็กที่กำลังเล่น
ON_MEDIA_TRACK_STOP = 19

บ่งบอกว่าแทร็กที่กำลังเล่นก่อนหน้านี้หยุดแล้ว

โดยทั่วไปปัญหานี้เกิดจากการที่ผู้ใช้หยุดชั่วคราว แทร็กสามารถกลับไปยัง ON_MEDIA_TRACK_PLAY หากใช่ ที่ผู้ใช้กลับมาทำงานอีกครั้ง

พารามิเตอร์ ได้แก่
  • metadata (dict) –

    ข้อมูลเมตาสำหรับแทร็กที่หยุด หากไม่ทราบฟิลด์ใด ระบบจะไม่รวมฟิลด์นั้น ช่องข้อมูลเมตามีดังนี้

    album(str): ชื่ออัลบั้มของแทร็ก album_art(str): URL ของภาพปกอัลบั้ม artist(str): ศิลปินที่สร้างแทร็กนี้ duration_ms(double): ความยาวของแทร็กนี้เป็นมิลลิวินาที title(str): ชื่อของแทร็ก
  • position_ms (double) – ตำแหน่งปัจจุบันในแทร็กที่หยุดใน มิลลิวินาทีตั้งแต่เริ่มต้น หาก "metadata.duration_ms" ไม่ทราบค่า (ตั้งค่าเป็น 0) ระบบจะไม่ตั้งค่าช่องนี้
  • track_type (MediaTrackType) - ประเภทของแทร็กที่หยุดลง
ON_MUTED_CHANGED = 13

บ่งบอกว่าขณะนี้ Assistant กำลังฟังอยู่หรือไม่

start() จะเสมอ สร้าง ON_MUTED_CHANGED เพื่อรายงานค่าเริ่มต้น

พารามิเตอร์ ได้แก่is_muted (bool) – หากเป็น True แสดงว่า Assistant ไม่ได้กำลังฟังคำสั่งให้ดำเนินการและจะไม่ตอบสนองต่อคําค้นหาของผู้ใช้
ON_NO_RESPONSE = 8

Assistant พูดจนจบรอบแล้ว แต่ไม่มีอะไรจะพูด

ON_RECOGNIZING_SPEECH_FINISHED = 5

Assistant ระบุคำพูดที่จดจำได้สุดท้ายแล้ว

พารามิเตอร์ ได้แก่text (str) – การตีความข้อความขั้นสุดท้ายของข้อความค้นหาของผู้ใช้
ON_RENDER_RESPONSE = 15

บ่งบอกว่า Assistant มีเอาต์พุตข้อความให้แสดงผลสำหรับคำตอบ

พารามิเตอร์ ได้แก่
  • type (RenderResponseType) - ประเภทการตอบกลับที่ต้องการแสดงผล
  • text (str) – สตริงที่จะแสดงผลสำหรับ RenderResponseType.TEXT
ON_RESPONDING_FINISHED = 7

Assistant ตอบกลับด้วยเสียงเสร็จแล้ว

ON_RESPONDING_STARTED = 6

Assistant เริ่มโต้ตอบด้วยเสียง

Assistant จะตอบกลับจนกว่าจะได้รับการตอบกลับON_RESPONDING_FINISHED

พารามิเตอร์ ได้แก่is_error_response (bool) – จริงหมายถึงกำลังเล่น TTS ข้อผิดพลาดในเครื่องอยู่ ไม่เช่นนั้น Assistant จะตอบกลับด้วยการตอบกลับของเซิร์ฟเวอร์
ON_START_FINISHED = 0

คลัง Assistant เริ่มเสร็จแล้ว

คลาส google.assistant.library.event.IterableEventQueue(timeout=3600)

ขยายคิว คิวเพื่อเพิ่มอินเทอร์เฟซ __iter__

offer(event)

เสนอกิจกรรมที่จะส่งเข้าคิว

หากคิวเต็มแล้ว ระบบจะบันทึกเหตุการณ์แต่ไม่เพิ่มเหตุการณ์นั้น

พารามิเตอร์ ได้แก่event (Event) – กิจกรรมที่พยายามเพิ่มลงในคิว
คลาส google.assistant.library.event.MediaStateChangeEvent(event_type, args, **_)

ขยายเหตุการณ์เพื่อเพิ่มการแยกวิเคราะห์ "สถานะ"

ชั้นเรียน google.assistant.library.event.MediaTrackType

ประเภทแทร็กสําหรับเหตุการณ์ ON_MEDIA_TRACK_X

ใช้กับ ON_MEDIA_TRACK_LOAD, ON_MEDIA_TRACK_PLAY, & ON_MEDIA_TRACK_STOP

CONTENT = 2

เนื้อหาจริงของรายการ (ข่าว/พอดแคสต์)

TTS = 1

บทแนะนำ TTS หรือแทร็กคั่นระหว่างหน้าที่เกี่ยวข้องกับรายการ

คลาส google.assistant.library.event.RenderResponseEvent(event_type, args, **_)

ขยายเหตุการณ์เพื่อเพิ่มการแยกวิเคราะห์ "response_type"

class google.assistant.library.event.RenderResponseType

ประเภทเนื้อหาที่จะแสดงผล

ใช้กับ ON_RENDER_RESPONSE