API RAG Engine

Le moteur RAG Vertex AI est un composant de la plate-forme Vertex AI qui facilite la génération augmentée par récupération (RAG). Il permet aux grands modèles de langage (LLM) d'accéder à des données provenant de sources de connaissances externes, telles que des documents et des bases de données, et de les intégrer. En l'utilisant, les LLM génèrent des réponses plus précises et informatives.

Liste des paramètres

Cette section présente les éléments suivants :

Paramètres Exemples
Consultez Paramètres de gestion des corpus. Consultez Exemples de gestion de corpus.
Consultez Paramètres de gestion des fichiers. Consultez Exemples de gestion de fichiers.
Consultez Paramètres de gestion des projets. Consultez Exemples de gestion de projet.

Paramètres de gestion des corpus

Pour en savoir plus concernant un corpus RAG, consultez Gestion des corpus.

Créer un corpus RAG

Ce tableau présente les paramètres utilisés pour créer un corpus RAG.

Corps de la requête
Paramètres

corpus_type_config

Facultatif : immuable.

RagCorpus.CorpusTypeConfig

Configuration permettant de spécifier le type de corpus.

display_name

Obligatoire : string

Nom à afficher du corpus RAG.

description

Facultatif : string

Description du corpus RAG.

encryption_spec

Facultatif : string (immuable)

Le nom de la clé CMEK est utilisé pour chiffrer les données au repos liées au corpus RAG. Le nom de la clé ne s'applique qu'à l'option RagManaged pour la base de données vectorielle. Lorsque le corpus est créé, ce champ peut être défini, mais ne peut pas être mis à jour ni supprimé.

Format : projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{key_name}

vector_db_config

Facultatif : RagVectorDbConfig (immuable)

Configuration des bases de données vectorielles.

vertex_ai_search_config.serving_config

Facultatif : string

Configuration de Vertex AI Search.

Format : projects/{project}/locations/{location}/collections/{collection}/engines/{engine}/servingConfigs/{serving_config} ou projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}/servingConfigs/{serving_config}

CorpusTypeConfig
Paramètres

document_corpus

oneof RagCorpus.CorpusTypeConfig.DocumentCorpus

La valeur par défaut de corpus_type_config, qui représente un corpus RAG conventionnel basé sur des documents.

memory_corpus

oneof RagCorpus.CorpusTypeConfig.MemoryCorpus

Si vous définissez ce type, le corpus RAG est un MemoryCorpus qui peut être utilisé avec l'API Gemini Live comme espace de stockage de la mémoire.

Pour en savoir plus, consultez Utiliser le moteur RAG de Vertex AI comme magasin de mémoire.

memory_corpus.llm_parser

oneof RagFileParsingConfig.LlmParser

Analyseur LLM utilisé pour analyser et stocker les contextes de session à partir de l'API Gemini Live. Vous pouvez créer des souvenirs à indexer.

RagVectorDbConfig
Paramètres

rag_managed_db

oneof vector_db : RagVectorDbConfig.RagManagedDb

Si aucune base de données vectorielle n'est spécifiée, rag_managed_db est la base de données vectorielle par défaut.

rag_managed_db.knn

oneof retrieval_strategy : KNN

Par défaut.

Trouve les voisins les plus proches exacts en comparant tous les points de données de votre corpus RAG.

Si vous ne spécifiez pas de stratégie lors de la création de votre corpus RAG, la stratégie de récupération par défaut utilisée est KNN.

rag_managed_db.ann

oneof retrieval_strategy : ANN

tree_depth

Détermine le nombre de calques ou de niveaux dans l'arborescence.

Si vous avez O(10K) fichiers RAG dans le corpus RAG, définissez cette valeur sur 2.
  • Si vous avez besoin de plus de calques ou de niveaux, définissez cette valeur sur 3.
  • Si le nombre de calques ou de niveaux n'est pas spécifié, le moteur RAG de Vertex AI attribue une valeur par défaut de 2 à ce paramètre.

leaf_count

Détermine le nombre de nœuds feuilles dans la structure arborescente.

  • La valeur recommandée est 10 * sqrt(num of RAG files in your RAG corpus).
  • Si aucune valeur n'est spécifiée, le moteur RAG de Vertex AI attribue une valeur par défaut de 500 à ce paramètre.

rebuild_ann_index

  • Le moteur RAG Vertex AI reconstruit votre index ANN.
  • Définissez la valeur sur true dans votre requête API ImportRagFiles.
  • Avant d'interroger le corpus RAG, vous devez reconstruire l'index ANN une fois.
  • Une seule reconstruction d'index simultanée est acceptée par projet et par emplacement.

weaviate

oneof vector_db : RagVectorDbConfig.Weaviate

