Im Knowledge Catalog (ehemals Dataplex Universal Catalog) werden Metadaten für Daten-Assets in der gesamten Organisation verwaltet. Diese Metadaten liefern den Kontext, den Agents benötigen, um die Daten zu ermitteln, zu verstehen und abzufragen, die zur Beantwortung von Nutzerfragen erforderlich sind.
Knowledge Catalog verwaltet Ressourcen automatisch, verfolgt technische Schemas und generiert Beschreibungen und Datenprofile. Wertvoller Geschäftskontext ist jedoch oft an anderen Orten zu finden, z. B.:
- Interne Dokumente und Wikis
- Code-Repositories
- Kommunikationskanäle wie Google Chat und Slack
Sie können KI-Agents erstellen, um Kontext aus diesen Quellen zu extrahieren und Ihre Metadaten kontinuierlich zu erweitern. In dieser Anleitung wird Beispielcode aus dem Repository dataplex-labs verwendet, um zu zeigen, wie Sie einen Agenten erstellen, der Folgendes ausführt:
- Kontext extrahieren:Geschäftsbezogener Kontext wird aus Wissensdatenbanken, Dokumenten, Code oder Chats extrahiert, um technische Metadaten anzureichern.
- Dokumentation generieren:Generiert Dokumentation für BigQuery-Tabellen basierend auf extrahiertem Kontext und anderen Informationsquellen.
- Suche und Auffindbarkeit verbessern:Die generierte Dokumentation wird im Knowledge Catalog veröffentlicht, sodass Einträge leichter über die Suche gefunden und verstanden werden können.
Hinweis
Damit Sie den Knowledge Catalog-Anreicherungs-Agent ausführen können, müssen die folgenden Anforderungen erfüllt sein:
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Google Cloud Projekt iam.gserviceaccount.comzuzuweisen, um die Berechtigungen zu erhalten, die Sie zur Verwendung des Enrichment-Agents benötigen:
-
Beispielhafte BigQuery-Ressourcen verwalten:
BigQuery-Dateneditor (
roles/bigquery.dataEditor) -
So suchen Sie nach Katalogmetadaten:
Dataplex Viewer (
roles/dataplex.viewer) -
So verwalten Sie Katalogmetadaten:
Dataplex Catalog Editor (
roles/dataplex.catalogEditor) -
So greifen Sie auf Vertex AI-Funktionen (Gemini LLM-APIs) zu:
Vertex AI-Nutzer (
roles/aiplatform.user) -
So nutzen Sie Service-APIs:
Service Usage Consumer (
roles/serviceusage.serviceUsageConsumer)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Verwenden des Enrichment-Agents erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind für die Verwendung des Anreicherungs-Agents erforderlich:
-
bigquery.projects.get/createDatasets -
dataplex.projects.search -
dataplex.entryGroups.get/updateEntries -
aiplatform.endpoints.predict -
serviceusage.services.use
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
APIs aktivieren
Wenn Sie den Knowledge Catalog Enrichment Agent verwenden möchten, aktivieren Sie die folgenden APIs in Ihrem Projekt:
- BigQuery API
- Knowledge Catalog API
- Vertex AI API
- Service Usage API
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Weitere Informationen zum Zuweisen von Rollen
Abhängigkeiten installieren
Sie benötigen die folgenden Python-Pakete und Tools, um das Beispiel auszuführen:
google-adk(Agent Development Kit, ADK)google-cloud-dataplexKnowledge Catalog-Python-Clientgoogle-authverwaltet Standardanmeldedaten für Anwendungenmcp[cli]zum Erstellen eines Beispiel-MCP-Serversgcloudfür die Authentifizierung und Konfiguration. Informationen zum Installieren der Google Cloud CLI finden Sie in der Google Cloud SDK-Dokumentation.
Umgebung einrichten
gcloudkonfigurieren und anmelden:gcloud auth application-default login gcloud config set core/project PROJECT_IDErsetzen Sie Folgendes:
PROJECT_IDdurch die ID Ihres Projekts
Klonen Sie das Repository
dataplex-labsund wechseln Sie in das Beispielquellverzeichnis:git clone https://github.com/GoogleCloudPlatform/dataplex-labs.git cd dataplex-labs/knowledge_catalog_enrichment_agent/srcVerwenden Sie zum Installieren von Abhängigkeiten das bereitgestellte Skript, mit dem eine virtuelle Python-Umgebung und die erforderlichen Umgebungsvariablen eingerichtet werden:
source env.sh --installFühren Sie das
create_data.py-Skript aus, um in der RegionusIhres Cloud-Projekts ein BigQuery-Beispieldataset mit dem Namenkc_sample_analyticszu erstellen:python3 ../sample/data/create_data.pyDas Beispiel enthält auch eine Reihe von Dokumenten im Verzeichnis
sample/docs. Diese Dokumente bilden eine lokale Wissensdatenbank. Der Enrichment-Agent verwendet diese Wissensdatenbank, um Informationen zu extrahieren und Dokumentation zu erstellen.
Metadaten herunterladen
Führen Sie zuerst das Download-Tool aus, um einen Metadaten-Snapshot aus Knowledge Catalog für das BigQuery-Dataset und seine Tabellen zu extrahieren. Dadurch werden lokale Metadatenartefakte erstellt.
Mit dem Argument --dir wird das Verzeichnis angegeben, in das die Metadatendateien geschrieben werden.
python3 -m enrichment.download \
--dir ../sample/metadata.initial \
--dataset ${KC_ENRICH_SAMPLE_PROJECT}.kc_sample_analytics
Das Skript erstellt eine Markdown-Datei pro Tabelle im Verzeichnis sample/metadata. Dabei wird die folgende Namenskonvention verwendet: <project_id>.<dataset_id>.<table_id>.md.
Metadaten anreichern
Nachdem Sie die lokalen Markdown-Dateien erstellt haben, führen Sie den Anreicherungs-Agent aus. Der KI-Agent durchläuft jede Datei, sucht nach Informationen, die für die Tabellen relevant sind, und fasst die Ergebnisse zusammen. Außerdem fügt er Zitationen hinzu, um aktualisierte Markdown-Dateien zu generieren.
--dir: Gibt das Verzeichnis an, das die lokalen Metadatendateien enthält.--output-dir: Gibt das Zielverzeichnis für die aktualisierten Metadatendateien an.--config-dir: Gibt das Verzeichnis an, das Agentenanweisungen, MCP-Tools und Skills enthält.
python3 -m enrichment.enrich \
--dir ../sample/metadata.initial \
--output-dir ../sample/metadata.new \
--config-dir ../sample/config
Metadaten prüfen
Die angereicherten Metadatendateien enthalten die vom Agenten erstellte Dokumentation. Überprüfen und ändern Sie die Dateien nach Bedarf, bevor Sie die Änderungen im Knowledge Catalog veröffentlichen.
git diff --no-index ../sample/metadata.initial ../sample/metadata.new
Metadaten veröffentlichen
Führen Sie das Veröffentlichungstool aus, um die angereicherten Metadaten in Knowledge Catalog bereitzustellen.
python3 -m src.enrichment.publish --dir ../sample/metadata.new
An Ihre Daten anpassen
Im vorherigen Schritt haben Sie das Argument --config-dir verwendet, um den Agenten auf das Verzeichnis ../sample/config für seine Konfiguration zu verweisen. So weiß der Agent, wo er Informationen findet und wie er mit verschiedenen Quellen interagieren soll.
Das Beispiel enthält eine Standardkonfiguration, die den Agent anweist, einen lokalen MCP-Server zu verwenden, um auf Dateien in der lokalen Wissensdatenbank (sample/docs) zuzugreifen. Wenn Sie diesen Workflow in Ihrer Umgebung anwenden möchten, können Sie diese Konfigurationsdateien anpassen, um den Agent mit Ihren internen Wikis, Code-Repositories, Google Drive oder anderen Systemen zu verbinden.
Das Verzeichnis sample/config/ enthält die folgenden Dateien:
sample/config/
├─ instructions.md
├─ mcp.json
└─ skills/
└─ kb-search/
└─ SKILL.md
instructions.md: Erweitert die grundlegenden Anweisungen des Agenten um Details, die für Ihre Organisation relevant sind, z. B. die Anweisung, eine bestimmte Wissensdatenbank zu durchsuchen.mcp.json: Konfiguriert MCP-Server, die der Agent verwenden kann, um auf Tools für Ihre Informationsquellen zuzugreifen, z. B. ein Tool zum Lesen von Dateien aus einem lokalen Verzeichnis.SKILL.md: Beschreibt, wie der Agent bestimmte Tools verwenden soll, um mit einer Informationsquelle zu interagieren, z. B.list_contents,read_fileundsearch_content, um Informationen in lokalen Dokumenten zu finden.
Knowledge Catalog-Beispielcode ansehen
Die Tools download und publish im Bereich „Anreicherungsablauf“ verwenden Knowledge Catalog APIs zum Lesen und Schreiben von Metadaten.
In diesem Abschnitt wird beschrieben, wie diese APIs funktionieren, damit Sie das Beispiel für Ihre eigenen Integrationen anpassen können.
Metadaten suchen und abrufen
Im Beispiel werden die folgenden APIs verwendet, um nach Metadaten zu suchen und sie abzurufen:
SearchEntrieszum Abrufen der Metadaten für Einträge und Standortmetadaten für das Dataset.ListEntrieszum Auflisten von BigQuery-Tabellen in einer Catalog EntryGroup.GetEntry, um die spezifischen Metadaten für jede BigQuery-Tabelle abzurufen.
Im folgenden Code wird gezeigt, wie Sie nach einem Dataset suchen, um seine Eintragsgruppe zu finden, alle enthaltenen Tabellen aufzulisten und ihre spezifischen Metadaten abzurufen:
import google.cloud.dataplex_v1 as dataplex
BIGQUERY_TABLE_TYPE = "projects/dataplex-types/locations/global/entryTypes/bigquery-table"
OVERVIEW_ASPECT_TYPE = "projects/dataplex-types/locations/global/aspectTypes/overview"
catalog = dataplex.CatalogServiceClient()
dataset_reference = '...' # project_id.dataset_id
project_id, dataset_id = dataset_reference.split('.')
# 1. Search for dataset to determine its location
search_response = catalog.search_entries(
request=dataplex.SearchEntriesRequest(
name=f"projects/{project_id}/locations/global",
query=f"type=dataset name={dataset_id}",
page_size=1
)
)
dataset_entry = search_response.results[0].dataplex_entry
location_id = dataset_entry.entry_source.location
# 2. List resources in the underlying group
entry_group_name = f"projects/{project_id}/locations/{location_id}/entryGroups/@bigquery"
entry_filter = f'parent_entry="{dataset_entry.name}"'
list_response = catalog.list_entries(
request=dataplex.ListEntriesRequest(
parent=entry_group_name,
entry_filter=entry_filter,
)
)
# 3. Retrieve metadata for each table in the list
for table_entry in list_response.entries:
entry = catalog.get_entry(
request=dataplex.GetEntryRequest(
name=table_entry.name,
view="CUSTOM",
aspect_types=[OVERVIEW_ASPECT_TYPE]
)
)
Tabellenmetadaten aktualisieren
Der folgende Code zeigt, wie die generierte Dokumentation für eine Tabelle im Aspekt „Übersicht“ veröffentlicht und die zugehörigen Metadaten aktualisiert werden:
import google.cloud.dataplex_v1 as dataplex
import google.protobuf.field_mask_pb2 as field_mask_pb2
import google.protobuf.json_format as jsonpb
OVERVIEW_ASPECT_TYPE = "projects/dataplex-types/locations/global/aspectTypes/overview"
OVERVIEW_ASPECT_KEY = "dataplex-types.global.overview"
catalog = dataplex.CatalogServiceClient()
table_reference = "..." # project_id.dataset_id.table_id
project_id, dataset_id, table_id = table_reference.split('.')
entry_data = {
"name": f"bigquery.googleapis.com/projects/{project_id}/datasets/{dataset_id}/tables/{table_id}",
"aspects": {
OVERVIEW_ASPECT_KEY: {
"aspectType": OVERVIEW_ASPECT_TYPE,
"data": {
"content": "...", # content parsed from local markdown file
"contentType": "MARKDOWN"
}
}
}
}
entry = dataplex.Entry()
jsonpb.ParseDict(entry_data, entry._pb)
catalog.update_entry(
request=dataplex.UpdateEntryRequest(
entry=entry,
update_mask=field_mask_pb2.FieldMask(paths=["aspects"]),
aspect_keys=[OVERVIEW_ASPECT_KEY],
)
)
Nächste Schritte
- Weitere Informationen zum Arbeiten mit Metadaten
- Verwenden Sie die Gemini CLI, um Ihren Datenkontext zu testen.
- Weitere Informationen zum Verwalten von Aspekten und Anreichern von Metadaten
- Weitere Klassen und Methoden in der Knowledge Catalog-Clientbibliothek für Python
- Weitere Anwendungsfälle für Knowledge Catalog