סוכן הגילוי של Knowledge Catalog הוא עוזר מבוסס-AI שמשפר את הרלוונטיות של תוצאות החיפוש לשאילתות מורכבות בשפה טבעית, על סמך יכולות החיפוש של Knowledge Catalog. הוא מספק תוצאות מדויקות יותר מ-Knowledge Catalog Search API הרגיל, כי הוא משפר את ההבנה של השאילתות ואת הניסוח שלהן. היכולת הזו חשובה במיוחד כשמדובר בשאילתות מורכבות או ארוכות.
תרחישים לדוגמה
סוכן הגילוי מספק ממשק צ'אט עם AI עשיר בתרחישים כמו:
- כוונות ומגבלות מורכבות או משולבות: טיפול בבקשות חיפוש עם כמה קריטריונים, כמו חיפוש מערכי נתונים ב-
us-central1אבל לא כולל משאבים ב-BigQuery. - חיפוש שמתמקד בעסק: גילוי נכסי נתונים על סמך כוונת המשתמש וההקשר העסקי, ולא על סמך התאמה למונחים טכניים מדויקים.
- חיפוש רב-שלבי: צמצום התוצאות באמצעות שיחה כדי לדייק את החיפוש.
הסוכן לאיתור מידע מבוסס על חיפוש סמנטי בקטלוג הידע, ומספק לכם חיפוש היברידי מוכן לשימוש. אתם יכולים להמשיך להשתמש בחיפוש הסמנטי של Knowledge Catalog ישירות כשאתם צריכים לעבד חיפושים עם כוונת רכישה גבוהה (כשאתם יודעים מהו המשאב או העמודה הספציפיים), כשאתם צריכים לעמוד בדרישות של זמן אחזור נמוך או כשאתם צריכים לבצע חיפוש היברידי ללא הגדרה.
איך זה עובד
סוכן הגילוי מבצע את השלבים הבאים כדי להגיב לשאילתת חיפוש:
- מנתח את הקלט כדי להבין את הכוונה של השאילתה, יוצר כמה וריאציות של חיפוש וממפה מונחים למסנני מטא-נתונים.
- חיפוש משאבים באמצעות החיפוש הסמנטי של Knowledge Catalog.
- דירוג התוצאות הממוזגות לפי רלוונטיות.
בתרשים הבא מפורט התהליך:
הסוכן מסתמך על 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 (
roles/dataplex.viewer) - משתמש Vertex AI (
roles/aiplatform.user) - צרכן שימוש בשירות (
roles/serviceusage.serviceUsageConsumer)
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקידים המוגדרים מראש מכילים את ההרשאות שנדרשות לשימוש בסוכן הגילוי. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי להשתמש בסוכן הגילוי, נדרשות ההרשאות הבאות:
-
dataplex.projects.search -
aiplatform.endpoints.predict -
serviceusage.services.use
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הפעלת ממשקי ה-API
כדי להשתמש בסוכן הגילוי של Knowledge Catalog, צריך להפעיל את ממשקי ה-API הבאים בפרויקט: Knowledge Catalog API, Vertex AI API ו-Service Usage API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים
הגדרת הסביבה
כדי להגדיר את סביבת הפיתוח של סוכן ה-Discovery:
משכפלים את מאגר
dataplex-labs.git clone https://github.com/GoogleCloudPlatform/dataplex-labs.gitעוברים לספריית הסוכן:
cd dataplex-labs/knowledge_catalog_discovery_agentיוצרים ומפעילים סביבה וירטואלית של Python, ואז מתקינים את התלות שמופיעה בקובץ
requirements.txt:-
google-adk(ערכה לפיתוח סוכנים) -
google-cloud-dataplex(Knowledge Catalog Python Client) google-api-core
python3 -m venv /tmp/kcsearch source /tmp/kcsearch/bin/activate pip3 install -r requirements.txt-
מגדירים את משתני הסביבה באמצעות הפקודה הבאה:
export GOOGLE_CLOUD_PROJECT=PROJECT_ID export GOOGLE_GENAI_USE_VERTEXAI=Trueמחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_IDבמזהה הפרויקט
-
הפעלת סוכן הגילוי כסוכן הבסיסי
כדי להריץ את סוכן הגילוי ישירות כסוכן הבסיס:
- בקובץ
agent.pyשנמצא בתיקייהknowledge_catalog_discovery_agentמשנים את השם של המשתנהdiscovery_agentל-root_agent. מריצים את הסוכן באמצעות הפקודה
adk run:adk run path/to/agent/parent/folderמחליפים את מה שכתוב בשדות הבאים:
-
path/to/agent/parent/folderעם ספריית ההורה שמכילה את התיקייה עם הסוכן. לדוגמה, אם הסוכן נמצא ב-knowledge_catalog_discovery_agent/, מריצים אתadk runמהספרייהagents/.
-
הפעלת סוכן הגילוי ככלי של סוכן
כדי לשלב את סוכן הגילוי בסוכן מותאם אישית גדול יותר, כמו my_custom_agent, צריך לבצע את הפעולות הבאות:
מגדירים את מבנה הפרויקט כך שיכיל את מודול הסוכן לגילוי:
my_custom_agent/ ├── agent.py └── knowledge_catalog_discovery_agent/ ├── SKILL.md ├── agent.py ├── tools.py └── utils.pyבקובץ
agent.pyשל הסוכן המותאם אישית, מייבאים את סוכן הגילוי ומשתמשים בו ככלי של הסוכן. דוגמה:root_agent = llm_agent.Agent( model=google_llm.Gemini(model=GEMINI_MODEL), name="my_custom_agent", instruction=( "You are a Custom Agent. Your goal is to help users understand" " their data landscape, evaluate data assets, and derive insights" " from available resources. **IMPORTANT**: You should use the" " `knowledge_catalog_discovery_agent` to search for and discover" " data assets. For best results, pass in the Natural Language user'" " query as is to the `knowledge_catalog_discovery_agent`. Once assets" " are found, you should analyze their metadata, compare them, and" " provide recommendations or summaries to the user to help them make" " decisions. Focus on general metadata summary and comparison." ), tools=[ agent_tool.AgentTool(discovery_agent), ], )מריצים את הסוכן באמצעות הפקודה
adk run:adk run path/to/agent/parent/folderמחליפים את מה שכתוב בשדות הבאים:
-
path/to/agent/parent/folderעם ספריית האם שמכילה את התיקייהmy_custom_agent/. לדוגמה, אם הסוכן נמצא ב-agents/my_custom_agent/, מריצים את הפקודהadk runמהספרייהagents/.
-
המאמרים הבאים
- הסבר על תחביר החיפוש ב-Knowledge Catalog
- מידע נוסף על ערכה לפיתוח סוכנים (ADK)
- תרחישי שימוש נוספים ב-Knowledge Catalog