Auf dieser Seite wird beschrieben, wie Sie Ihren RAG Engine-Corpus mit Ihrer Weaviate-Datenbank verbinden.
Sie können auch dieses Notebook RAG Engine with Weaviate verwenden.
Sie können Ihre Weaviate-Datenbankinstanz, eine Open-Source-Datenbank, mit der RAG Engine verwenden, um eine Vektor-basierte Ähnlichkeitssuche zu indexieren und durchzuführen. Bei einer Ähnlichkeitssuche werden Textabschnitte gefunden, die dem gesuchten Text ähneln. Dazu ist ein Einbettungsmodell erforderlich. Das Einbettungsmodell generiert Vektordaten für jeden verglichenen Textabschnitt. Die Ähnlichkeitssuche wird verwendet, um semantische Kontexte für die Fundierung abzurufen und so die genauesten Inhalte aus Ihrem LLM zurückzugeben.
Mit RAG Engine können Sie Ihre vollständig verwaltete Vektordatenbankinstanz weiterhin verwenden. Sie sind für die Bereitstellung verantwortlich. RAG Engine verwendet die Vektordatenbank für die Speicherung, Indexverwaltung und Suche.
Hinweise
Beachten Sie die folgenden Schritte, bevor Sie die Weaviate-Datenbank verwenden:
- Sie müssen Ihre Weaviate-Datenbankinstanz und ‑Sammlung erstellen, konfigurieren und bereitstellen. Folgen Sie der Anleitung unter Weaviate-Sammlung erstellen, um eine Sammlung basierend auf Ihrem Schema einzurichten.
- Sie müssen einen Weaviate-API-Schlüssel angeben, damit RAG Engine mit der Weaviate-Datenbank interagieren kann. Die RAG Engine unterstützt die API-Schlüssel-basierten
AuthN- undAuthZ-APIs, die eine Verbindung zu Ihrer Weaviate-Datenbank herstellen und eine HTTPS-Verbindung unterstützen. - RAG Engine speichert und verwaltet Ihren Weaviate-API-Schlüssel nicht. Stattdessen müssen Sie so vorgehen:
- Speichern Sie den Schlüssel im Google Cloud Secret Manager.
- Erteilen Sie dem Dienstkonto Ihres Projekts die Berechtigung für den Zugriff auf Ihr Secret.
- Gewähren Sie RAG Engine Zugriff auf den Ressourcennamen Ihres Secrets.
- Wenn Sie mit Ihrer Weaviate-Datenbank interagieren, greift die RAG Engine mit Ihrem Dienstkonto auf Ihre geheime Ressource zu.
- RAG Engine-Korpus und Weaviate-Sammlung haben eine 1:1-Zuordnung. RAG-Dateien werden in einer Weaviate-Datenbank-Sammlung gespeichert. Wenn ein Aufruf an die
CreateRagCorpusAPI oder dieUpdateRagCorpusAPI erfolgt, wird der RAG-Korpus mit der Datenbank-Collection verknüpft. - Zusätzlich zu semantischen Suchen auf Grundlage von dichten Einbettungen wird die Hybridsuche mit RAG Engine über eine Weaviate-Datenbank unterstützt. Sie können auch die Gewichtung zwischen der Ähnlichkeit von dichten und dünnbesetzten Vektoren in einer Hybridsuche anpassen.
Weaviate-Datenbank bereitstellen
Bevor Sie die Weaviate-Datenbank mit RAG Engine verwenden können, müssen Sie Folgendes tun:
- Konfigurieren und stellen Sie Ihre Weaviate-Datenbankinstanz bereit.
- Bereiten Sie den HTTPS-Endpunkt vor.
- Erstellen Sie Ihre Weaviate-Sammlung.
- Stellen Sie Weaviate mit Ihrem API-Schlüssel über
AuthNundAuthZbereit. - Stellen Sie Ihr RAG Engine-Dienstkonto bereit.
Weaviate-Datenbankinstanz konfigurieren und bereitstellen
Sie müssen der offiziellen Weaviate-Kurzanleitung folgen. Sie können jedoch den optionalen Google Cloud Marketplace-Leitfaden verwenden.
Sie können Ihre Weaviate-Instanz überall einrichten, solange der Weaviate-Endpunkt zugänglich ist, um ihn in Ihrem Projekt zu konfigurieren und bereitzustellen. Anschließend können Sie Ihre Weaviate-Datenbankinstanz vollständig verwalten.
Da RAG Engine in keiner Phase des Lebenszyklus Ihrer Weaviate-Datenbankinstanz beteiligt ist, müssen Sie RAG Engine Berechtigungen erteilen, damit Daten in Ihrer Weaviate-Datenbank gespeichert und durchsucht werden können. Sie sind auch dafür verantwortlich, dass die Daten in Ihrer Datenbank von der RAG Engine verwendet werden können. Wenn Sie beispielsweise Ihre Daten ändern, ist die RAG Engine nicht für unerwartete Verhaltensweisen verantwortlich, die sich aus diesen Änderungen ergeben.
HTTPS-Endpunkt vorbereiten
Achten Sie beim Bereitstellen von Weaviate darauf, dass Sie einen HTTPS-Endpunkt erstellen. HTTP-Verbindungen werden zwar unterstützt, wir empfehlen jedoch, dass der Traffic der RAG-Engine und der Weaviate-Datenbank eine HTTPS-Verbindung verwendet.
Weaviate-Sammlung erstellen
Da der RAG Engine-Korpus und die Weaviate-Sammlung eine 1:1-Zuordnung haben, müssen Sie eine Sammlung in Ihrer Weaviate-Datenbank erstellen, bevor Sie sie dem RAG Engine-Korpus zuordnen. Diese einmalige Zuordnung erfolgt, wenn Sie die CreateRagCorpus API oder die UpdateRagCorpus API aufrufen.
Wenn Sie eine Sammlung in Weaviate erstellen, müssen Sie das folgende Schema verwenden:
| Eigenschaft | Datentyp |
|---|---|
fileId |
text |
corpusId |
text |
chunkId |
text |
chunkDataType |
text |
chunkData |
text |
fileOriginalUri |
text |
Weaviate mit Ihrem API-Schlüssel über AuthN und AuthZ bereitstellen
Die Bereitstellung des Weaviate-API-Schlüssels umfasst die folgenden Schritte:
- Erstellen Sie den Weaviate-API-Schlüssel.
- Konfigurieren Sie Weaviate mit Ihrem Weaviate-API-Schlüssel.
- Speichern Sie Ihren Weaviate-API-Schlüssel in Secret Manager.
API-Schlüssel erstellen
Die RAG-Engine kann nur über Ihren API-Schlüssel für die Authentifizierung und Autorisierung eine Verbindung zu Ihren Weaviate-Datenbankinstanzen herstellen. Sie müssen der offiziellen Weaviate-Anleitung zur Authentifizierung folgen, um die API-Schlüssel-basierte Authentifizierung in Ihrer Weaviate-Datenbankinstanz zu konfigurieren.
Wenn zum Erstellen des Weaviate-API-Schlüssels Identitätsinformationen erforderlich sind, die mit der RAG Engine verknüpft werden sollen, müssen Sie Ihr erstes Korpus erstellen und Ihr RAG Engine-Dienstkonto als Identität verwenden.
API-Schlüssel in Secret Manager speichern
Ein API-Schlüssel enthält vertrauliche personenidentifizierbare Informationen, die rechtlichen Anforderungen unterliegen. Wenn vertrauliche personenidentifizierbare Informationen kompromittiert oder missbraucht werden, kann dies für die jeweilige Person ein erhebliches Risiko oder einen erheblichen Schaden bedeuten. Um Risiken für Einzelpersonen bei der Verwendung der RAG Engine zu minimieren, sollten Sie Ihren API-Schlüssel nicht speichern und verwalten und den unverschlüsselten API-Schlüssel nicht weitergeben.
So schützen Sie vertrauliche personenidentifizierbare Informationen:
- Speichern Sie Ihren API-Schlüssel in Secret Manager.
- Gewähren Sie Ihrem RAG Engine-Dienstkonto die Berechtigungen für das oder die Secrets und verwalten Sie die Zugriffssteuerung auf der Ebene der Secret-Ressource.
- Rufen Sie die Berechtigungen Ihres Projekts auf.
- Aktivieren Sie die Option Von Google bereitgestellte Rollenzuweisungen einschließen.
- Suchen Sie nach dem Dienstkonto im folgenden Format:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com - Bearbeiten Sie die Hauptkonten des Dienstkontos.
- Fügen Sie dem Dienstkonto die Rolle Secret Manager Secret Accessor hinzu.
- Übergeben Sie bei der Erstellung oder Aktualisierung des RAG-Korpus den Namen der Secret-Ressource an die RAG Engine und speichern Sie den Namen der Secret-Ressource.
Wenn Sie API-Anfragen an Ihre Weaviate-Datenbankinstanzen senden, verwendet RAG Engine jedes Dienstkonto, um den API-Schlüssel zu lesen, der Ihren geheimen Ressourcen in Secret Manager aus Ihren Projekten entspricht.
RAG Engine-Dienstkonto bereitstellen
Wenn Sie die erste Ressource in Ihrem Projekt erstellen, erstellt RAG Engine ein dediziertes Dienstkonto. Sie finden Ihr Dienstkonto auf der IAM-Seite Ihres Projekts. Das Dienstkonto hat das folgende Format:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
Beispiel: service-123456789@gcp-sa-vertex-rag.iam.gserviceaccount.com.
Bei der Integration in die Weaviate-Datenbank wird Ihr Dienstkonto in den folgenden Szenarien verwendet:
- Sie können Ihr Dienstkonto verwenden, um Ihren Weaviate-API-Schlüssel für die Authentifizierung zu generieren. In einigen Fällen sind zum Generieren des API-Schlüssels keine Nutzerinformationen erforderlich. Das bedeutet, dass beim Generieren des API-Schlüssels kein Dienstkonto erforderlich ist.
- Sie können Ihr Dienstkonto mit dem API-Schlüssel in Ihrer Weaviate-Datenbank verknüpfen, um die Authentifizierung (
AuthN) und Autorisierung (AuthZ) zu konfigurieren. Ihr Dienstkonto ist jedoch nicht erforderlich. - Sie können den API-Schlüssel in Secret Manager in Ihrem Projekt speichern und Ihrem Dienstkonto Berechtigungen für diese Secret-Ressourcen erteilen.
- RAG Engine verwendet Dienstkonten, um auf den API-Schlüssel aus Secret Manager in Ihren Projekten zuzugreifen.
Google Cloud -Konsolenumgebung einrichten
Klicken Sie hier, um zu erfahren, wie Sie Ihre Umgebung einrichten.
Wählen Sie einen der folgenden Tabs aus, um zu erfahren, wie Sie Ihre Umgebung einrichten:
Python
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Installieren oder aktualisieren Sie das Agent Platform SDK für Python, indem Sie den folgenden Befehl ausführen:
pip3 install --upgrade "google-cloud-aiplatform>=1.38"
Node.js
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Installieren oder aktualisieren Sie das Agent Platform SDK für Node.js, indem Sie den folgenden Befehl ausführen:
npm install @google-cloud/vertexai
Java
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
-
Wenn Sie
google-cloud-vertexaials Abhängigkeit hinzufügen möchten, fügen Sie den entsprechenden Code für Ihre Umgebung hinzu:Maven mit BOM
Fügen Sie Ihrem
pom.xmlfolgenden HTML-Code hinzu:<dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>libraries-bom</artifactId> <version>26.32.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-vertexai</artifactId> </dependency> </dependencies>Maven ohne BOM
Fügen Sie Ihrem
pom.xmlfolgenden HTML-Code hinzu:<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-vertexai</artifactId> <version>0.4.0</version> </dependency>Gradle without BOM
Add the following to your
build.gradleimplementation 'com.google.cloud:google-cloud-vertexai:0.4.0'
Go
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
Prüfen Sie die verfügbaren Go-Pakete für die Agent Platform API, um festzustellen, welches Paket die Anforderungen Ihres Projekts am besten erfüllt:
Paket cloud.google.com/go/vertexai (empfohlen)
vertexaiist ein von Menschen erstelltes Paket, das Zugriff auf gängige Funktionen und Features bietet.Dieses Paket wird als Ausgangspunkt für die meisten Entwickler empfohlen, die mit der Agent Platform API erstellen. Verwenden Sie stattdessen das automatisch generierte
aiplatform, um auf Funktionen und zuzugreifen, die noch nicht von diesem Paket abgedeckt sind.Paket cloud.google.com/go/aiplatform
aiplatformist ein automatisch generiertes Paket.Dieses Paket ist für Projekte gedacht, die Zugriff auf die Funktionen und Features der Agent Platform API benötigen, die noch nicht vom menschlichen
vertexai-Paket bereitgestellt werden.
Führen Sie einen der folgenden Befehle aus, um das gewünschte Go-Paket entsprechend den Anforderungen Ihres Projekts zu installieren:
# Human authored package. Recommended for most developers. go get cloud.google.com/go/vertexai
# Auto-generated package. go get cloud.google.com/go/aiplatform
C#
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
-
Wenn Sie eine lokale Shell verwenden, erstellen Sie lokale Anmeldedaten zur Authentifizierung für Ihr Nutzerkonto:
gcloud auth application-default login
Wenn Sie Cloud Shell verwenden, müssen Sie das nicht tun.
Wenn ein Authentifizierungsfehler zurückgegeben wird und Sie einen externen Identitätsanbieter (IdP) verwenden, prüfen Sie, ob Sie sich mit Ihrer föderierten Identität in der gcloud CLI angemeldet haben.
REST
- Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Agent Platform API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Aktivieren Sie Cloud Shell in der Google Cloud Console.
Unten in der Google Cloud Console wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Cloud Shell ist eine Shell-Umgebung, in der das Google Cloud CLI bereits installiert ist und Werte für Ihr aktuelles Projekt bereits festgelegt sind. Das Initialisieren der Sitzung kann einige Sekunden dauern.
- Konfigurieren Sie Umgebungsvariablen. Dazu geben Sie Folgendes ein. Ersetzen Sie
PROJECT_IDdurch die ID Ihres Projekts von Google Cloud .MODEL_ID="gemini-2.0-flash-001" PROJECT_ID="PROJECT_ID" - Stellen Sie den Endpunkt bereit:
gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID} -
Optional: Wenn Sie Cloud Shell verwenden und aufgefordert werden, Cloud Shell zu autorisieren, klicken Sie auf Autorisieren.
RAG-Korpus vorbereiten
Damit die RAG Engine auf Daten aus Ihrer Weaviate-Datenbank zugreifen kann, muss sie Zugriff auf einen RAG-Korpus haben. In diesem Abschnitt wird beschrieben, wie Sie einen einzelnen RAG-Korpus und zusätzliche RAG-Korpora erstellen.
CreateRagCorpus- und UpdateRagCorpus-APIs verwenden
Sie müssen die folgenden Felder angeben, wenn Sie die APIs CreateRagCorpus und UpdateRagCorpus aufrufen:
rag_vector_db_config.weaviate: Nachdem Sie dieCreateRagCorpusAPI aufgerufen haben, wird die Konfiguration der Vektordatenbank ausgewählt. Die Konfiguration der Vektordatenbank enthält alle Konfigurationsfelder. Wenn das Feldrag_vector_db_config.weaviatenicht festgelegt ist, wird standardmäßigrag_vector_db_config.rag_managed_dbverwendet.weaviate.http_endpoint: Der HTTPS- oder HTTP-Weaviate-Endpunkt wird bei der Bereitstellung der Weaviate-Datenbankinstanz erstellt.weaviate.collection_name: Der Name der Sammlung, die bei der Bereitstellung der Weaviate-Instanz erstellt wird. Der Name muss mit einem Großbuchstaben beginnen.api_auth.api_key_config: In der Konfiguration wird angegeben, dass ein API-Schlüssel verwendet werden soll, um den Zugriff auf die Vektordatenbank zu autorisieren.api_key_config.api_key_secret_version: Der Ressourcenname des Secrets, das im Secret Manager gespeichert ist und Ihren Weaviate-API-Schlüssel enthält.
Sie können Ihren RAG-Korpus erstellen und der Weaviate-Sammlung in Ihrer Datenbankinstanz zuordnen. Möglicherweise benötigen Sie das Dienstkonto jedoch, um Ihren API-Schlüssel zu generieren und Ihre Weaviate-Datenbankinstanz zu konfigurieren. Das Dienstkonto wird erstellt, wenn Sie Ihren ersten RAG-Korpus erstellen. Nachdem Sie Ihren ersten RAG-Korpus erstellt haben, ist die Verknüpfung zwischen der Weaviate-Datenbank und dem API-Schlüssel möglicherweise noch nicht für die Erstellung eines weiteren RAG-Korpus bereit.
Falls Ihre Datenbank und Ihr Schlüssel noch nicht mit Ihrem RAG-Korpus verknüpft werden können, gehen Sie so vor:
Legen Sie das Feld
weaviateinrag_vector_db_configfest.- Sie können die zugehörige Vektordatenbank nicht ändern.
- Lassen Sie sowohl das Feld
http_endpointals auch das Feldcollection_nameleer. Beide Felder können später aktualisiert werden.
Wenn Sie Ihren API-Schlüssel nicht in Secret Manager gespeichert haben, können Sie das Feld
api_authleer lassen. Wenn Sie dieUpdateRagCorpusAPI aufrufen, können Sie das Feldapi_authaktualisieren. Für Weaviate muss Folgendes erledigt werden:- Legen Sie
api_key_configim Feldapi_authfest. Legen Sie die
api_key_secret_versionIhres Weaviate-API-Schlüssels in Secret Manager fest. Das Feldapi_key_secret_versionhat das folgende Format:projects/{project}/secrets/{secret}/versions/{version}
- Legen Sie
Wenn Sie Felder angeben, die nur einmal festgelegt werden können, z. B.
http_endpointodercollection_name, können Sie sie nur ändern, wenn Sie Ihren RAG-Korpus löschen und neu erstellen. Andere Felder wie das API-Schlüsselfeldapi_key_secret_versionkönnen aktualisiert werden.Wenn Sie
UpdateRagCorpusaufrufen, können Sie das Feldvector_dbfestlegen. Dervector_dbsollte durch IhrenCreateRagCorpusAPI-Aufruf aufweaviatefestgelegt werden. Andernfalls wählt das System die Option RAG Managed Database aus, die die Standardeinstellung ist. Diese Option kann beim Aufrufen derUpdateRagCorpus-API nicht geändert werden. Wenn SieUpdateRagCorpusaufrufen und das Feldvector_dbteilweise festgelegt ist, können Sie die Felder aktualisieren, die als Änderbar (auch als veränderlich bezeichnet) gekennzeichnet sind.
In dieser Tabelle sind die veränderlichen und unveränderlichen Felder aufgeführt, die in Ihrem Code verwendet werden.WeaviateConfig
| Feldname | Veränderlich oder unveränderlich |
|---|---|
http_endpoint |
Nach dem Festlegen nicht mehr veränderbar |
collection_name |
Nach dem Festlegen nicht mehr veränderbar |
api_key_authentication |
Veränderbar |
Ersten RAG-Korpus erstellen
Wenn das RAG Engine-Dienstkonto nicht vorhanden ist, gehen Sie so vor:
- Erstellen Sie einen RAG-Korpus in RAG Engine mit einer leeren Weaviate-Konfiguration. Dadurch wird die Bereitstellung von RAG Engine initiiert, um ein Dienstkonto zu erstellen.
- Wählen Sie einen Namen für Ihr RAG Engine-Dienstkonto aus, der diesem Format entspricht:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.comBeispiel:
service-123456789@gcp-sa-vertex-rag.iam.gserviceaccount.com. - Greifen Sie mit Ihrem Dienstkonto auf das Secret zu, das im Secret Manager Ihres Projekts gespeichert ist und Ihren Weaviate-API-Schlüssel enthält.
- Nachdem die Bereitstellung von Weaviate abgeschlossen ist, erhalten Sie die folgenden Informationen:
- Ihr Weaviate-HTTPS- oder -HTTP-Endpunkt.
- Der Name Ihrer Weaviate-Sammlung.
- Rufen Sie die
CreateRagCorpusAPI auf, um einen RAG-Corpus mit einer leeren Weaviate-Konfiguration zu erstellen, und rufen Sie dieUpdateRagCorpusAPI auf, um den RAG-Corpus mit den folgenden Informationen zu aktualisieren:- Ihr Weaviate-HTTPS- oder -HTTP-Endpunkt.
- Der Name Ihrer Weaviate-Sammlung.
- Der Ressourcenname des API-Schlüssels.
Einen weiteren RAG-Korpus erstellen
Wenn das RAG Engine-Dienstkonto vorhanden ist, gehen Sie so vor:
- Rufen Sie das RAG Engine-Dienstkonto aus den Berechtigungen Ihres Projekts ab.
- Aktivieren Sie die Option „Von Google bereitgestellte Rollenzuweisungen einschließen“.
- Wählen Sie einen Namen für Ihr RAG Engine-Dienstkonto aus, der diesem Format entspricht:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com - Greifen Sie mit Ihrem Dienstkonto auf das Secret zu, das im Secret Manager Ihres Projekts gespeichert ist und Ihren Weaviate-API-Schlüssel enthält.
- Rufen Sie beim Bereitstellen von Weaviate die folgenden Informationen ab:
- Der HTTPS- oder HTTP-Endpunkt von Weaviate.
- Der Name Ihrer Weaviate-Sammlung.
- Erstellen Sie einen RAG-Korpus in RAG Engine und stellen Sie eine Verbindung zu Ihrer Weaviate-Sammlung her. Gehen Sie dazu so vor:
- Führen Sie einen
CreateRagCorpus-API-Aufruf aus, um einen RAG-Korpus mit einer ausgefüllten Weaviate-Konfiguration zu erstellen. Dies ist die bevorzugte Option. - Führen Sie einen
CreateRagCorpus-API-Aufruf aus, um einen RAG-Korpus mit einer leeren Weaviate-Konfiguration zu erstellen, und einenUpdateRagCorpus-API-Aufruf, um den RAG-Korpus mit den folgenden Informationen zu aktualisieren:- HTTP-Endpunkt der Weaviate-Datenbank
- Name der Weaviate-Sammlung
- API-Schlüssel
- Führen Sie einen
Beispiele
In diesem Abschnitt finden Sie Beispielcode, der zeigt, wie Sie Ihre Weaviate-Datenbank, Secret Manager, den RAG-Korpus und die RAG-Datei einrichten. Außerdem wird Beispielcode bereitgestellt, der zeigt, wie Sie Dateien importieren, Kontext abrufen, Inhalte generieren und das RAG-Korpus und die RAG-Dateien löschen.
Informationen zur Verwendung des Model Garden RAG API-Notebooks finden Sie unter Weaviate mit Llama 3 verwenden.
Weaviate-Datenbank einrichten
In diesem Codebeispiel wird gezeigt, wie Sie Ihre Weaviate-Daten und den Secret Manager einrichten.
REST
# TODO(developer): Update the variables.
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate API Key.
WEAVIATE_API_KEY="example-api-key"
# Select your Weaviate collection name, which roughly corresponds to a Agent Platform Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weavaite will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# Create a collection in Weaviate which includes the required schema fields shown below.
echo '{
"class": "'${WEAVIATE_COLLECTION_NAME}'",
"properties": [
{ "name": "fileId", "dataType": [ "string" ] },
{ "name": "corpusId", "dataType": [ "string" ] },
{ "name": "chunkId", "dataType": [ "string" ] },
{ "name": "chunkDataType", "dataType": [ "string" ] },
{ "name": "chunkData", "dataType": [ "string" ] },
{ "name": "fileOriginalUri", "dataType": [ "string" ] }
]
}' | curl \
-X POST \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer "${WEAVIATE_API_KEY} \
-d @- \
${HTTP_ENDPOINT_NAME}/v1/schema
Secret Manager einrichten
Um Secret Manager einzurichten, müssen Sie Secret Manager aktivieren und Berechtigungen festlegen.
Secret erstellen
So aktivieren Sie Secret Manager:
Console
Rufen Sie die Seite Secret Manager auf.
Klicken Sie auf + Secret erstellen.
Geben Sie den Namen Ihres Secrets ein. Secret-Namen dürfen nur Buchstaben (A–Z), Ziffern (0–9), Bindestriche (-) und Unterstriche (_) enthalten.
Die Angabe der folgenden Felder ist optional:
- Klicken Sie auf Durchsuchen, um die Datei mit Ihrem Secret hochzuladen.
- Replikationsrichtlinie
- Wenn Sie die Speicherorte für Ihr Secret manuell verwalten möchten, setzen Sie ein Häkchen bei Speicherorte für dieses Secret manuell verwalten. Es muss mindestens eine Region ausgewählt werden.
- Wählen Sie eine Verschlüsselungsoption aus.
- Wenn Sie den Rotationszeitraum manuell festlegen möchten, aktivieren Sie Rotationszeitraum festlegen.
- Wenn Sie Themen zum Veröffentlichen oder Abonnieren angeben möchten, um Ereignisbenachrichtigungen zu erhalten, klicken Sie auf Themen hinzufügen.
- Standardmäßig läuft das Secret nie ab. Wenn Sie ein Ablaufdatum festlegen möchten, setzen Sie ein Häkchen bei Ablaufdatum festlegen.
- Standardmäßig werden Secret-Versionen auf Anfrage gelöscht. Wenn Sie das Löschen von Secret-Versionen verzögern möchten, aktivieren Sie Dauer für verzögertes Löschen festlegen.
- Wenn Sie Ihre Secrets mit Labels organisieren und kategorisieren möchten, klicken Sie auf + Label hinzufügen.
- Wenn Sie Annotationen verwenden möchten, um nicht identifizierbare Metadaten an Ihre Secrets anzuhängen, klicken Sie auf + Annotation hinzufügen.
Klicken Sie auf Secret erstellen.
REST
# Create a secret in SecretManager.
curl "https://secretmanager.googleapis.com/v1/projects/${PROJECT_ID}/secrets?secretId=${SECRET_NAME}" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"replication\": {\"automatic\": {}}}"
Python
Folgen Sie der Einrichtungsanleitung für Python in der Kurzanleitung zur Agent Platform mit Clientbibliotheken, bevor Sie dieses Beispiel anwenden.
Richten Sie zur Authentifizierung bei der Agent Platform Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Berechtigungen festlegen
Sie müssen Ihrem Dienstkonto Secret Manager-Berechtigungen erteilen.
Console
Suchen Sie im Bereich IAM & Verwaltung Ihrer Google Cloud Console nach Ihrem Dienstkonto und klicken Sie auf das Stiftsymbol, um es zu bearbeiten.
Wählen Sie im Feld Rolle die Option Zugriffsperson für Secret Manager-Secret aus.
Python
Folgen Sie der Einrichtungsanleitung für Python in der Kurzanleitung zur Agent Platform mit Clientbibliotheken, bevor Sie dieses Beispiel anwenden.
Richten Sie zur Authentifizierung bei der Agent Platform Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Secret-Version hinzufügen
REST
# TODO(developer): Update the variables.
# Select a resource name for your Secret, which contains your API Key.
SECRET_NAME="MyWeaviateApiKeySecret"
# Your Weaviate API Key.
WEAVIATE_API_KEY="example-api-key"
# Encode your WEAVIATE_API_KEY using base 64.
SECRET_DATA=$(echo ${WEAVIATE_API_KEY} | base64)
# Create a new version of your secret which uses SECRET_DATA as payload
curl "https://secretmanager.googleapis.com/v1/projects/${PROJECT_ID}/secrets/${SECRET_NAME}:addVersion" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"payload\": {\"data\": \"${SECRET_DATA}\"}}"
Python
Folgen Sie der Einrichtungsanleitung für Python in der Kurzanleitung zur Agent Platform mit Clientbibliotheken, bevor Sie dieses Beispiel anwenden.
Richten Sie zur Authentifizierung bei der Agent Platform Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Weaviate mit Llama 3 verwenden
Im Notebook zur RAG API im Model Garden wird gezeigt, wie Sie das Agent Platform SDK für Python mit einem Weaviate-Korpus und einem Llama 3-Modell verwenden. Dazu müssen Sie Folgendes tun:
Verwenden Sie das Model Garden RAG API-Notebook.
Weitere Beispiele finden Sie unter Beispiele.
RAG-Korpus erstellen
In diesem Codebeispiel wird gezeigt, wie Sie einen RAG-Korpus erstellen und die Weaviate-Instanz als Vektordatenbank festlegen.
REST
# TODO(developer): Update the variables.
PROJECT_ID = "YOUR_PROJECT_ID"
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate collection name, which roughly corresponds to a Agent Platform Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weaviate will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# The resource name of your Weaviate API Key your Secret.
SECRET_NAME="MyWeaviateApiKeySecret"
# The Secret Manager resource name containing the API Key for your Weaviate endpoint.
# For example, projects/{project}/secrets/{secret}/versions/latest
APIKEY_SECRET_VERSION="projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/latest"
# Select a Corpus display name.
CORPUS_DISPLAY_NAME="SpecialCorpus"
# Call CreateRagCorpus API and set all Vector DB Config parameters for Weaviate to create a new corpus associated to your selected Weaviate collection.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"weaviate": {
"http_endpoint": '\""${HTTP_ENDPOINT_NAME}"\"',
"collection_name": '\""${WEAVIATE_COLLECTION_NAME}"\"'
},
"api_auth" : {
"api_key_config": {
"api_key_secret_version": '\""${APIKEY_SECRET_VERSION}"\"'
}
}
}
}'
# TODO(developer): Update the variables.
# Get operation_id returned in CreateRagCorpus.
OPERATION_ID="your-operation-id"
# Poll Operation status until done = true in the response.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/operations/${OPERATION_ID}
# Call ListRagCorpora API to verify the RAG corpus is created successfully.
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora"
Python
Folgen Sie der Einrichtungsanleitung für Python in der Kurzanleitung zur Agent Platform mit Clientbibliotheken, bevor Sie dieses Beispiel anwenden.
Richten Sie zur Authentifizierung bei der Agent Platform Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
RAG-Datei verwenden
Die RAG API übernimmt das Hochladen, Importieren, Auflisten und Löschen von Dateien.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: .
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- RAG_CORPUS_ID: Die ID der Ressource
RagCorpus. - INPUT_FILE: der Pfad einer lokalen Datei.
- FILE_DISPLAY_NAME: Der Anzeigename von
RagFile. - RAG_FILE_DESCRIPTION: Die Beschreibung von
RagFile.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/media:upload
JSON-Text der Anfrage:
{
"rag_file": {
"display_name": "FILE_DISPLAY_NAME",
"description": "RAG_FILE_DESCRIPTION"
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen INPUT_FILE und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @INPUT_FILE \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/media:upload"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen INPUT_FILE und führen Sie den folgenden Befehl aus:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile INPUT_FILE `
-Uri "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/media:upload" | Select-Object -Expand ContentRagFile zurück. Die letzte Komponente des Feldes RagFile.name ist der vom Server generierte rag_file_id.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
RAG-Dateien importieren
Dateien und Ordner können aus Google Drive oder Cloud Storage importiert werden.
REST
Mit response.metadata können Sie sich Informationen zu Teilausfällen, zur Anfragezeit und zur Antwortzeit im response-Objekt des SDKs ansehen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: .
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- RAG_CORPUS_ID: Die ID der Ressource
RagCorpus. - GCS_URIS: Eine Liste der Cloud Storage-Standorte. Beispiel:
gs://my-bucket1, gs://my-bucket2. - DRIVE_RESOURCE_ID: Die ID der Drive-Ressource. Beispiele:
https://drive.google.com/file/d/ABCDEhttps://drive.google.com/corp/drive/u/0/folders/ABCDEFG- DRIVE_RESOURCE_TYPE: Typ der Drive-Ressource. Optionen:
RESOURCE_TYPE_FILE- DateiRESOURCE_TYPE_FOLDER- Ordner- CHUNK_SIZE: Optional: Anzahl der Tokens, die jeder Block haben sollte.
- CHUNK_OVERLAP: Optional: Die Anzahl der Tokens überschneiden sich zwischen Blöcken.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
JSON-Text der Anfrage:
{
"import_rag_files_config": {
"gcs_source": {
"uris": GCS_URIS
},
"google_drive_source": {
"resource_ids": {
"resource_id": DRIVE_RESOURCE_ID,
"resource_type": DRIVE_RESOURCE_TYPE
},
}
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand ContentImportRagFilesOperationMetadata zurück.
Im folgenden Beispiel wird gezeigt, wie eine Datei aus Cloud Storage importiert wird. Mit dem Steuerfeld max_embedding_requests_per_min können Sie die Rate begrenzen, mit der die RAG-Engine das Einbettungsmodell während des ImportRagFiles-Indexierungsvorgangs aufruft. Der Standardwert für das Feld ist 1000 Aufrufe pro Minute.
// Cloud Storage bucket/file location.
// Such as "gs://rag-e2e-test/"
GCS_URIS=YOUR_GCS_LOCATION
// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID, GCS_URIS
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"gcs_source": {
"uris": '\""${GCS_URIS}"\"'
},
"rag_file_chunking_config": {
"chunk_size": 512
},
"max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}
Im folgenden Beispiel wird gezeigt, wie Sie eine Datei aus Google Drive importieren. Mit dem Steuerfeld max_embedding_requests_per_min können Sie die Rate begrenzen, mit der die RAG-Engine das Einbettungsmodell während des ImportRagFiles-Indexierungsvorgangs aufruft. Der Standardwert für das Feld ist 1000 Aufrufe pro Minute.
// Google Drive folder location.
FOLDER_RESOURCE_ID=YOUR_GOOGLE_DRIVE_FOLDER_RESOURCE_ID
// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID, FOLDER_RESOURCE_ID
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"google_drive_source": {
"resource_ids": {
"resource_id": '\""${FOLDER_RESOURCE_ID}"\"',
"resource_type": "RESOURCE_TYPE_FOLDER"
}
},
"max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
RAG-Datei abrufen
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: .
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- RAG_CORPUS_ID: Die ID der Ressource
RagCorpus. - RAG_FILE_ID: Die ID der Ressource
RagFile.
HTTP-Methode und URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
Führen Sie folgenden Befehl aus:
$headers = @{ }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand ContentRagFile zurück.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
RAG-Dateien auflisten
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: .
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- RAG_CORPUS_ID: Die ID der Ressource
RagCorpus. - PAGE_SIZE: Die Standardgröße der Listenseite Sie können die Anzahl der
RagFilesanpassen, die pro Seite zurückgegeben werden sollen, indem Sie den Parameterpage_sizeaktualisieren. - PAGE_TOKEN: Das Standardtoken der Listenseite Wird normalerweise mit
ListRagFilesResponse.next_page_tokendes vorherigenVertexRagDataService.ListRagFiles-Aufrufs abgerufen.
HTTP-Methode und URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X GET \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
PowerShell
Führen Sie folgenden Befehl aus:
$headers = @{ }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand ContentRagFiles unter dem angegebenen RAG_CORPUS_ID erhalten.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
RAG-Datei löschen
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: .
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- RAG_CORPUS_ID: Die ID der Ressource
RagCorpus. - RAG_FILE_ID: Die ID der Ressource
RagFile. Format:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}.
HTTP-Methode und URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
curl -X DELETE \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
Führen Sie folgenden Befehl aus:
$headers = @{ }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand ContentDeleteOperationMetadata zurück.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
Kontext abrufen
Wenn ein Nutzer eine Frage stellt oder einen Prompt bereitstellt, durchsucht die Abrufkomponente in RAG in ihrer Wissensdatenbank nach relevanten Informationen.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- PROJECT_ID: .
- RAG_CORPUS_RESOURCE: Name der
RagCorpus-Ressource. Format:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}. - VECTOR_DISTANCE_THRESHOLD: Es werden nur Kontexte mit einer Vektordistanz zurückgegeben, die kleiner als der Grenzwert ist.
- TEXT: Der Abfragetext, um relevante Kontexte abzurufen.
- SIMILARITY_TOP_K: Die Anzahl der Top-Kontexte, die abgerufen werden sollen.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts
JSON-Text der Anfrage:
{
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": "RAG_CORPUS_RESOURCE",
},
"vector_distance_threshold": 0.8
},
"query": {
"text": "TEXT",
"similarity_top_k": SIMILARITY_TOP_K
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand ContentRagFiles erhalten.
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
Inhalte generieren
Eine Vorhersage steuert die LLM-Methode, die Inhalte generiert.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID: .
- LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
- MODEL_ID: LLM-Modell für die Inhaltsgenerierung. Beispiel:
gemini-2.5-flash - GENERATION_METHOD: LLM-Methode zum Generieren von Inhalten. Optionen:
generateContent,streamGenerateContent - INPUT_PROMPT: Der Text, der zur Inhaltsgenerierung an das LLM gesendet wird. Versuchen Sie, einen Prompt zu verwenden, der für die hochgeladenen Rap-Dateien relevant ist.
- RAG_CORPUS_RESOURCE: Name der
RagCorpus-Ressource. Format:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}. - SIMILARITY_TOP_K: Optional: Die Anzahl der Top-Kontexte, die abgerufen werden sollen.
- VECTOR_DISTANCE_THRESHOLD: Optional: Kontexte mit einer Vektorentfernung, die kleiner als der Grenzwert ist, werden zurückgegeben.
HTTP-Methode und URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD
JSON-Text der Anfrage:
{
"contents": {
"role": "user",
"parts": {
"text": "INPUT_PROMPT"
}
},
"tools": {
"retrieval": {
"disable_attribution": false,
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": "RAG_CORPUS_RESOURCE",
},
"similarity_top_k": SIMILARITY_TOP_K,
"vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD
}
}
}
}
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json und führen Sie den folgenden Befehl aus:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand ContentPython
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
Hybridsuche
Die Hybridsuche wird mit der Weaviate-Datenbank unterstützt. Dabei werden sowohl semantische als auch Stichwortsuchen kombiniert, um die Relevanz der Suchergebnisse zu verbessern. Beim Abrufen von Suchergebnissen werden Ähnlichkeitswerte aus semantischem (ein dichter Vektor) und Keyword-Optionen (ein spärlicher Vektor) kombiniert, um die endgültigen, sortierten Ergebnisse zu erhalten.
Hybridsuche mit der RAG Engine Retrieval API
Dies ist ein Beispiel dafür, wie Sie eine hybride Suche mit der RAG Engine Retrieval API aktivieren.
REST
# TODO(developer): Update the variables.
PROJECT_ID = "YOUR_PROJECT_ID"
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate collection name, which roughly corresponds to a Agent Platform Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weaviate will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# The resource name of your Weaviate API Key your Secret.
SECRET_NAME="MyWeaviateApiKeySecret"
# The Secret Manager resource name containing the API Key for your Weaviate endpoint.
# For example, projects/{project}/secrets/{secret}/versions/latest
APIKEY_SECRET_VERSION="projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/latest"
# Select a Corpus display name.
CORPUS_DISPLAY_NAME="SpecialCorpus"
# Call CreateRagCorpus API and set all Vector DB Config parameters for Weaviate to create a new corpus associated to your selected Weaviate collection.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"weaviate": {
"http_endpoint": '\""${HTTP_ENDPOINT_NAME}"\"',
"collection_name": '\""${WEAVIATE_COLLECTION_NAME}"\"'
},
"api_auth" : {
"api_key_config": {
"api_key_secret_version": '\""${APIKEY_SECRET_VERSION}"\"'
}
}
}
}'
# TODO(developer): Update the variables.
# Get operation_id returned in CreateRagCorpus.
OPERATION_ID="your-operation-id"
# Poll Operation status until done = true in the response.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/operations/${OPERATION_ID}
# Call ListRagCorpora API to verify the RAG corpus is created successfully.
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora"
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.
Hybridsuche und RAG Engine für fundierte Generierung verwenden
Dies ist ein Beispiel für die Verwendung der Hybridsuche und der RAG-Engine für die fundierte Generierung.
REST
# TODO(developer): Update the variables.
PROJECT_ID = "YOUR_PROJECT_ID"
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate collection name, which roughly corresponds to a Agent Platform Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weaviate will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# The resource name of your Weaviate API Key your Secret.
SECRET_NAME="MyWeaviateApiKeySecret"
# The Secret Manager resource name containing the API Key for your Weaviate endpoint.
# For example, projects/{project}/secrets/{secret}/versions/latest
APIKEY_SECRET_VERSION="projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/latest"
# Select a Corpus display name.
CORPUS_DISPLAY_NAME="SpecialCorpus"
# Call CreateRagCorpus API and set all Vector DB Config parameters for Weaviate to create a new corpus associated to your selected Weaviate collection.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora \
-d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"weaviate": {
"http_endpoint": '\""${HTTP_ENDPOINT_NAME}"\"',
"collection_name": '\""${WEAVIATE_COLLECTION_NAME}"\"'
},
"api_auth" : {
"api_key_config": {
"api_key_secret_version": '\""${APIKEY_SECRET_VERSION}"\"'
}
}
}
}'
# TODO(developer): Update the variables.
# Get operation_id returned in CreateRagCorpus.
OPERATION_ID="your-operation-id"
# Poll Operation status until done = true in the response.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/operations/${OPERATION_ID}
# Call ListRagCorpora API to verify the RAG corpus is created successfully.
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora"
Python
Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.