Spécifie votre instance Weaviate.

weaviate.http_endpoint

string

Point de terminaison HTTP de l'instance Weaviate.

Cette valeur ne peut pas être modifiée une fois qu'elle a été définie. Vous pouvez la laisser vide dans l'appel d'API CreateRagCorpus et la définir avec une valeur non vide dans un appel d'API UpdateRagCorpus ultérieur.

weaviate.collection_name

string

Collection Weaviate correspondant au corpus RAG.

Cette valeur ne peut pas être modifiée une fois qu'elle a été définie. Vous pouvez la laisser vide dans l'appel d'API CreateRagCorpus et la définir avec une valeur non vide dans un appel d'API UpdateRagCorpus ultérieur.

pinecone

oneof vector_db : RagVectorDbConfig.Pinecone

Spécifie votre instance Pinecone.

pinecone.index_name

string

Nom servant à créer l'index Pinecone utilisé avec le corpus RAG.

Cette valeur ne peut pas être modifiée une fois qu'elle a été définie. Vous pouvez la laisser vide dans l'appel d'API CreateRagCorpus et la définir avec une valeur non vide dans un appel d'API UpdateRagCorpus ultérieur.

vertex_feature_store

oneof vector_db : RagVectorDbConfig.VertexFeatureStore

Spécifie votre instance Vertex AI Feature Store.

vertex_feature_store.feature_view_resource_name

string

FeatureView Vertex AI Feature Store auquel le corpus RAG est associé.

Format : projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Cette valeur ne peut pas être modifiée une fois qu'elle a été définie. Vous pouvez la laisser vide dans l'appel d'API CreateRagCorpus et la définir avec une valeur non vide dans un appel d'API UpdateRagCorpus ultérieur.

vertex_vector_search

oneof vector_db : RagVectorDbConfig.VertexVectorSearch

Spécifie votre instance Vertex Vector Search.

vertex_vector_search.index

string

Nom de la ressource de l'index Vector Search utilisé avec le corpus RAG.

Format : projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Cette valeur ne peut pas être modifiée une fois qu'elle a été définie. Vous pouvez la laisser vide dans l'appel d'API CreateRagCorpus et la définir avec une valeur non vide dans un appel d'API UpdateRagCorpus ultérieur.

vertex_vector_search.index_endpoint

string

Nom de la ressource du point de terminaison de l'index Vector Search utilisé avec le corpus RAG.

Format : projects/{project}/locations/{location}/indexes/{index}

Cette valeur ne peut pas être modifiée une fois qu'elle a été définie. Vous pouvez la laisser vide dans l'appel d'API CreateRagCorpus et la définir avec une valeur non vide dans un appel d'API UpdateRagCorpus ultérieur.

api_auth.api_key_config.api_key_secret_version

string

Nom complet de la ressource du secret stocké dans Secret Manager, qui contient votre clé API Weaviate ou Pinecone, selon la base de données vectorielle de votre choix.

Format : projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

Vous pouvez la laisser vide dans l'appel d'API CreateRagCorpus et la définir avec une valeur non vide dans un appel d'API UpdateRagCorpus ultérieur.

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

Facultatif : string (immuable)

Modèle d'embedding à utiliser pour le corpus RAG. Cette valeur ne peut pas être modifiée une fois qu'elle a été définie. Si vous la laissez vide, text-embedding-005 sera utilisé comme modèle d'embedding.

Mettre à jour un corpus RAG

Ce tableau présente les paramètres utilisés pour mettre à jour un corpus RAG.

Corps de la requête
Paramètres

display_name

Facultatif : string

Nom à afficher du corpus RAG.

description

Facultatif : string

Description du corpus RAG.

rag_vector_db.weaviate.http_endpoint

string

Point de terminaison HTTP de l'instance Weaviate.

Si votre RagCorpus a été créé avec une configuration Weaviate et que ce champ n'a jamais été défini auparavant, vous pouvez mettre à jour le point de terminaison HTTP de l'instance Weaviate.

rag_vector_db.weaviate.collection_name

string

Collection Weaviate correspondant au corpus RAG.

Si votre RagCorpus a été créé avec une configuration Weaviate et que ce champ n'a jamais été défini auparavant, vous pouvez mettre à jour le nom de la collection de l'instance Weaviate.

rag_vector_db.pinecone.index_name

string

Nom servant à créer l'index Pinecone utilisé avec le corpus RAG.

Si votre RagCorpus a été créé avec une configuration Pinecone et que ce champ n'a jamais été défini auparavant, vous pouvez mettre à jour le nom de l'index de l'instance Pinecone.

rag_vector_db.vertex_feature_store.feature_view_resource_name

string

FeatureView Vertex AI Feature Store auquel le corpus RAG est associé.

