الاتصال بمصادر المعرفة المخصصة

يتضمن 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 نتيجة مجمعة فقط.

التوصيات

  • فرز النتائج أو تسجيلها قبل إرجاعها.
  • حافظ على تناسق مخططات الاستجابة.
  • استخدم أسماء المواضيع والأوصاف الواضحة. هذه الممارسة مفيدة عندما تتطلب مجموعات النتائج الكبيرة تصفية الصلة.