Auf dieser Seite erfahren Sie, wie Sie Ihre Vertex AI RAG-Engine mit Vertex AI Vector Search verbinden.
Sie können auch das Notebook Vertex AI RAG Engine with Vertex AI Vector Search verwenden.
Vektorsuche in Vertex AI einrichten
Die Vektorsuche in Vertex AI basiert auf der Vektorsuchtechnologie, die von Google Research entwickelt wurde. Mit der Vektorsuche können Sie dieselbe Infrastruktur nutzen, die eine Grundlage für Google-Produkte wie die Google Suche, YouTube und Google Play bietet.
Für die Integration in die Vertex AI RAG Engine ist ein leerer Vektorsucheindex erforderlich.
Vertex AI SDK einrichten
Informationen zum Einrichten des Vertex AI SDK finden Sie unter Einrichtung.
Vektorsuchindex erstellen.
Damit ein Vektorsuchindex mit Ihrem RAG-Corpus kompatibel ist, muss er die folgenden Kriterien erfüllen:
IndexUpdateMethod
mussSTREAM_UPDATE
sein. Weitere Informationen finden Sie unter Streamindex erstellen.Der Typ des Distanzmesswerts muss explizit auf einen der folgenden Werte festgelegt werden:
DOT_PRODUCT_DISTANCE
COSINE_DISTANCE
Die Dimension des Vektors muss mit dem Einbettungsmodell übereinstimmen, das Sie im RAG-Korpus verwenden möchten. Andere Parameter können basierend auf Ihren Entscheidungen optimiert werden.
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.
Endpunkt für Vektorsuchindex erstellen
Öffentliche Endpunkte werden von der Vertex AI-RAG-Engine unterstützt.
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.
Index für einen Indexendpunkt bereitstellen
Bevor wir die Suche nach dem nächsten Nachbarn durchführen können, muss der Index an einem Indexendpunkt bereitgestellt werden.
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.
Wenn Sie einen Index zum ersten Mal auf einem Indexendpunkt bereitstellen, dauert es etwa 30 Minuten, bis das Backend automatisch erstellt und initiiert wird, bevor der Index gespeichert werden kann. Nach der ersten Bereitstellung ist der Index innerhalb von Sekunden einsatzbereit. Wenn Sie den Status der Indexbereitstellung sehen möchten, öffnen Sie die Vektorsuche-Konsole, wählen Sie den Tab Indexendpunkte aus und wählen Sie dann Ihren Indexendpunkt aus.
Ermitteln Sie den Ressourcennamen Ihres Index und Indexendpunkts. Diese haben die folgenden Formate:
projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexes/${INDEX_ID}
projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexEndpoints/${INDEX_ENDPOINT_ID}
.
Vertex AI Vektorsuche in Vertex AI RAG Engine verwenden
Nachdem die Vektorsuche-Instanz eingerichtet wurde, folgen Sie der Anleitung in diesem Abschnitt, um die Vektorsuche-Instanz als Vektordatenbank für die RAG-Anwendung festzulegen.
Vektordatenbank zum Erstellen eines RAG-Korpus festlegen
Geben Sie beim Erstellen des RAG-Korpus nur die vollständigen INDEX_ENDPOINT_NAME
und INDEX_NAME
an. Verwenden Sie für die Ressourcennamen von Index und Indexendpunkt die numerische ID. Der RAG-Korpus wird erstellt und automatisch mit dem Vektorsuchindex verknüpft. Die Validierungen werden anhand der Kriterien durchgeführt. Wenn eine der Anforderungen nicht erfüllt ist, wird die Anfrage abgelehnt.
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.
REST
# TODO(developer): Update and un-comment the following lines:
# CORPUS_DISPLAY_NAME = "YOUR_CORPUS_DISPLAY_NAME"
# Full index/indexEndpoint resource name
# Index: projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexes/${INDEX_ID}
# IndexEndpoint: projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexEndpoints/${INDEX_ENDPOINT_ID}
# INDEX_RESOURCE_NAME = "YOUR_INDEX_ENDPOINT_RESOURCE_NAME"
# INDEX_NAME = "YOUR_INDEX_RESOURCE_NAME"
# Call CreateRagCorpus API to create a new RagCorpus
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://${LOCATION_ID}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/ragCorpora -d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"vertex_vector_search": {
"index":'\""${INDEX_NAME}"\"'
"index_endpoint":'\""${INDEX_ENDPOINT_NAME}"\"'
}
}
}'
# Call ListRagCorpora API to verify the RagCorpus is created successfully
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://${LOCATION_ID}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/ragCorpora"
Dateien mit der RAG API importieren
Verwenden Sie die ImportRagFiles
API, um Dateien aus Cloud Storage oder Google Drive in den Vektorsuchindex zu importieren. Die Dateien werden eingebettet und im Vektorsuchindex gespeichert.
REST
# TODO(developer): Update and uncomment the following lines:
# RAG_CORPUS_ID = "your-rag-corpus-id"
#
# Google Cloud Storage bucket/file location.
# For example, "gs://rag-fos-test/"
# GCS_URIS= "your-gcs-uris"
# Call ImportRagFiles API to embed files and store in the BigQuery table
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_NUMBER}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"gcs_source": {
"uris": '\""${GCS_URIS}"\"'
},
"rag_file_chunking_config": {
"chunk_size": 512
}
}
}'
# Call ListRagFiles API to verify the files are imported successfully
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}/ragFiles
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.
Relevante Kontexte mit der RAG API abrufen
Nach Abschluss der Dateiimporte kann der relevante Kontext mithilfe der RetrieveContexts
API aus dem Vektorsuchindex abgerufen werden.
REST
# TODO(developer): Update and uncomment the following lines:
# RETRIEVAL_QUERY="your-retrieval-query"
#
# Full RAG corpus resource name
# Format:
# "projects/${PROJECT_NUMBER}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}"
# RAG_CORPUS_RESOURCE="your-rag-corpus-resource"
# Call RetrieveContexts API to retrieve relevant contexts
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_NUMBER}/locations/us-central1:retrieveContexts \
-d '{
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": '\""${RAG_CORPUS_RESOURCE}"\"',
},
},
"query": {
"text": '\""${RETRIEVAL_QUERY}"\"',
"similarity_top_k": 10
}
}'
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 mit der Vertex AI Gemini API generieren
Wenn Sie Inhalte mit Gemini-Modellen generieren möchten, rufen Sie die Vertex AI GenerateContent
API auf. Wenn Sie RAG_CORPUS_RESOURCE
in der Anfrage angeben, ruft die API automatisch Daten aus dem Vektorsuche-Index ab.
REST
# TODO(developer): Update and uncomment the following lines:
# MODEL_ID=gemini-2.0-flash
# GENERATE_CONTENT_PROMPT="your-generate-content-prompt"
# GenerateContent with contexts retrieved from the FeatureStoreOnline index
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_NUMBER}/locations/us-central1/publishers/google/models/${MODEL_ID}:generateContent \
-d '{
"contents": {
"role": "user",
"parts": {
"text": '\""${GENERATE_CONTENT_PROMPT}"\"'
}
},
"tools": {
"retrieval": {
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": '\""${RAG_CORPUS_RESOURCE}"\"',
},
"similarity_top_k": 8,
"vector_distance_threshold": 0.32
}
}
}
}'
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.