จัดการรัฐ

สถานะภายในเอเจนต์จะตามแนวคิดเดียวกันกับแอปพลิเคชันเว็บที่ทันสมัย SDK ของตัวแทนให้แนวคิดนามธรรมบางอย่างสำหรับให้การจัดการสถานะง่ายขึ้น

เช่นเดียวกับเว็บแอป ตัวแทนจะไร้สถานะโดยธรรมชาติ อินสแตนซ์ที่ต่างกันของตัวแทนของคุณอาจจัดการกับการหมุนเวียนใด ๆ ของการสนทนา สําหรับตัวแทนบางราย ความเรียบง่ายนี้จําเป็น—ตัวแทนสามารถทํางานได้โดยไม่มีข้อมูลเพิ่มเติม หรือรับประกันว่าข้อมูลที่จําเป็นจะอยู่ในข้อความขาเข้า สําหรับผู้อื่น สถานะ (เช่น การสนทนาที่เหลืออยู่หรือข้อมูลที่เคยได้รับเกี่ยวกับผู้ใช้งาน) เป็นสิ่งจําเป็นสําหรับตัวแทนที่จะมีการสนทนาที่มีประโยชน์

ทําไมฉันต้องมีรัฐ?

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

ตามที่เกี่ยวข้องกับตัวแทน มีเลเยอร์สองสามเลเยอร์เพื่อใช้สถานะ: เลเยอร์ที่เก็บข้อมูล การจัดการสถานะ และ AgentApplication

เลเยอร์ที่เก็บข้อมูล

เริ่มต้นที่แบ็กเอนด์ที่มีการจัดเก็บข้อมูลสถานะจริงคือเลเยอร์ที่เก็บข้อมูล คุณสามารถนึกภาพสิ่งนี้ว่าเป็นที่เก็บข้อมูลจริงของคุณ เช่น ในหน่วยความจํา Azure หรือเซิร์ฟเวอร์ของบุคคลที่สาม

SDK ของตัวแทนประกอบด้วยการดําเนินการบางอย่างสําหรับเลเยอร์ที่เก็บข้อมูล:

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

ที่เก็บข้อมูล Blob Azure เชื่อมต่อกับฐานข้อมูลวัตถุเก็บข้อมูล Azure Blob

Azure Cosmos DB พื้นที่จัดเก็บข้อมูลที่มีการแบ่งพาร์ติชันเชื่อมต่อกับฐานข้อมูล Cosmos DB NoSQL ที่ถูกแบ่งพาร์ติชัน

สําหรับคําแนะนําเกี่ยวกับวิธีการเชื่อมต่อกับตัวเลือกที่เก็บข้อมูลอื่น ๆ ให้ดู ภาพรวมที่เก็บข้อมูล SDK ตัวแทน

การจัดการรัฐ

การจัดการรัฐทําให้การอ่านและการเขียนสถานะตัวแทนของคุณไปยังเลเยอร์ที่เก็บข้อมูลพื้นฐานโดยอัตโนมัติ สถานะถูกจัดเก็บเป็นคุณสมบัติสถานะ ซึ่งเป็นคู่ค่าคีย์อย่างมีประสิทธิภาพที่ตัวแทนของคุณสามารถอ่านและเขียนผ่านวัตถุการจัดการสถานะโดยไม่ต้องกังวลเกี่ยวกับการใช้งานเบื้องต้นโดยเฉพาะ คุณสมบัติสถานะเหล่านั้นกําหนดวิธีการจัดเก็บข้อมูล ตัวอย่างเช่น เมื่อคุณเรียกใช้คุณสมบัติที่คุณกําหนดให้เป็นคลาสหรือออบเจ็กต์เฉพาะ คุณจะทราบว่าข้อมูลนั้นจะถูกจัดโครงสร้างอย่างไร

คุณสมบัติสถานะเหล่านี้จะถูกรวมเป็นกลุ่ม "บักเก็ต" ที่มีขอบเขต ซึ่งเป็นเพียงคอลเลกชันเพื่อช่วยจัดระเบียบคุณสมบัติเหล่านั้น SDK ประกอบด้วย "บักเก็ต" เหล่านี้สามรายการ:

  • สถานะผู้ใช้
  • ลักษณะของการสนทนา

บักเก็ตเหล่านี้ทั้งหมดเป็นคลาสย่อยของระดับรัฐของตัวแทนซึ่งอาจได้รับมาเพื่อกําหนดบักเก็ตประเภทอื่น ๆ ที่มีขอบเขตที่แตกต่างกัน

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

  • สถานะผู้ใช้จะพร้อมใช้งานในทางใดก็ตาม ที่เอเย่นต์กําลังถกเถียงกับผู้ใช้ดังกล่าวบนแชนเนลโดยไม่คํานึงถึงการสนทนา
  • สถานะการสนทนาจะพร้อมใช้งานในการสนทนาเฉพาะโดยไม่คํานึงถึงผู้ใช้ เช่นในการสนทนากลุ่ม

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

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

  • สถานะผู้ใช้จะสร้างคีย์โดยใช้รหัสแชนเนลและรหัสจาก ID ตัวอย่างเช่น {Activity.ChannelId}/users/{Activity.From.Id}#YourPropertyName
  • สถานะการสนทนาจะสร้างคีย์โดยใช้ ID ช่องและ ID การสนทนา ตัวอย่างเช่น {Activity.ChannelId}/conversations/{Activity.Conversation.Id}#YourPropertyName

เมื่อไรที่ควรใช้รัฐแต่ละชนิด

สถานะการสนทนาเหมาะสําหรับการติดตามบริบทของการสนทนา เช่น:

  • ว่าเจ้าหน้าที่ได้ถามคำถามกับผู้ใช้หรือไม่ และเป็นคำถามอะไร
  • หัวข้อการสนทนาปัจจุบันคืออะไรหรือหัวข้อสุดท้ายคืออะไร
  • การบันทึกประวัติการสนทนา

สถานะผู้ใช้เหมาะสําหรับการติดตามข้อมูลเกี่ยวกับผู้ใช้ เช่น:

  • ข้อมูลผู้ใช้ที่ไม่สําคัญ เช่น ชื่อและการตั้งค่า การตั้งค่าการแจ้งเตือน หรือการกําหนดลักษณะการแจ้งเตือน
  • ข้อมูลเกี่ยวกับการสนทนาครั้งล่าสุดที่พวกเขามีกับตัวแทน
    • ตัวอย่างเช่น เจ้าหน้าที่สนับสนุนผลิตภัณฑ์อาจติดตามว่าผู้ใช้ถามผลิตภัณฑ์ใด

แอปพลิเคชันตัวแทน

  • ตัวจัดการเส้นทางที่คุณเพิ่มจะมาพร้อมกับ TurnState อินสแตนซ์ เข้าถึงการสนทนาหรือสถานะของผู้ใช้จากอินสแตนซ์นี้
  • สถานะจะถูกโหลดและบันทึกโดยอัตโนมัติ