إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
يتضمن Copilot Studio مصادر المعرفة المضمنة مثل SharePoint وDataverse. تستخدم العديد من المؤسسات أيضا نقاط نهاية البحث الخاصة بها، مثل واجهات برمجة التطبيقات المخصصة أو أنظمة بحث المؤسسة الحالية أو البحث باستخدام الذكاء الاصطناعي في Azure، مع الحفاظ على التحكم الكامل في الاستعلام الذي يتم تنفيذه.
يدعم Copilot Studio هذا السيناريو مع مشغل OnKnowledgeRequested. يعمل أي موضوع يستخدم هذا المشغل كمصدر معرفة مخصص ويساهم في تقديم النتائج للإجابات التوليدية.
توضح هذه المقالة كيفية إنشاء مصادر المعرفة المخصصة ودمجها في Copilot Studio باستخدام مشغل OnKnowledgeRequested. يمكنك معرفة كيفية إعادة كتابة الاستعلامات Copilot Studio، وكيفية الاتصال بواجهة برمجة تطبيقات البحث الخاصة بك، وكيفية تنسيق النتائج للإجابات التوليدية، وأفضل الممارسات عند العمل مع المعرفة المخصصة.
مشغل OnKnowledgeRequested
استخدم المشغل OnKnowledgeRequested في هاتين الحالتين:
- عندما يحدد المنسق أن استرداد المعرفة مطلوب للإجابة على استعلام مستخدم.
- عندما يتم استدعاء عقدة إجابات إنشاءية بشكل صريح في المحادثة.
مهم
يمكنك فقط تكوين هذا المشغل في طريقة عرض التعليمات البرمجية باستخدام YAML. لا يوجد دعم للمصمم المرئي.
للمواضيع التي تستخدم OnKnowledgeRequested حق الوصول إلى متغيرات النظام غير المتوفرة في الموضوعات العادية:
-
System.SearchQuery: إصدار معرف بالسياق، تمت إعادة كتابته من استعلام المستخدم الذي تم تحسينه للبحث الدلالي. -
System.KeywordSearchQuery: استعلام تمت إعادة كتابته تم تحسينه لمحركات البحث المستندة إلى الكلمة الأساسية. -
System.SearchResults: حيث يخزن الموضوع القصاصات المعرفية المنسقة.
Copilot Studio يقوم بإعادة كتابة الاستعلامات بذكاء باستخدام محفوظات المحادثة، مما يضمن الحفاظ على سياق متعدد الأوجه.
إنشاء مصدر معارف مخصص
لإنشاء مصدر معارف مخصص، يمكنك إنشاء موضوع باستخدام مشغل OnKnowledgeRequested الذي يستدعي واجهة برمجة تطبيقات البحث ويحول النتائج إلى التنسيق الذي يتوقعه Copilot Studio.
الخطوة الأولى: إنشاء المشغل
إنشاء موضوع جديد في Copilot Studio، وقم بالتبديل إلى طريقة عرض code، وحدد مشغل OnKnowledgeRequested.
kind: AdaptiveDialog
beginDialog:
kind: OnKnowledgeRequested
id: main
intent: {}
actions:
# Actions go here
inputType: {}
outputType: {}
تخبر هذه البنية Copilot Studio أن هذا الموضوع مسؤول عن تلبية طلبات المعرفة.
الخطوة 2: إضافة طلب HTTP
أضف إجراء HTTP يستدعي نقطة نهاية البحث.
على سبيل المثال:
- kind: HttpRequestAction
id: searchRequest
url: = "https://search-api.contoso.com/search?q=" & System.KeywordSearchQuery
response: Topic.searchResults
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
قم بتسلسل System.KeywordSearchQuery إلى عنوان URL الأساسي لأن Copilot Studio يعيد كتابة استعلام المستخدم تلقائيا مع سياق المحادثة قبل إجراء طلب البحث. هذه الخطوة مهمة للحفاظ على السياق عبر المحادثات متعددة الأدوار.
تلميح
بدلا من طلب HTTP الأولي، يمكنك استخدام أي أسلوب يحصل على نتائج من نقطة نهاية بحث، بما في ذلك الموصلات المخصصة أو الموصلات المضمنة مثل البحث باستخدام الذكاء الاصطناعي في Azure أو تدفقات العامل.
مثال على إعادة كتابة الاستعلام
- استعلام المستخدم 1: "ما هي فترة استبقاء البيانات الرسمية لسجلات العملاء؟"
- استعلام المتابعة: "هل يتغير للمعلومات المالية؟"
- استعلام المتابعة: "هل توجد استثناءات؟"
يصبح الاستعلام المعاد كتابته: "استثناءات سياسة استبقاء بيانات العملاء والبيانات المالية، والإعفاءات التنظيمية، وإرشادات التعامل مع استثناءات السياسة والامتثال"
لاحظ أن الاستعلام المعاد كتابته:
- حل البيانات في "هناك" وفقًا لسياسة استبقاء البيانات
- سحب السياق للأمام من كلا المنعطفين السابقين: بيانات العميل + البيانات المالية
- إضافة لغة نهج المؤسسة: الاستثناءات والإعفاءات والتنظيمية والإرشادات
الخطوة 3: تحويل النتائج
يجب أن ينتج مصدر المعرفة المخصص النتائج بالتنسيق الذي يتوقعه Copilot Studio. يستخدم هذا التنسيق:
- المحتوى: قصاصة برمجية أو مقتطف.
- ContentLocation (اختياري): URL.
- العنوان (اختياري): عنوان النتيجة.
لتعريف بنية استجابة HTTP، قم بتكوين مخطط الاستجابة في واجهة المستخدم Copilot Studio.
- حدد من نموذج البيانات لنوع بيانات الاستجابة.
- حدد الحصول على المخطط من نموذج JSON.
- الصق عينة حمولة JSON لإنشاء المخطط تلقائيا.
تنشئ هذه العملية مخطط الاستجابة في ملف YAML.
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
بعد ذلك، قم بتحويل استجابة واجهة برمجة التطبيقات الخاصة بك لمطابقة هذا التنسيق. تعيين البيانات المحولة إلى System.SearchResults.
مثال على التحويل
kind: AdaptiveDialog
beginDialog:
kind: OnKnowledgeRequested
id: main
intent: {}
actions:
- kind: HttpRequestAction
id: searchRequest
url: ="https://search-api.contoso.com/search?q=" & System.KeywordSearchQuery
response: Topic.searchResults
responseSchema:
kind: Record
properties:
query: String
results:
type:
kind: Table
properties:
snippet: String
title: String
url: String
- kind: SetVariable
id: setSearchResults
variable: System.SearchResults
value: |-
=ForAll(Topic.searchResults.results,
{
Content: snippet,
ContentLocation: url,
Title: title
})
inputType: {}
outputType: {}
SetVariable ينفذ الإجراء كلتا العمليتين:
- تحول
ForAllالدالة كل نتيجة بحث، تعيينsnippetإلىContent،urlإلىContentLocation، وtitleإلىTitle. - يتم تعيين الجدول المحول إلى
System.SearchResults، وهو المتغير الذي يستخدمه Copilot Studio لإنشاء إجابات.
الاعتبارات
ضع هذه الاعتبارات الرئيسية في الاعتبار عند إنشاء مصادر معارف مخصصة.
حدود النتائج
يستخدم Copilot Studio ما يصل إلى 15 قصاصة برمجية من System.SearchResults لإنشاء استجابة. إذا كانت واجهة برمجة التطبيقات الخاصة بك ترجع المزيد من النتائج، ففكر في:
- تنفيذ تسجيل الصلة لإرجاع أفضل النتائج أولا.
- الحد من استجابة واجهة برمجة التطبيقات إلى 15 نتيجة.
- فرز النتائج حسب الصلة قبل التحويل.
مواضيع معرفية مخصصة متعددة
يمكنك إنشاء مواضيع متعددة باستخدام OnKnowledgeRequested، ويمكن لكل موضوع الاستعلام عن أنظمة خلفية مختلفة. يستدعي Copilot Studio جميعهم في وقت واحد عندما يحتاج إلى المعرفة. يسمح لك هذا الأسلوب بالاستعلام عن نقاط نهاية بحث مختلفة أو تنفيذ استراتيجيات احتياطية.
تحذير
ينطبق حد النتائج عبر جميع مواضيع المعرفة مجتمعة. إذا أرجع الموضوع A 10 نتائج وأرجع الموضوع B 8، يتم استخدام أفضل 15 نتيجة مجمعة فقط.
التوصيات
- فرز النتائج أو تسجيلها قبل إرجاعها.
- حافظ على تناسق مخططات الاستجابة.
- استخدم أسماء المواضيع والأوصاف الواضحة. هذه الممارسة مفيدة عندما تتطلب مجموعات النتائج الكبيرة تصفية الصلة.