Format : projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Si votre RagCorpus a été créé avec une configuration Vertex AI Feature Store et que ce champ n'a jamais été défini auparavant, vous pouvez le mettre à jour.

rag_vector_db.vertex_vector_search.index

string

Nom de la ressource de l'index Vector Search utilisé avec le corpus RAG.

Format : projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Si votre RagCorpus a été créé avec une configuration Vector Search et que ce champ n'a jamais été défini auparavant, vous pouvez le mettre à jour.

rag_vector_db.vertex_vector_search.index_endpoint

string

Nom de la ressource du point de terminaison de l'index Vector Search utilisé avec le corpus RAG.

Format : projects/{project}/locations/{location}/indexes/{index}

Si votre RagCorpus a été créé avec une configuration Vector Search et que ce champ n'a jamais été défini auparavant, vous pouvez le mettre à jour.

rag_vector_db.api_auth.api_key_config.api_key_secret_version

string

Nom complet de la ressource du secret stocké dans Secret Manager, qui contient votre clé API Weaviate ou Pinecone, selon la base de données vectorielle de votre choix.

Format : projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

Lister des corpus Rag

Ce tableau présente les paramètres utilisés pour lister des corpus RAG.

Paramètres

page_size

Facultatif : int

Taille de la page de la liste standard.

page_token

Facultatif : string

Jeton de la page de la liste standard. Généralement obtenu à partir de [ListRagCorporaResponse.next_page_token][] de l'appel [VertexRagDataService.ListRagCorpora][] précédent.

Obtenir un corpus RAG

Ce tableau présente les paramètres utilisés pour obtenir un corpus RAG.

Paramètres

name

string

Nom de la ressource RagCorpus. Format : projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

Supprimer un corpus RAG

Ce tableau présente les paramètres utilisés pour supprimer un corpus RAG.

Paramètres

name

string

Nom de la ressource RagCorpus. Format : projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

Paramètres de gestion des fichiers

Pour en savoir plus sur les fichiers RAG, consultez Gestion des fichiers.

Importer un fichier RAG

Ce tableau présente les paramètres utilisés pour importer un fichier RAG.

Corps de la requête
Paramètres

parent

string

Nom de la ressource RagCorpus. Format : projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

rag_file

Obligatoire : RagFile

Fichier à importer.

upload_rag_file_config

Obligatoire : UploadRagFileConfig

Configuration du RagFile à importer dans RagCorpus.

RagFile

display_name

Obligatoire : string

Nom à afficher du fichier RAG.

description

Facultatif : string

Description du fichier RAG.

UploadRagFileConfig

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

Nombre de jetons de chaque fragment.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

Chevauchement entre les fragments.

Importer des fichiers RAG

Ce tableau présente les paramètres utilisés pour importer un fichier RAG.

Paramètres

parent

Obligatoire : string

Nom de la ressource RagCorpus.

Format : projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

gcs_source

oneof import_source : GcsSource

Emplacement Cloud Storage.

Prend en charge l'importation de fichiers individuels et de répertoires Cloud Storage entiers.

gcs_source.uris

list de string

URI Cloud Storage contenant le fichier d'importation.

google_drive_source

oneof import_source : GoogleDriveSource

Emplacement Google Drive.

Prend en charge l'importation de fichiers individuels et de dossiers Google Drive.

slack_source

oneof import_source : SlackSource

Canal Slack sur lequel le fichier est importé.

jira_source

oneof import_source : JiraSource

Requête Jira dans laquelle le fichier est importé.

share_point_sources

oneof import_source : SharePointSources

Sources SharePoint vers lesquelles le fichier est importé.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

Nombre de jetons de chaque fragment.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

Chevauchement entre les fragments.

rag_file_parsing_config

Facultatif : RagFileParsingConfig

Spécifie la configuration d'analyse pour RagFiles.

Si ce champ n'est pas défini, le moteur RAG utilise l'analyseur par défaut.

max_embedding_requests_per_min

Facultatif : int32

Nombre maximal de requêtes par minute que ce job est autorisé à envoyer au modèle d'embedding spécifié sur le corpus. Cette valeur est spécifique à ce job et n'est pas partagée avec d'autres jobs d'importation. Consultez la page "Quotas" du projet pour définir une valeur appropriée.

Si aucune valeur n'est spécifiée, la valeur par défaut de 1 000 RPM est utilisée.

GoogleDriveSource

resource_ids.resource_id

Obligatoire : string

ID de la ressource Google Drive.

resource_ids.resource_type

Obligatoire : string

Type de la ressource Google Drive.

SlackSource

channels.channels

Répété : SlackSource.SlackChannels.SlackChannel

Informations sur le canal Slack, y compris l'ID et la période à importer.

