Cette page explique comment connecter votre moteur RAG Vertex AI à Vertex AI Vector Search.
Vous pouvez également suivre avec le notebook Moteur RAG Vertex AI avec Vertex AI Vector Search.
Configurer Vertex AI Vector Search
Vertex AI Vector Search est basé sur la technologie de recherche vectorielle développée par la recherche Google. Vector Search vous permet d'exploiter l'infrastructure qui est à la base des produits Google, tels que la recherche Google, YouTube et Google Play.
Pour intégrer le moteur Vertex AI, un index Vector Search vide est requis.
Configurer le SDK Vertex AI
Pour configurer le SDK Vertex AI, consultez Configuration.
Créer un index Vector Search
Pour créer un index Vector Search compatible avec votre corpus RAG, l'index doit remplir les critères suivants :
La valeur de
IndexUpdateMethod
doit êtreSTREAM_UPDATE
. Consultez Créer un index de flux.Le type de mesure de distance doit être explicitement défini sur l'une des valeurs suivantes :
DOT_PRODUCT_DISTANCE
COSINE_DISTANCE
La dimension du vecteur doit être cohérente avec le modèle d'embedding que vous prévoyez d'utiliser dans le corpus RAG. D'autres paramètres peuvent être réglés selon vos préférences, qui déterminent si les paramètres supplémentaires peuvent être réglés.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Créer un point de terminaison d'index Vector Search
Les points de terminaison publics sont compatibles avec le moteur RAG Vertex AI.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Déployer un index sur un point de terminaison d'index
Avant de lancer la recherche des voisins les plus proches, l'index doit être déployé sur un point de terminaison d'index.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Si vous déployez un index pour la première fois sur un point de terminaison d'index, la création et le lancement du backend prennent environ 30 minutes avant que l'index puisse être stocké. Après le premier déploiement, l'index est prêt en quelques secondes. Pour connaître l'état du déploiement de l'index, ouvrez la console Vector Search, sélectionnez l'onglet Points de terminaison d'index, puis choisissez votre point de terminaison d'index.
Repérez les noms de ressource de votre index et de votre point de terminaison d'index. Ils doivent être aux formats suivants :
projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexes/${INDEX_ID}
projects/${PROJECT_NUMBER}/locations/${LOCATION_ID}/indexEndpoints/${INDEX_ENDPOINT_ID}
Utiliser Vertex AI Vector Search dans le moteur RAG Vertex AI
Une fois l'instance Vector Search configurée, suivez les étapes de cette section pour la définir comme base de données vectorielle pour l'application RAG.
Définir la base de données vectorielle pour créer un corpus RAG
Lorsque vous créez le corpus RAG, ne spécifiez que les noms complets de INDEX_ENDPOINT_NAME
et INDEX_NAME
. Veillez à utiliser l'ID numérique comme noms de ressource de l'index et du point de terminaison de l'index. Le corpus RAG est créé et automatiquement associé à l'index Vector Search. Les validations sont effectuées sur les critères prévus. Si l'une des exigences n'est pas remplie, la requête est refusée.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le guide de démarrage rapide de Vertex AI à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Vertex AI Python.
Pour vous authentifier auprès de Vertex AI, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
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"
Importer des fichiers à l'aide de l'API RAG
Utilisez l'API ImportRagFiles
pour importer des fichiers depuis Cloud Storage ou Google Drive dans l'index Vector Search. Les fichiers sont intégrés et stockés dans l'index Vector Search.
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
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Récupérer des contextes pertinents à l'aide de l'API RAG
Une fois les fichiers importés, le contexte pertinent peut être récupéré à partir de l'index Vector Search à l'aide de l'API RetrieveContexts
.
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
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Générer du contenu à l'aide de l'API Gemini Vertex AI
Pour générer du contenu à l'aide de modèles Gemini, appelez l'API GenerateContent
Vertex AI. En spécifiant RAG_CORPUS_RESOURCE
dans la requête, l'API récupère automatiquement les données de l'index Vector Search.
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
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.