النقاط الرئيسية
- واجهة برمجة التطبيقات الجديدة للاستجابات لقنوات Slack تسمح ببساطة بناء حالات التحميل والإيصالات لـ الوكلاء العميق المُدار باستخدام تحليلات بسيطة أو نماذج اتخاذ القرارات، مثل Jev.
- يساعد هذا المنتج الجديد لـ SDK في بناء واجهات سهلة الاستخدام وحالات التحميل لل مستخدمين الذين يتفاعلون مع الوكلاء.
- انظر كيف نستخدم هذا التفكير التصميمي مع الوكلاء الداخليين لدينا والمستخدمين غير المطورين.
تُعَدُّ حالات التحميل من أهم جوانب التصميم المهمل (والمنسية) عند بناء تجارب مستخدمي الوكيلات الفعالة.
من تجربتنا، يثق المستخدمون بالوكلاء عندما يكون لديهم معرفة حقيقية بما يقومه الوكلاء فعليًا. يظهر هذا السلوك بشكل أكبر في شكل واجهات المستخدم ذات الطابع التشبيهي، وهو مفهوم تصميمي حيث تحاكي الأجسام الرقمية أشكالًا حقيقية. تطبيق Domino’s Pizza Tracker هو أحد الأمثلة البارزة على التصميم التشبيهي الذي يمكن تطبيقه على الوكلاء. اليوم، حالات التحميل الرقمية (حتى تلك التي قد تخدعك) ضرورية لجعل تجربة المستخدم مفهومة وفعالة. برنامج SDK الجديد للاستجابات الخاصة بالوكلاء العميقة المُدار هو أداة رائعة لبناء واجهات ساحرة وحالات تحميل فعالة للمستخدمين الذين يتفاعلون مع الوكلاء.
خاصية ردود الفعل الجديدة في الوكالات العميقة المُدارة
في الإصدار 0.9,تحتوي الـ Managed Deep Agents على واجهة برمجة تطبيقية جديدة لإدارة ردود الأفعال للعوامل الموزعة، بالإضافة إلى نظام لتخصيص استجابات emoji بشكل ديناميكي باستخدام الأداة المفضلة، مثل نماذج القرارات أو نماذج الحدود، أو بيانات if التقليدية.
الخصائص new reactions لـ قنوات Slack تقبل إما سلسلة نصية تمثل رمز تعبيري أو دالة يمكن استدعاؤها التي تُرجع قيمة واحدة:
from managed_deepagents import channels
async def choose_emoji(context: dict) -> str:
return "bug" if "broken" in context["text"].lower() else "eyes"
channel = channels.slack(name="Support Bot", reactions=choose_emoji)في هذا المثال، نختار بشكل افتراضي 👀، لكن التحليل الثابت سيحدد 🐛 إذا كان الرسالة تحتوي على كلمة “مكسور”.
نريد أن يتمكن مطوري LangChain من تبني الأنماط الشائعة لإسعاد المستخدمين في حالات التحميل وانتظار النتائج، حيث يمكن تنفيذ العديد من مهام الوكيل لفترات طويلة. يحتاج المستخدمون النهائيون الذين يتفاعلون مع الوكيل إلى تقدير بأن المهمة قد تم استلامها.
على سبيل المثال، قمنا مؤخرًا بتأسيس وكيل تسويق داخلي لإنشاء محتوى فيديو. أثناء انتظار رد الوكيل، من المفيد أن يفهم المستخدمون تقدم الوكيل.
إليك مثال على نوع المحتوى الفيديوي والرسوم المتحركة الذي يمكن وكيلنا إنشاؤه:
https://x.com/ndrezn/status/2104962135730061688?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E2104962135730061688%7Ctwgr%5E3fb82affc6e194f89989fadec1e2161b853b60b3%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fapp.notion.com%2Fp%2FBuild-great-out-of-the-box-user-experiences-with-Managed-Deepagents-3ed808527b178002bda9fc42f4db7213غالبًا لا يكفي الرد على الرسالة بإيموجي واحد فقط. نحن أيضًا بحاجة إلى وكيلات تخبر المستخدم كيف فهمت المهمة، ويمكن أن يكون الرد السياقي جزءًا رئيسيًا في تصميم الوكيل الخاص بك.
لنواصل تطبيق مثال التفاعل الأساسي. يمكننا أن نجد نموذج القرار، مثل جيفاختر من مجموعة المصطلحات الخاصة بالإيموجي بناءً على سياق الإدخال. يدعم Jev ما يصل إلى 255 خيارًا، لكن يمكنك إنشاء مصفوفة اتخاذ القرارات باستخدام أسئلة متعددة (على سبيل المثال، من خلال تجميع الإيموجي في فئات وطلب من Jev اختيار فئة ثم إيموجي) لاستجواب المزيد من الإيموجي:
from functools import lru_cache
from langchain_typesafe import Choice, TypeSafeClassifier
from managed_deepagents import channels
# The description is what the model matches on, so describe the situation
# rather than the picture. Keep an option for anything unremarkable.
VOCABULARY = Choice(
instructions="Which emoji best acknowledges this message?",
criteria={
"bug": "A defect or incorrect behaviour.",
"rotating_light": "A declared incident or outage.",
"mag": "A code review, pull request, or diff to look at.",
"hourglass": "Waiting on someone or something else; blocked.",
"speech_balloon": "A question, or a request to explain something.",
"wave": "A greeting or hello.",
"eyes": "Anything that does not clearly fit another option.",
},
)
@lru_cache(maxsize=1)
def classifier() -> TypeSafeClassifier:
return TypeSafeClassifier(model="typesafe/jev-latest")
async def choose_emoji(context: dict) -> str:
answer = await classifier().ainvoke(
{"state": context["text"][:2000], "questions": {"emoji": VOCABULARY}}
)
emoji = answer.choices["emoji"]
# Below this the model has no real view, so prefer a generic reaction.
return emoji.choice if emoji.confidence >= 0.25 else "eyes"
channel = channels.slack(name="Support Bot", reactions=choose_emoji)في هذا المثال، نستخدم الكلاسيكيراتور TypeSafe Classifier الجديد الذي هو جزء من أداة LangChain. إنه طريقة رائعة للتفاعل مع نماذج القرارات المتوافقة مع TypeSafe، مثل Jev، ولكن من الممكن أيضًا استخدام نماذج قرار أخرى مع نفس نقاط النهاية، مثل SemIf، التي يتم تخزينها على LangSmith LLM Gateway. أو يمكن تبديل النماذج بين بعضها البعض لاختبار أفضل الخيارات.
يمكن أن يعني الرمز التعبيري نفسه معانٍ مختلفة حسب ما يفعله العارض. على سبيل المثال، 🔥 من عارض الخدمة المتاحة قد يعني أن الإنتاج في حالة حرارة ويجب الاستيقاظ. 🔥 من عارض النمو قد يعني أن الحملة ناجحة ويمكن العودة إلى النوم. لهذا السبب، تقوم وصفات criteria بعمل أكثر من أسماء الرموز التعبيرية. يتطابق النموذج مع وصفك للوضع، لذا فإن نفس الرمز يحمل أي معنى يعطيه محيط العمل الخاص بك بالفعل.
يُظهر المثال أعلاه أيضًا كيف يمكن الاستفادة من عتبات الثقة. إذا كان نموذج القرار لديه أقل من 25% من الثقة في الاختيار الرئيسي، فسنعود إلى الوضع غير محدد. كما يمكنك العودة إلى عدم أي رد إذا لم تكن أي من الرموز التعبيرية المقدمة في القاموس مناسبة بشكل صحيح.
يمكن القول إن هناك قلة أخلاق في هذا التصميم: لأن نموذجًا مختلفًا يقوم بتقييم رد الفعل من خلال النموذج الذي يُجيب، فقد تكون هناك اختلافات خفية في التفسير. لذلك، من المهم كتابة وصفات فعالة حول كيفية استخدام كل رد فعل. قد يعتمد نموذج التقييم بشكل مفرط على بعض ردود الفعل إذا كان وصفها عامًا جدًا، حتى لو أن رد فعل آخر لن يفترض بشكل مفرط من قبل العين غير المدربة.
يمكنك إضافة تعبيرات رسومية مخصصة إلى مفرداتك من خلال كود قصير في سلاك. بالنسبة لجهاز المحتوى الداخلي لنا، قام فريق الذكاء الاصطناعي المطبق بإنشاء مجموعة من التعابير الرسومية المخصصة التي يمكن للجهاز استخدامها في الردود. أنا معجب بـ lc-no-em-dash، الذي يختاره الجهاز عند توجيهه لكتابة المحتوى:

جرب طرقًا مختلفة. تعديل الوصفات المختلفة للأيقونات التعبيرية (أو تنظيم القاموس الخاص بك بشكل كامل) سيؤدي إلى نتائج مختلفة. بالمثل، يمكنك توسيع أو تقلص مجموعة الأيقونات التعبيرية التي يمتلكها العميل.
تم تصميم الوكالات العميقة المُدارة لتعظيم جميع واجهات التصميم الدقيقة التي نعتبرها ضرورية لاعتماد الوكالات باستخدام واجهات برمجة تطبيقات بسيطة وواضحة. يمكنك البدء بإضافة ردود فعل للوكالات العميقة المُدارة الموجودة لديك باستخدام وثائقنا. أو، إذا لم تقم ببناء وكالة عميقة مُدارة من قبل، فإن أفضل مكان للبدء هو بدء التشغيل السريع الخاص بنا.
