התחבר למקורות ידע מותאמים אישית

Copilot Studio כולל מקורות ידע מוכללים כגון SharePoint ו- Dataverse. ארגונים רבים משתמשים גם בנקודות קצה של חיפוש משלהם, כגון ממשקי API מותאמים אישית, מערכות חיפוש ארגוניות קיימות או Azure AI Search, תוך שמירה על שליטה מלאה בשאילתה שמתבצעת.

Copilot Studio תומך בתרחיש זה באמצעות הגורם המפעיל של OnKnowledgeRequested. כל נושא שמשתמש במפעיל זה פועל כמקור ידע מותאם אישית ותורם לתוצאות עבור תשובות יצירתיות.

מאמר זה מסביר כיצד לבנות ולשלב מקורות ידע מותאמים אישית ב- Copilot Studio באמצעות OnKnowledgeRequested Trigger. תלמד כיצד Copilot Studio לשכתב שאילתות, כיצד להתחבר ל- API של חיפוש משלך, כיצד לעצב תוצאות עבור תשובות generative ושיטות עבודה מומלצות בעת עבודה עם ידע מותאם אישית.

הגורם המפעיל OnKnowledgeRequested

השתמש במפעיל OnKnowledgeRequested בשני מצבים אלה:

  • כאשר orchestrator קובע כי יש צורך באחזור ידע כדי לענות על שאילתת משתמש.
  • כאשר צומת תשובות Generative מופעל במפורש בשיחה.

חשוב

באפשרותך להגדיר גורם מפעיל זה בתצוגת קוד רק באמצעות YAML. אין תמיכה במעצב החזותי.

לנושאים המשתמשים OnKnowledgeRequested יש גישה למשתנה מערכת שאינם זמינים בנושאים רגילים:

  • System.SearchQuery: גירסה המותאמת להקשר, הכתובה מחדש של השאילתה של המשתמש, הממוטבת לחיפוש סמנטי.
  • System.KeywordSearchQuery: שאילתה כתובה מחדש הממוטבת עבור מנועי חיפוש מבוססי מילות מפתח.
  • System.SearchResults: כאשר הנושא מאחסן מקטעי ידע מעוצבים.

Copilot Studio משכתב שאילתות בצורה חכמה על ידי שימוש בהיסטוריית שיחות, מה שמבטיח שמירה על הקשר רב-שלבי.

בניית מקור ידע מותאם אישית

כדי לבנות מקור ידע מותאם אישית, עליך ליצור נושא עם הגורם המפעיל OnKnowledgeRequested שקורא ל-API של החיפוש שלך וממיר את התוצאות לפורמט המצופה על ידי Copilot Studio.

שלב 1: יצירת הגורם המפעיל

צור נושא חדש ב- Copilot Studio, עבור אל קוד תצוגה והגדיר את הגורם המפעיל 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 AI Search, או זרימות סוכן.

דוגמה לשכתוב שאילתה

  • שאילתת משתמש 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

לאחר מכן, שנה את תגובת ה- API כך שיתאים לתבנית זו. הקצה את הנתונים שהשתנו ל- 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 ממירה כל תוצאת חיפוש, מיפוי snippetContentל- , url ל ContentLocation- ול title - Title.
  • הטבלה שהשתנו מוקצית ל- System.SearchResults, שהוא המשתנה Copilot Studio ליצירת תשובות.

שיקולים

זכור שיקולים חשובים אלה בעת בניית מקורות ידע מותאמים אישית.

מגבלות תוצאות

Copilot Studio משתמשת ב- 15 מקטעים לכל System.SearchResults כדי ליצור תגובה. אם ה- API שלך מחזיר תוצאות נוספות, שקול לבצע את הפעולות הבאות:

  • מיישם ניקוד רלוונטיות כדי להחזיר תחילה את התוצאות הטובות ביותר.
  • הגבלת תגובת ה- API ל- 15 תוצאות.
  • מיון תוצאות לפי רלוונטיות לפני ההמרה.

נושאי ידע מותאמים אישית מרובים

באפשרותך ליצור נושאים מרובים באמצעות , וכל נושא OnKnowledgeRequestedיכול לבצע שאילתה במערכות עורפיות שונות. Copilot Studio מפעיל את כולם בו-זמנית כשהוא זקוק לידע. גישה זו מאפשרת לך לבצע שאילתות בנקודות קצה שונות של חיפוש או ליישם אסטרטגיות חזרה.

אזהרה

מגבלת התוצאות חלה על כל נושאי הידע המשולבים. אם נושא א' מחזיר 10 תוצאות ונושא ב' מחזיר 8, נעשה שימוש רק ב- 15 התוצאות המשולבות המובילות.

המלצות

  • מיינו או דרגו את התוצאות לפני החזרתן.
  • שמור על עקביות סכימות תגובה.
  • השתמש בשמות נושא ותיאורים ברורים. תרגול זה שימושי כאשר ערכות תוצאות גדולות דורשות סינון רלוונטיות.