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 RAG Engine verwenden, um eine Indexierung und eine vektorbasierte Ähnlichkeitssuche durchzuführen. Bei einer Ähnlichkeitssuche wird nach Textstellen gesucht, die dem gesuchten Text ähneln. Dazu ist die Verwendung eines Einbettungsmodells erforderlich. Das Einbettungsmodell erzeugt Vektordaten für jeden zu vergleichenden Textabschnitt. Die Ähnlichkeitssuche wird verwendet, um semantische Kontexte für das Grounding abzurufen und so die genauesten Inhalte von Ihrem LLM zurückzugeben.
Mit RAG Engine können Sie Ihre vollständig verwaltete Vektordatenbankinstanz weiterhin verwenden. Sie sind für die Bereitstellung verantwortlich. Die RAG Engine verwendet die Vektordatenbank zum Speichern, Verwalten von Indexen und Suchen.
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üsselbasierten
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.
- Gewähren Sie dem Dienstkonto Ihres Projekts die Berechtigung, auf Ihr Secret zuzugreifen.
- Geben Sie den Ressourcennamen Ihres Secrets für den RAG Engine-Zugriff an.
- Wenn Sie mit Ihrer Weaviate-Datenbank interagieren, greift die RAG Engine mit Ihrem Dienstkonto auf Ihre geheime Ressource zu.
- Der RAG Engine-Korpus und die Weaviate-Sammlung haben eine Eins-zu-eins-Zuordnung. RAG-Dateien werden in einer Weaviate-Datenbank-Sammlung gespeichert. Wenn ein Aufruf an die
CreateRagCorpus
API oder dieUpdateRagCorpus
API 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 der 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
AuthN
undAuthZ
bereit. - 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 für die Konfiguration und Bereitstellung in Ihrem Projekt zugänglich ist. 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. Obwohl HTTP-Verbindungen unterstützt werden, bevorzugen wir, 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 Ihre Sammlung dem RAG Engine-Korpus zuordnen. Diese einmalige Verknüpfung wird hergestellt, 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 |
API-Schlüssel verwenden, um Weaviate mit AuthN
und AuthZ
bereitzustellen
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 die vertraulichen personenidentifizierbaren 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 personenbezogene Informationen:
- Speichern Sie Ihren API-Schlüssel in Secret Manager.
- Gewähren Sie Ihrem RAG Engine-Dienstkonto die Berechtigungen für Ihre 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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Installieren oder aktualisieren Sie das Vertex AI SDK für Python, indem Sie den folgenden Befehl ausführen:
pip3 install --upgrade "google-cloud-aiplatform>=1.38"
Node.js
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Installieren oder aktualisieren Sie das Vertex AI SDK für Node.js, indem Sie den folgenden Befehl ausführen:
npm install @google-cloud/vertexai
Java
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Wenn Sie
google-cloud-vertexai
als 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.xml
folgenden 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.xml
folgenden 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.gradle
implementation 'com.google.cloud:google-cloud-vertexai:0.4.0'
Go
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Prüfen Sie die verfügbaren Go-Pakete für die Vertex AI API, um festzustellen, welches Paket die Anforderungen Ihres Projekts am besten erfüllt:
Paket cloud.google.com/go/vertexai (empfohlen)
vertexai
ist 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 Vertex AI 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
aiplatform
ist ein automatisch generiertes Paket.Dieses Paket ist für Projekte gedacht, die Zugriff auf die Funktionen und Features der Vertex AI 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#
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
REST
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- Konfigurieren Sie Umgebungsvariablen. Dazu geben Sie Folgendes ein. Ersetzen Sie
PROJECT_ID
durch die ID Ihres Projekts. Google CloudMODEL_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 dieCreateRagCorpus
API aufgerufen haben, wird die Konfiguration der Vektordatenbank ausgewählt. Die Konfiguration der Vektordatenbank enthält alle Konfigurationsfelder. Wenn das Feldrag_vector_db_config.weaviate
nicht festgelegt ist, wird standardmäßigrag_vector_db_config.rag_managed_db
verwendet.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 in 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:
Setzen Sie das Feld
weaviate
inrag_vector_db_config
.- Sie können die zugehörige Vektordatenbank nicht ändern.
- Lassen Sie die Felder
http_endpoint
undcollection_name
leer. 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_auth
leer lassen. Wenn Sie dieUpdateRagCorpus
API aufrufen, können Sie das Feldapi_auth
aktualisieren. Für Weaviate muss Folgendes erledigt werden:- Legen Sie
api_key_config
im Feldapi_auth
fest. Legen Sie den
api_key_secret_version
Ihres Weaviate-API-Schlüssels in Secret Manager fest. Das Feldapi_key_secret_version
hat 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_endpoint
odercollection_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_version
können aktualisiert werden.Wenn Sie
UpdateRagCorpus
aufrufen, können Sie das Feldvector_db
festlegen. Dervector_db
sollte durch IhrenCreateRagCorpus
API-Aufruf aufweaviate
gesetzt 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 SieUpdateRagCorpus
aufrufen und das Feldvector_db
teilweise festgelegt ist, können Sie die Felder aktualisieren, die als Änderbar (auch als mutable 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 der Einrichtung nicht mehr veränderbar |
collection_name |
Nach der Einrichtung nicht mehr veränderbar |
api_key_authentication |
Veränderlich |
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.com
Beispiel:
service-123456789@gcp-sa-vertex-rag.iam.gserviceaccount.com
. - Greifen Sie mit Ihrem Dienstkonto auf das Secret zu, das in 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
CreateRagCorpus
API auf, um einen RAG-Corpus mit einer leeren Weaviate-Konfiguration zu erstellen, und rufen Sie dieUpdateRagCorpus
API 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 in 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, indem Sie einen der folgenden Schritte ausführen:
- 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 den 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
Dieses Codebeispiel zeigt, 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 Vertex AI 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 lesen
- 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
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI 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 in der Google Cloud Console im Bereich IAM & Verwaltung 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
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI 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
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI Standardanmeldedaten für Anwendungen ein. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.
Weaviate mit Llama 3 verwenden
Im Model Garden-Notebook zur RAG API wird gezeigt, wie Sie das Vertex AI SDK für Python mit einem Weaviate-Korpus und einem Llama 3-Modell verwenden. So verwenden Sie das Notebook:
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 Vertex AI 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
Bevor Sie dieses Beispiel anwenden, folgen Sie den Python-Einrichtungsschritten in der Vertex AI-Kurzanleitung zur Verwendung von Clientbibliotheken. Weitere Informationen finden Sie in der Referenzdokumentation zur Vertex AI Python API.
Richten Sie zur Authentifizierung bei Vertex AI 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: Ihre Projekt-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/ragFiles: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/ragFiles: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/ragFiles:upload" | Select-Object -Expand Content
RagFile
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: Ihre Projekt-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/ABCDE
https://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 Content
ImportRagFilesOperationMetadata
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: Ihre Projekt-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 Content
RagFile
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: Ihre Projekt-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
RagFiles
anpassen, die pro Seite zurückgegeben werden sollen, indem Sie den Parameterpage_size
aktualisieren. - PAGE_TOKEN: Das Standardtoken der Listenseite Wird normalerweise mit
ListRagFilesResponse.next_page_token
des 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 Content
RagFiles
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: Ihre Projekt-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 Content
DeleteOperationMetadata
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: Ihre Projekt-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 Content
RagFiles
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: Ihre Projekt-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 Content
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
Die Hybridsuche wird mit der Weaviate-Datenbank unterstützt, die sowohl semantische als auch Stichwortsuchen kombiniert, um die Relevanz der Suchergebnisse zu verbessern. Beim Abrufen von Suchergebnissen werden die endgültigen sortierten Ergebnisse aus einer Kombination von Ähnlichkeitswerten aus semantischem (ein dichter Vektor) und Keyword-Abgleich (ein spärlicher Vektor) generiert.
Hybridsuche mit der RAG Engine Retrieval API
Dies ist ein Beispiel dafür, wie Sie eine Hybridsuche mit der RAG Engine-Abruf-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 Vertex AI 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
Hier sehen Sie 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 Vertex AI 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.