Auf dieser Seite erfahren Sie, wie Sie Ihre RAG-Engine mit der Vertex AI Vector Search verbinden.
Sie können auch mit diesem Notebook RAG Engine with Vertex AI Vector Search (RAG-Engine mit Vertex AI-Vektorsuche) weitermachen.
Die RAG Engine ist ein leistungsstarkes Tool, das eine integrierte Vektordatenbank mit Spanner verwendet, um Vektordarstellungen von Textdokumenten zu speichern und zu verwalten. Die Vektordatenbank ermöglicht ein effizientes Abrufen relevanter Dokumente basierend auf der semantischen Ähnlichkeit der Dokumente mit einer bestimmten Suchanfrage. Wenn Sie Vertex AI Vector Search als zusätzliche Vektordatenbank in die RAG Engine einbinden, können Sie mit den Funktionen der Vektorsuche Datenmengen mit niedriger Latenz verarbeiten, um die Leistung und Skalierbarkeit Ihrer RAG-Anwendungen zu verbessern.
Vertex AI Vektorsuche einrichten
Die Vertex AI-Vektorsuche basiert auf der Vektorsuchtechnologie, die von der Google-Forschung 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 Einbindung in die RAG Engine ist ein leerer Vektorsuchindex 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 der Entfernungsmessung 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 anhand Ihrer Auswahl angepasst werden. Diese Auswahl bestimmt, ob die zusätzlichen Parameter angepasst werden können.
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 Referenzdokumentation zur Python API.
Vektorsuchindexendpunkt erstellen
Öffentliche Endpunkte werden von der 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 Referenzdokumentation zur Python API.
Index auf einem Indexendpunkt bereitstellen
Bevor wir die Suche nach dem nächsten Nachbarn ausführen, 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 Referenzdokumentation zur Python API.
Wenn Sie zum ersten Mal einen Index 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 weniger Sekunden einsatzbereit. Wenn Sie den Status der Indexbereitstellung sehen möchten, öffnen Sie die Vektorsuchkonsole, wählen Sie den Tab Indexendpunkte aus und wählen Sie Ihren Indexendpunkt aus.
Geben Sie den Ressourcennamen Ihres Index und Indexendpunkts an. Diese haben die folgenden Formate:
projects/${PROJECT_ID}/locations/${LOCATION_ID}/indexes/${INDEX_ID}
projects/${PROJECT_ID}/locations/${LOCATION_ID}/indexEndpoints/${INDEX_ENDPOINT_ID}
.
Vertex AI Vektorsuche in der RAG-Engine verwenden
Nachdem Sie die Vektorsuch-Instanz eingerichtet haben, folgen Sie der Anleitung in diesem Abschnitt, um die Vektorsuch-Instanz als Vektordatenbank für die RAG-Anwendung festzulegen.
Vektordatenbank für die Erstellung eines RAG-Korpus festlegen
Geben Sie beim Erstellen des RAG-Korpus nur die vollständigen INDEX_ENDPOINT_NAME
und INDEX_NAME
an. Der RAG-Korpus wird erstellt und automatisch mit dem Vektorsuchindex verknüpft. Die Validierung erfolgt anhand der Kriterien. Wenn eine der Anforderungen nicht erfüllt wird, 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_ID}/locations/${LOCATION_ID}/indexes/${INDEX_ID}
# IndexEndpoint: projects/${PROJECT_ID}/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_ID}/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_ID}/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_ID}/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_ID}/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 Referenzdokumentation zur Python API.
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_ID}/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_ID}/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 Referenzdokumentation zur Python API.
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 Vektorsuchindex ab.
REST
# TODO(developer): Update and uncomment the following lines:
# MODEL_ID=gemini-1.5-flash-001
# 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_ID}/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 Referenzdokumentation zur Python API.
Nächste Schritte
- Weitere Informationen zur Auswahl von Einbettungsmodellen finden Sie unter Einbettungsmodelle mit der RAG Engine verwenden.
- Weitere Informationen zum Importieren von Dateien finden Sie unter RAG-Dateien importieren.