channels.channels.channel_id

Obligatoire : string

ID du canal Slack.

channels.channels.start_time

Facultatif : google.protobuf.Timestamp

Code temporel de début des messages à importer.

channels.channels.end_time

Facultatif : google.protobuf.Timestamp

Code temporel de fin des messages à importer.

channels.api_key_config.api_key_secret_version

Obligatoire : string

Nom complet de la ressource du secret stocké dans Secret Manager, qui contient un jeton d'accès au canal Slack ayant accès aux ID de canal Slack.
Consultez la page https://api.slack.com/tutorials/tracks/getting-a-token.

Format : projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

JiraSource

jira_queries.projects

Répété : string

Liste des projets Jira à importer dans leur intégralité.

jira_queries.custom_queries

Répété : string

Liste des requêtes Jira personnalisées à importer. Pour en savoir plus sur le langage JQL (Jira Query Language), consultez
Assistance Jira.

jira_queries.email

Obligatoire : string

Adresse e-mail Jira.

jira_queries.server_uri

Obligatoire : string

URI du serveur Jira.

jira_queries.api_key_config.api_key_secret_version

Obligatoire : string

Nom complet de la ressource du secret stocké dans Secret Manager, qui contient la clé API Jira ayant accès aux ID de canal Slack.
Consultez la page https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account.

Format : projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

SharePointSources

share_point_sources.sharepoint_folder_path

oneof dans folder_source : string

Chemin d'accès au dossier SharePoint à partir duquel effectuer le téléchargement.

share_point_sources.sharepoint_folder_id

oneof dans folder_source : string

ID du dossier SharePoint à partir duquel effectuer le téléchargement.

share_point_sources.drive_name

oneof dans drive_source : string

Nom du Drive à partir duquel effectuer le téléchargement.

share_point_sources.drive_id

oneof dans drive_source : string

ID du Drive à partir duquel effectuer le téléchargement.

share_point_sources.client_id

string

ID de l'application enregistrée sur le portail Microsoft Azure.
L'application doit également être configurée avec les autorisations MS Graph Files.ReadAll, Sites.ReadAll et BrowserSiteLists.Read.All.

share_point_sources.client_secret.api_key_secret_version

Obligatoire : string

Nom complet de la ressource du secret stocké dans Secret Manager, qui contient le secret de l'application enregistrée dans Azure.

Format : projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

share_point_sources.tenant_id

string

Identifiant unique de l'instance Azure Active Directory.

share_point_sources.sharepoint_site_name

string

Nom du site SharePoint à partir duquel effectuer le téléchargement. Il peut s'agir du nom ou de l'ID du site.

RagFileParsingConfig

layout_parser

oneof parser : RagFileParsingConfig.LayoutParser

Analyseur de mise en page à utiliser pour les RagFile.

layout_parser.processor_name

string

Nom complet de la ressource d'un processeur Document AI ou d'une version de processeur.

Format :
projects/{project_id}/locations/{location}/processors/{processor_id}
projects/{project_id}/locations/{location}/processors/{processor_id}/processorVersions/{processor_version_id}

layout_parser.max_parsing_requests_per_min

string

Nombre maximal de requêtes que le job est autorisé à envoyer au processeur Document AI par minute.

Consultez la page https://cloud.google.com/document-ai/quotas et la page "Quota" de votre projet pour définir une valeur appropriée ici. Si aucune valeur n'est spécifiée, la valeur par défaut de 120 RPM est utilisée.

llm_parser

oneof parser : RagFileParsingConfig.LlmParser

Analyseur LLM à utiliser pour les RagFile.

llm_parser.model_name

string

Nom de ressource d'un modèle LLM.

Format :
projects/{project_id}/locations/{location}/publishers/{publisher}/models/{model}

llm_parser.max_parsing_requests_per_min

string

Nombre maximal de requêtes que le job est autorisé à envoyer au modèle LLM par minute.

Pour définir une valeur appropriée pour votre projet, consultez la section Quota de modèle et la page "Quota" de votre projet. Si aucune valeur n'est spécifiée, la valeur par défaut de 5 000 RPM est utilisée.

Obtenir un fichier RAG

Ce tableau présente les paramètres utilisés pour obtenir un fichier RAG.

Paramètres

name

string

Nom de la ressource RagFile. Format : projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Supprimer un fichier RAG

Ce tableau présente les paramètres utilisés pour supprimer un fichier RAG.

Paramètres

name

string

Nom de la ressource RagFile. Format : projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Paramètres de récupération et de prédiction

Cette section présente les paramètres de récupération et de prédiction.

Paramètres de récupération

Ce tableau présente les paramètres de l'API retrieveContexts.

Paramètres

parent

Obligatoire : string

