יצירת סוכן לחיפוש נתונים

סוכן הגילוי של Knowledge Catalog הוא עוזר מבוסס-AI שמשפר את הרלוונטיות של תוצאות החיפוש לשאילתות מורכבות בשפה טבעית, על סמך יכולות החיפוש של Knowledge Catalog. הוא מספק תוצאות מדויקות יותר מ-Knowledge Catalog Search API הרגיל, כי הוא מבצע אופטימיזציה של הבנת השאילתות וניסוחן. היכולת הזו חשובה במיוחד כשמדובר בשאילתות מורכבות או ארוכות.

תרחישים לדוגמה

סוכן הגילוי מספק ממשק צ'אט עם AI עשיר בתרחישים כמו:

  • כוונות ומגבלות מורכבות או משולבות: טיפול בבקשות חיפוש עם כמה קריטריונים, כמו חיפוש מערכי נתונים ב-us-central1 אבל לא כולל משאבים ב-BigQuery.
  • חיפוש שמתמקד בעסק: גילוי נכסי נתונים על סמך כוונת המשתמש וההקשר העסקי, ולא על סמך התאמה למונחים טכניים מדויקים.
  • חיפוש רב-שלבי: צמצום התוצאות על ידי שיפור החיפוש באמצעות דיאלוג שיחתי.

הסוכן לאיתור מידע מבוסס על חיפוש סמנטי בקטלוג הידע, ומספק לכם חיפוש היברידי מוכן לשימוש. אתם יכולים להמשיך להשתמש בחיפוש הסמנטי של Knowledge Catalog ישירות כשאתם צריכים לעבד חיפושים עם כוונת רכישה גבוהה (כשאתם יודעים מהו המשאב או העמודה הספציפיים), כשאתם צריכים חיפוש היברידי עם דרישות של זמן אחזור נמוך או כשאתם צריכים חיפוש היברידי ללא הגדרה.

איך זה עובד

סוכן הגילוי מבצע את השלבים הבאים כדי להגיב לשאילתת חיפוש:

  1. מנתח את הקלט כדי להבין את הכוונה של השאילתה, יוצר כמה וריאציות של חיפוש וממפה מונחים למסנני מטא-נתונים.
  2. חיפוש משאבים באמצעות החיפוש הסמנטי של Knowledge Catalog.
  3. דירוג התוצאות הממוזגות לפי רלוונטיות.

בתרשים הבא מפורט התהליך:

תהליך של סוכן Discovery לבקשות חיפוש.
נתיב העיבוד של בקשות חיפוש בסוכן הגילוי.

הסוכן מסתמך על Knowledge Catalog Search API כדי לאחזרGoogle Cloud משאבים רלוונטיים. קטע הקוד הבא מראה איך הסוכן קורא לחיפוש סמנטי ב-Knowledge Catalog:


      # Configure the request parameters for the
      # call to Knowledge Catalog Semantic Search API.
      endpoint = "dataplex.googleapis.com"

      client = dataplex_v1.CatalogServiceClient(
          client_options={"api_endpoint": endpoint}
      )

      location = "global"
      consumer_project_id = "my-gcp-project"
      parent_name = f"projects/{consumer_project_id}/locations/{location}"

      # Call Knowledge Catalog Semantic Search API.
      response = client.search_entries(
          request={
              "name": parent_name,
              "query": query,
              "page_size": 50,
              "semantic_search": True,
          }
      )

      # Call Knowledge Catalog LookupContext for each search result
      # to retrieve rich, LLM-ready metadata.
      entries = []
      for result in response.results:
          entry_name = result.dataplex_entry.name
          
          # Prepare the LookupContext request for the specific resource
          lookup_request = {
              "name": parent_name,
              "resources": [entry_name]
          }
          
          # Call the LookupContext API
          lookup_response = client.lookup_context(request=lookup_request)
          
          # Extract the rich context YAML to share with the agent
          entries.append({
              "entry_name": entry_name,
              "context": lookup_response.context
          })

      return {"results": entries}

לפני שמתחילים

כדי להריץ את סוכן הגילוי של Knowledge Catalog, צריך לוודא שאתם עומדים בדרישות הבאות:

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לשימוש בסוכן הגילוי, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים ב Google Cloud פרויקט iam.gserviceaccount.com:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

ההרשאות הנדרשות

כדי להשתמש בסוכן הגילוי, נדרשות ההרשאות הבאות:

  • dataplex.projects.search
  • aiplatform.endpoints.predict
  • serviceusage.services.use

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

הפעלת ממשקי ה-API

כדי להשתמש בסוכן הגילוי של Knowledge Catalog, צריך להפעיל את ממשקי ה-API הבאים בפרויקט: Knowledge Catalog API,‏ Vertex AI API ו-Service Usage API.

תפקידים שנדרשים להפעלת ממשקי API

כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

הפעלת ממשקי ה-API

הגדרת הסביבה

כדי להגדיר את סביבת הפיתוח של סוכן ה-Discovery:

  1. משכפלים את מאגר dataplex-labs.

    git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git
    
  2. עוברים לספריית הסוכנים:

    cd dataplex-labs/knowledge_catalog_discovery_agent
    
  3. יוצרים ומפעילים סביבה וירטואלית של Python, ואז מתקינים את התלות שמופיעה בקובץ