إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تتبع الحالة داخل العامل نفس النماذج مثل تطبيقات الويب الحديثة. يوفر Agents SDK بعض المجردات لتسهيل إدارة الحالة.
كما هو الْحالْ مع تطبيقات الْويب، فإن الْعامل عديم الْحالْة بطبيعتها. قد يتولى مثيل مختلف من وكيلك معالجة أي دورة معينة في المحادثة. بالنسبة لبعض العوامل، يفضل هذه البساطة - يمكن للعامل إما العمل دون معلومات إضافية، أو أن تكون المعلومات المطلوبة ضمن الرسالة الواردة. بالنسبة للآخرين، تعد الحالة (مثل المكان الذي توقفت فيه المحادثة أو البيانات التي تم تلقيها مسبقا حول المستخدم) ضرورية للعامل لإجراء محادثة مفيدة.
لماذا أحتاج إلى الْحالْة؟
يسمح الحفاظ على الحالة لوكيلك بإجراء محادثات ذات معنى أكبر من خلال تذكر أشياء معينة حول مستخدم أو محادثة. على سبيل المثال، إذا تحدثت إلى مستخدم مسبقا، يمكنك حفظ معلومات سابقة عنه، بحيث لا تحتاج إلى طلبها مرة أخرى. تحتفظ الحالة أيضا بالبيانات لفترة أطول من المنعطف الحالي، بحيث يحتفظ وكيلك بالمعلومات على مدار محادثة متعددة الأدوار.
فيما يتعلق بالعوامل، هناك بعض الطبقات لاستخدام الحالة: طبقة التخزين وإدارة الحالة و AgentApplication.
طبقة التخزين
بدءا من الخلفية، حيث يتم تخزين معلومات الحالة فعليا، تكون طبقة التخزين. يمكنك التفكير في هذا على أنه التخزين الفعلي الخاص بك، مثل في الذاكرة أو Azure أو خادم جهة خارجية.
يتضمن Agents SDK بعض عمليات التنفيذ لطبقة التخزين:
ينفذ تخزين الذاكرة عمليات التخزين في الذاكرة لأغراض الاختبار. تم تصميم تخزين البيانات في الذاكرة للاختبار المحلي فقط لأن هذا التخزين متقلب ومؤقت. يتم مسح البيانات في كل مرة يتم فيها إعادة تشغيل العامل.
يتصل مساحة تخزين Azure Blob بقاعدة بيانات كائن مساحة تخزين Azure Blob.
يتصل التخزين المقسم Azure Cosmos DB بقاعدة بيانات NoSQL Cosmos DB مقسمة.
للحصول على إرشادات حول كيفية الاتصال بخيارات التخزين الأخرى، راجع نظرة عامة على تخزين Agents SDK
إدارة الْحالْة
تقوم إدارة الحالة بأتمتة قراءة حالة وكيلك وكتابتها إلى طبقة التخزين الأساسية. يتم تخزين الحالة كخصائص حالة، وهي أزواج قيم المفاتيح التي يمكن لوكيلك قراءتها وكتابتها من خلال كائن إدارة الحالة دون القلق بشأن التنفيذ الأساسي المحدد. تحدد خصائص الحالة هذه كيفية تخزين هذه المعلومات. على سبيل المثال، عند استرداد خاصية قمت بتعريفها كفئة أو عنصر معين، فإنك تعرف كيفية هيكلة هذه البيانات.
يتم تجميع خصائص الْحالْة هذه فِي "مستودعات" محددة الْنطاق، وهي مجرد مجموعات للمساعدة فِي تنظيم هذه الْخصائص. تتضمن مجموعة تطوير البرمجيات (SDK) ثلاثة من هذه "الحاويات".
- حالة المستخدم
- حالة المحادثة
كل هذه المستودعات هي فئات فرعية من فئة حالة العامل، والتي يمكن اشتقاقها لتعريف أنواع أخرى من المستودعات ذات النطاقات المختلفة.
يتم تحديد نطاق هذه الْمستودعات الْمعرفة مسبقا إلى رؤية معينة، اعتمادا على الْمستودع:
- تكون حالة المستخدم متاحة في أي دور يتحدث فيه الوكيل مع هذا المستخدم عبر تلك القناة، بغض النظر عن سياق المحادثة
- تتوفر حالة المحادثة بأي شكل من الأشكال في محادثة معينة، بغض النظر عن المستخدم، كما هو الحال في محادثات المجموعة
يتم تحديد نطاق حالة المستخدم وحالة المحادثة حسب القناة. يظهر نفس الشخص الذي يستخدم قنوات مختلفة للوصول إلى وكيلك كمستخدمين مختلفين، وواحد لكل قناة، ولكل منها حالة مستخدم مميزة.
الْمفاتيح الْمُسْتَخْدِمٌة لكل مِنْ هذه الْمستودعات الْمحددة مسبقًا خاصة بالْمُسْتَخْدِمٌ والْمحادثة أو الْوكيل. عند تعيين قيمة خاصية الحالة الخاصة بك، يتم تعريف المفتاح لك داخليا، مع معلومات موجودة في سياق الدوران للتأكد من وضع كل مستخدم أو محادثة في المستودع والخاصية الصحيحين. على وجه التحديد، يتم تعريف المفاتيح على النحو التالي:
- تنشئ حالة المستخدم مفتاحًا باستخدام معرف القناة والمعرف المصدري. على سبيل المثال،
{Activity.ChannelId}/users/{Activity.From.Id}#YourPropertyName - تنشئ حالة المحادثة مفتاحا باستخدام معرف القناة ومعرف المحادثة. على سبيل المثال،
{Activity.ChannelId}/conversations/{Activity.Conversation.Id}#YourPropertyName
متى تستخدم كل نوع مِنْ أنواع الْحالْات
حالة المحادثة جيدة لتعقب سياق المحادثة، مثل:
- ما إذا كان العامل قد طرح على المستخدم سؤالا، والسؤال الذي كان
- ما هو الموضوع الحالي للمحادثة، أو ما هو الموضوع الأخير
- تسجيل محفوظات الدردشة
حالة المستخدم جيدة لتعقب معلومات حول المستخدم، مثل:
- معلومات المستخدم غير الهامة، مثل الاسم والتفضيلات أو إعداد المنبه أو تفضيل التنبيه
- معلومات حول المحادثة الأخيرة التي أجروها مع الوكيل
- على سبيل المثال، قد يتعقب وكيل دعم المنتج المنتجات التي سأل عنها المستخدم.
تطبيق الوكيل
- سيتم تزويد معالجات التوجيه التي تضيفها بمثيل
TurnState. الوصول إلى المحادثة أو حالة المستخدم من هذا المثيل. - يتم تحميل الحالة وحفظها تلقائيا.