Nom de ressource de l'emplacement de récupération des RagContexts.
Les utilisateurs doivent être autorisés à effectuer des appels dans le projet.

Format : projects/{project}/locations/{location}

vertex_rag_store

VertexRagStore

Source de données pour Vertex RagStore.

query

Obligatoire : RagQuery

Requête de récupération RAG unique.

VertexRagStore
VertexRagStore

rag_resources

Liste : RagResource

Représentation de la source RAG. Peut être utilisé pour spécifier le corpus uniquement ou des RagFile. Accepte un seul corpus ou plusieurs fichiers d'un même corpus.

rag_resources.rag_corpus

Facultatif : string

Nom de la ressource RagCorpora.

Format : projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

rag_resources.rag_file_ids

Liste : string

Liste des ressources RagFile.

Format : projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file}

RagQuery

text

string

Requête textuelle permettant d'obtenir des contextes pertinents.

rag_retrieval_config

Facultatif : RagRetrievalConfig

Configuration de récupération de la requête.

RagRetrievalConfig

top_k

Facultatif : int32

Nombre de contextes à récupérer.

hybrid_search.alpha

Facultatif : float

La valeur alpha contrôle la pondération entre les résultats de recherche vectorielle dense et creuse. La plage est comprise entre 0 et 1, où 0 signifie "recherche vectorielle creuse uniquement" et 1 signifie "recherche vectorielle dense uniquement". La valeur par défaut est 0,5, ce qui équilibre les recherches vectorielles creuses et denses.

La recherche hybride n'est disponible que pour Weaviate.

filter.vector_distance_threshold

oneof vector_db_threshold : double

Ne renvoie que les contextes pour lesquels la distance vectorielle est inférieure au seuil.

filter.vector_similarity_threshold

oneof vector_db_threshold : double

Ne renvoie que les contextes pour lesquels la similarité vectorielle est supérieure au seuil.

ranking.rank_service.model_name

Facultatif : string

Nom du modèle du service de classement.

Exemple : semantic-ranker-512@latest

ranking.llm_ranker.model_name

Facultatif : string

Nom du modèle utilisé pour le classement.

Exemple : gemini-2.5-flash

Paramètres de prédiction

Ce tableau présente les paramètres de prédiction.

GenerateContentRequest

tools.retrieval.vertex_rag_store

VertexRagStore

Paramètre défini pour utiliser une source de données alimentée par le magasin RAG Vertex AI.

Pour en savoir plus, consultez VertexRagStore.

Paramètres de gestion de projet

Ce tableau présente les paramètres au niveau du projet.

RagEngineConfig
Paramètres
RagManagedDbConfig.scaled Ce niveau offre des performances à l'échelle de la production ainsi qu'une fonctionnalité d'autoscaling.
RagManagedDbConfig.basic Ce niveau offre un niveau de calcul économique et faible.
RagManagedDbConfig.unprovisioned Ce niveau supprime RagManagedDb et son instance Spanner sous-jacente.

Exemples de gestion de corpus

Cette section fournit des exemples d'utilisation de l'API pour gérer votre corpus RAG.

Exemple de création d'un corpus RAG

Cet exemple de code montre comment créer un corpus RAG.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • CORPUS_DISPLAY_NAME : nom à afficher de RagCorpus.
  • CORPUS_DESCRIPTION : description du RagCorpus.

Méthode HTTP et URL :

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora

Corps JSON de la requête :

{
  "display_name" : "CORPUS_DISPLAY_NAME",
  "description": "CORPUS_DESCRIPTION",
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

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/ragCorpora" | Select-Object -Expand Content
Vous devriez recevoir un code d'état indiquant la réussite de l'opération (2xx).

L'exemple suivant montre comment créer un corpus RAG à l'aide de l'API REST.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  CORPUS_DISPLAY_NAME: The display name of the <code>RagCorpus</code>.
    // CreateRagCorpus
    // Input: LOCATION, PROJECT_ID, CORPUS_DISPLAY_NAME
    // Output: CreateRagCorpusOperationMetadata
    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
    -d '{
          "display_name" : "CORPUS_DISPLAY_NAME"
      }'

Exemple de mise à jour d'un corpus RAG

Vous pouvez modifier le nom à afficher, la description et la configuration de base de données vectorielle de votre corpus RAG. Toutefois, vous ne pouvez pas modifier les paramètres suivants dans votre corpus RAG :

  • Type de base de données vectorielle. Par exemple, vous ne pouvez pas remplacer la base de données vectorielle Weaviate par Vertex AI Feature Store.
  • Si vous utilisez l'option de base de données gérée, vous ne pouvez pas mettre à jour la configuration de la base de données vectorielle.

Ces exemples montrent comment mettre à jour un corpus RAG.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • CORPUS_ID : ID de votre corpus RAG.
  • CORPUS_DISPLAY_NAME : nom à afficher de RagCorpus.
  • CORPUS_DESCRIPTION : description du RagCorpus.
  • INDEX_NAME : nom de ressource de Vector Search Index. Format : projects/{project}/locations/{location}/indexes/{index}
  • INDEX_ENDPOINT_NAME : nom de ressource de Vector Search Index Endpoint. Format : projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Méthode HTTP et URL :

PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID

Corps JSON de la requête :

{
  "display_name" : "CORPUS_DISPLAY_NAME",
  "description": "CORPUS_DESCRIPTION",
  "rag_vector_db_config": {
     "vertex_vector_search": {
         "index": "INDEX_NAME",
         "index_endpoint": "INDEX_ENDPOINT_NAME",
     }
  }
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content
Vous devriez recevoir un code d'état indiquant la réussite de l'opération (2xx).

Exemple de listage de corpus RAG

Cet exemple de code montre comment lister tous les corpus RAG.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • PAGE_SIZE : taille de page de la liste standard. Vous pouvez ajuster le nombre de RagCorpora à renvoyer par page en modifiant le paramètre page_size.
  • PAGE_TOKEN : jeton de page de la liste standard. Généralement obtenu à l'aide de ListRagCorporaResponse.next_page_token de l'appel VertexRagDataService.ListRagCorpora précédent.

Méthode HTTP et URL :

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

PowerShell

Exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
Vous devriez recevoir un code d'état indiquant le succès de l'opération (`2xx`), ainsi qu'une liste de RagCorpora sous le PROJECT_ID donné.

Exemple d'obtention d'un corpus RAG

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • RAG_CORPUS_ID : ID de la ressource RagCorpus.

Méthode HTTP et URL :

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

PowerShell

Exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
Une réponse réussie renvoie la ressource RagCorpus.

Les commandes get et list sont utilisées dans cet exemple pour montrer comment RagCorpus utilise le champ rag_embedding_model_config dans vector_db_config, qui pointe vers le modèle d'embedding que vous avez choisi.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
// GetRagCorpus
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

// ListRagCorpora
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/

Exemple de suppression d'un corpus RAG

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • RAG_CORPUS_ID : ID de la ressource RagCorpus.

Méthode HTTP et URL :

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

PowerShell

Exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
Une réponse réussie renvoie DeleteOperationMetadata.

Exemples de gestion de fichiers

Cette section fournit des exemples d'utilisation de l'API pour gérer des fichiers RAG.

Exemple d'importation d'un fichier RAG

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  LOCAL_FILE_PATH: The local path to the file to be uploaded.
  DISPLAY_NAME: The display name of the RAG file.
  DESCRIPTION: The description of the RAG file.

Pour envoyer votre requête, utilisez la commande suivante :

  curl -X POST \
    -H "X-Goog-Upload-Protocol: multipart" \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -F metadata="{'rag_file': {'display_name':' DISPLAY_NAME', 'description':'DESCRIPTION'}}" \
    -F file=@LOCAL_FILE_PATH \
    "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"

Exemple d'importation de fichiers RAG

Vous pouvez importer des fichiers et des dossiers depuis Drive ou Cloud Storage.

response.skipped_rag_files_count fait référence au nombre de fichiers ignorés lors de l'importation. Un fichier est ignoré lorsque les conditions suivantes sont remplies :

  1. Le fichier a déjà été importé.
  2. Le fichier n'a pas changé.
  3. La configuration de fragmentation du fichier n'a pas changé.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • RAG_CORPUS_ID : ID de la ressource RagCorpus.
  • GCS_URIS : liste d'emplacements Cloud Storage. Exemple : gs://my-bucket1, gs://my-bucket2.
  • CHUNK_SIZE(facultatif) : nombre de jetons que chaque fragment doit avoir.
  • CHUNK_OVERLAP (facultatif) : nombre de chevauchements de jetons entre les fragments.

Méthode HTTP et URL :

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

Corps JSON de la requête :

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_chunking_config": {
      "chunk_size": CHUNK_SIZE,
      "chunk_overlap": CHUNK_OVERLAP
    }
  }
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

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/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
Une réponse réussie renvoie la ressource ImportRagFilesOperationMetadata.

L'exemple suivant montre comment importer un fichier depuis Cloud Storage. Utilisez le champ de contrôle max_embedding_requests_per_min pour limiter la fréquence à laquelle le moteur RAG appelle le modèle d'embedding au cours du processus d'indexation ImportRagFiles. La valeur par défaut du champ est de 1000 appels par minute.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  GCS_URIS: A list of Cloud Storage locations. Example: gs://my-bucket1.
  CHUNK_SIZE: Number of tokens each chunk should have.
  CHUNK_OVERLAP: Number of tokens overlap between chunks.
  EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: LOCATION, 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://LOCATION-aiplatform.googleapis.com/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": CHUNK_SIZE,
      "chunk_overlap": CHUNK_OVERLAP
    },
    "max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
  }
}'

// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID

L'exemple suivant montre comment importer un fichier depuis Drive. Utilisez le champ de contrôle max_embedding_requests_per_min pour limiter la fréquence à laquelle le moteur RAG appelle le modèle d'embedding au cours du processus d'indexation ImportRagFiles. La valeur par défaut du champ est de 1000 appels par minute.

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  FOLDER_RESOURCE_ID: The resource ID of your Google Drive folder.
  CHUNK_SIZE: Number of tokens each chunk should have.
  CHUNK_OVERLAP: Number of tokens overlap between chunks.
  EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: LOCATION, 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://LOCATION-aiplatform.googleapis.com/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: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID

Exemple de listage de fichiers RAG

Cet exemple de code montre comment lister des fichiers RAG.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • RAG_CORPUS_ID : ID de la ressource RagCorpus.
  • PAGE_SIZE : taille de page de la liste standard. Vous pouvez ajuster le nombre de RagFiles à renvoyer par page en modifiant le paramètre page_size.
  • PAGE_TOKEN : jeton de page de la liste standard. Généralement obtenu à l'aide de ListRagFilesResponse.next_page_token de l'appel VertexRagDataService.ListRagFiles précédent.

Méthode HTTP et 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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"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

Exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

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
Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une liste de RagFiles sous le RAG_CORPUS_ID donné.

Exemple d'obtention d'un fichier RAG

Cet exemple de code montre comment obtenir un fichier RAG.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • RAG_CORPUS_ID : ID de la ressource RagCorpus.
  • RAG_FILE_ID : ID de la ressource RagFile.

Méthode HTTP et URL :

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

Exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

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
Une réponse réussie renvoie la ressource RagFile.

Exemple de suppression d'un fichier RAG

Cet exemple de code montre comment supprimer un fichier RAG.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • RAG_CORPUS_ID : ID de la ressource RagCorpus.
  • RAG_FILE_ID : ID de la ressource RagFile. Format : projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}.

Méthode HTTP et URL :

DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

Exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

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
Une réponse réussie renvoie la ressource DeleteOperationMetadata.

Exemple de requête de récupération

Lorsqu'un utilisateur pose une question ou fournit une requête, le composant de récupération de RAG effectue une recherche dans sa base de connaissances afin de trouver des informations pertinentes pour la requête.

REST

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • LOCATION : région dans laquelle traiter la requête.
  • PROJECT_ID : ID de votre projet.
  • RAG_CORPUS_RESOURCE : nom de la ressource RagCorpus. Format : projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • VECTOR_DISTANCE_THRESHOLD : seuls les contextes dont la distance vectorielle est inférieure au seuil sont renvoyés.
  • TEXT : texte de requête permettant d'obtenir des contextes pertinents.
  • SIMILARITY_TOP_K : nombre de contextes principaux à récupérer.

Méthode HTTP et URL :

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts

Corps JSON de la requête :

{
 "vertex_rag_store": {
    "rag_resources": {
      "rag_corpus": "RAG_CORPUS_RESOURCE"
    },
    "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD
  },
  "query": {
   "text": "TEXT",
   "similarity_top_k": SIMILARITY_TOP_K
  }
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"

PowerShell

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

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
Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une liste des RagFiles associés.

Exemple de génération

Le LLM génère une réponse ancrée à l'aide des contextes récupérés.

REST

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • MODEL_ID : modèle LLM pour la génération de contenu. Par exemple : gemini-2.5-flash
  • GENERATION_METHOD : méthode LLM pour la génération de contenu. Options : generateContent, streamGenerateContent
  • INPUT_PROMPT : texte envoyé au LLM pour la génération de contenu. Essayez d'utiliser un prompt pertinent pour les fichiers rag importés.
  • RAG_CORPUS_RESOURCE : nom de la ressource RagCorpus. Format : projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
  • SIMILARITY_TOP_K (facultatif) : nombre de contextes principaux à récupérer.
  • VECTOR_DISTANCE_THRESHOLD (facultatif) : seuls les contextes dont la distance vectorielle est inférieure au seuil sont renvoyés.

Méthode HTTP et URL :

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD

Corps JSON de la requête :

{
 "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
   }
  }
 }
}

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

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
Une réponse réussie renvoie le contenu généré avec des citations.

Exemples de gestion de projets

Il s'agit d'un paramètre au niveau du projet disponible sous la ressource RagEngineConfig. Il a un impact sur les corpus RAG utilisant RagManagedDb. Pour obtenir la configuration du niveau, utilisez GetRagEngineConfig. Pour mettre à jour la configuration du niveau, utilisez UpdateRagEngineConfig.

Pour en savoir plus sur la gestion de la configuration de votre niveau, consultez Gérer votre niveau.

Obtenir la configuration du projet

L'exemple de code suivant montre comment lire votre RagEngineConfig :

Console

  1. Dans la console Google Cloud , accédez à la page RAG Engine.

    Accéder au moteur RAG

  2. Sélectionnez la région dans laquelle votre moteur RAG est en cours d'exécution. Votre liste de corpus RAG est mise à jour.
  3. Cliquez sur Configurer le moteur RAG. Le volet Configurer le moteur RAG s'affiche. Vous pouvez voir le niveau sélectionné pour votre moteur RAG.
  4. Cliquez sur Annuler.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config = rag.rag_data.get_rag_engine_config(
    name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"
)

print(rag_engine_config)

REST

curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig

Mettre à jour la configuration du projet

Cette section fournit des exemples de code pour montrer comment modifier votre niveau dans la configuration.

Passer à l'édition Scaled de RagEngineConfig

Les exemples de code suivants montrent comment définir RagEngineConfig sur le niveau "Avec scaling" :

Console

  1. Dans la console Google Cloud , accédez à la page RAG Engine.

    Accéder au moteur RAG

  2. Sélectionnez la région dans laquelle votre moteur RAG est en cours d'exécution. Votre liste de corpus RAG est mise à jour.
  3. Cliquez sur Configurer le moteur RAG. Le volet Configurer le moteur RAG s'affiche.
  4. Sélectionnez le niveau sur lequel vous souhaitez exécuter votre moteur RAG.
  5. Cliquez sur Enregistrer.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"

new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Scaled()),
)

updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)

print(updated_rag_engine_config)

REST

curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'scaled': {}}}"

Passer à l'édition Basic de RagEngineConfig

Les exemples de code suivants montrent comment définir RagEngineConfig sur le niveau de base :

Si vous disposez d'une grande quantité de données dans votre RagManagedDb pour vos corpus RAG, le passage à un forfait de base peut échouer en raison d'une capacité de calcul et de stockage insuffisante.

Console

  1. Dans la console Google Cloud , accédez à la page RAG Engine.

    Accéder au moteur RAG

  2. Sélectionnez la région dans laquelle votre moteur RAG est en cours d'exécution. Votre liste de corpus RAG est mise à jour.
  3. Cliquez sur Configurer le moteur RAG. Le volet Configurer le moteur RAG s'affiche.
  4. Sélectionnez le niveau sur lequel vous souhaitez exécuter votre moteur RAG.
  5. Cliquez sur Enregistrer.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"

new_rag_engine_config = rag.RagEngineConfig(
name=rag_engine_config_name,
rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Basic()),
)

updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
rag_engine_config=new_rag_engine_config
)

print(updated_rag_engine_config)

REST

curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'basic': {}}}"

Passer votre RagEngineConfig au niveau "Non provisionné"

Les exemples de code suivants montrent comment définir RagEngineConfig sur le niveau "Non provisionné" :

Console

  1. Dans la console Google Cloud , accédez à la page RAG Engine.

    Accéder au moteur RAG

  2. Sélectionnez la région dans laquelle votre moteur RAG est en cours d'exécution. Votre liste de corpus RAG est mise à jour.
  3. Cliquez sur Configurer le moteur RAG. Le volet Configurer le moteur RAG s'affiche.
  4. Cliquez sur Supprimer le moteur RAG. Une boîte de dialogue de confirmation s'affiche.
  5. Vérifiez que vous êtes sur le point de supprimer vos données dans RAG Engine en saisissant delete, puis cliquez sur Confirmer.
  6. Cliquez sur Enregistrer.

Python

from vertexai import rag
import vertexai

PROJECT_ID = YOUR_PROJECT_ID
LOCATION = YOUR_RAG_ENGINE_LOCATION

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)

rag_engine_config_name=f"projects/{PROJECT_ID}/locations/{LOCATION}/ragEngineConfig"

new_rag_engine_config = rag.RagEngineConfig(
  name=rag_engine_config_name,
  rag_managed_db_config=rag.RagManagedDbConfig(tier=rag.Unprovisioned()),
)

updated_rag_engine_config = rag.rag_data.update_rag_engine_config(
  rag_engine_config=new_rag_engine_config
)

print(updated_rag_engine_config)

REST

curl -X PATCH \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragEngineConfig -d "{'ragManagedDbConfig': {'unprovisioned': {}}}"

Étapes suivantes