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.

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

display_name

Obligatoire : string

Nom à afficher du corpus RAG.

description

Facultatif : string

Description du corpus RAG.

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}

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.

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_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 Pinecone.

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.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_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 Pinecone.

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.

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}

Récupération et 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.

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.0-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.

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

Ces exemples de code montrent 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 du corpus RAG.
  • CORPUS_DESCRIPTION : description du corpus RAG.

Méthode HTTP et URL :

POST https://LOCATION-aiplatform.googleapis.com/v1/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 et 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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"

Powershell

Enregistrez le corps de la requête dans un fichier nommé request.json et 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/v1/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.

  // 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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
  -d '{
        "display_name" : "CORPUS_DISPLAY_NAME"
    }'

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# display_name = "test_corpus"
# description = "Corpus Description"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

# Configure backend_config
backend_config = rag.RagVectorDbConfig(
    rag_embedding_model_config=rag.RagEmbeddingModelConfig(
        vertex_prediction_endpoint=rag.VertexPredictionEndpoint(
            publisher_model="publishers/google/models/text-embedding-005"
        )
    )
)

corpus = rag.create_corpus(
    display_name=display_name,
    description=description,
    backend_config=backend_config,
)
print(corpus)
# Example response:
# RagCorpus(name='projects/1234567890/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description', embedding_model_config=...
# ...

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 du corpus RAG.
  • CORPUS_DESCRIPTION : description du corpus RAG.
  • INDEX_NAME : nom de la ressource de l'index Vector Search. Format : projects/{project}/locations/{location}/indexes/{index}.
  • INDEX_ENDPOINT_NAME : nom de la ressource du point de terminaison de l'index Vector Search. Format : projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}.

Méthode HTTP et URL :

PATCH https://LOCATION-aiplatform.googleapis.com/v1/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 et 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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID"

Powershell

Enregistrez le corps de la requête dans un fichier nommé request.json et 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/v1/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

Ces exemples de code montrent 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 la page de la liste standard. Vous pouvez ajuster le nombre de corpus RAG à renvoyer par page en mettant à jour le paramètre page_size.
  • PAGE_TOKEN : jeton de la 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/v1/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/v1/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/v1/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) et une liste de corpus RAG sous le PROJECT_ID donné.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

corpora = rag.list_corpora()
print(corpora)
# Example response:
# ListRagCorporaPager<rag_corpora {
#   name: "projects/[PROJECT_ID]/locations/us-central1/ragCorpora/2305843009213693952"
#   display_name: "test_corpus"
#   create_time {
# ...

Exemple d'obtention d'un corpus RAG

Ces exemples de code montrent comment obtenir 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 du corpus RAG.

Méthode HTTP et URL :

GET https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/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.
  ```

```sh
  // 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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/
  ```

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

corpus = rag.get_corpus(name=corpus_name)
print(corpus)
# Example response:
# RagCorpus(name='projects/[PROJECT_ID]/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description',
# ...

Exemple de suppression d'un corpus RAG

Ces exemples de code montrent comment supprimer 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/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content

Une réponse réussie renvoie DeleteOperationMetadata.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag.delete_corpus(name=corpus_name)
print(f"Corpus {corpus_name} deleted.")
# Example response:
# Successfully deleted the RagCorpus.
# Corpus projects/[PROJECT_ID]/locations/us-central1/ragCorpora/123456789012345 deleted.

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

Ces exemples de code montrent comment importer 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 votre corpus RAG.
  • LOCAL_FILE_PATH : chemin d'accès local au fichier à importer.
  • DISPLAY_NAME : nom à afficher du fichier RAG.
  • DESCRIPTION : description du fichier RAG.

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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
# path = "path/to/local/file.txt"
# display_name = "file_display_name"
# description = "file description"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_file = rag.upload_file(
    corpus_name=corpus_name,
    path=path,
    display_name=display_name,
    description=description,
)
print(rag_file)
# RagFile(name='projects/[PROJECT_ID]/locations/us-central1/ragCorpora/1234567890/ragFiles/09876543',
#  display_name='file_display_name', description='file description')

Exemple d'importation de fichiers RAG

Vous pouvez importer des fichiers et des dossiers depuis Drive ou Cloud Storage. Vous pouvez utiliser response.metadata pour afficher les échecs partiels, le temps de requête et le temps de réponse dans l'objet response du SDK.

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 votre corpus RAG.
  • FOLDER_RESOURCE_ID : ID de ressource de votre dossier Drive.
  • GCS_URIS : liste d'emplacements Cloud Storage. Exemple : gs://my-bucket1.
  • CHUNK_SIZE : nombre de jetons que chaque fragment doit avoir.
  • CHUNK_OVERLAP : nombre de chevauchements de jetons entre deux fragments.
  • EMBEDDING_MODEL_QPM_RATE : taux de RPM pour limiter l'accès du RAG à votre modèle d'embedding. Exemple : 1 000.

Méthode HTTP et URL :

POST https://LOCATION-aiplatform.googleapis.com/v1/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 et 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/v1/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 et 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/v1/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 : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • RAG_CORPUS_ID : ID de votre corpus RAG.
  • GCS_URIS : liste d'emplacements Cloud Storage. Exemple : gs://my-bucket1.
  • CHUNK_SIZE : nombre de jetons que chaque fragment doit avoir.
  • CHUNK_OVERLAP : nombre de chevauchements de jetons entre deux fragments.
  • EMBEDDING_MODEL_QPM_RATE : taux de RPM pour limiter l'accès des RAG à votre modèle d'embedding. Exemple : 1 000.
// 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/v1/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
  }
}'

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 : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • RAG_CORPUS_ID : ID de votre corpus RAG.
  • FOLDER_RESOURCE_ID : ID de ressource de votre dossier Drive.
  • CHUNK_SIZE : nombre de jetons que chaque fragment doit avoir.
  • CHUNK_OVERLAP : nombre de chevauchements de jetons entre deux fragments.
  • EMBEDDING_MODEL_QPM_RATE : taux de RPM pour limiter l'accès du RAG à votre modèle d'embedding. Exemple : 1 000.
// 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/v1/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
  }
}'

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"
# paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]  # Supports Google Cloud Storage and Google Drive Links

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.import_files(
    corpus_name=corpus_name,
    paths=paths,
    transformation_config=rag.TransformationConfig(
        rag.ChunkingConfig(chunk_size=512, chunk_overlap=100)
    ),
    import_result_sink="gs://sample-existing-folder/sample_import_result_unique.ndjson",  # Optional, this has to be an existing storage bucket folder, and file name has to be unique (non-existent).
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.

Exemple de listage de fichiers RAG

Ces exemples de code montrent 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 la page de la liste standard. Vous pouvez ajuster le nombre de RagFiles à renvoyer par page en mettant à jour le paramètre page_size.
  • PAGE_TOKEN : jeton de la page de la liste standard. 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/v1/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/v1/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/v1/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é.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

files = rag.list_files(corpus_name=corpus_name)
for file in files:
    print(file.display_name)
    print(file.name)
# Example response:
# g-drive_file.txt
# projects/1234567890/locations/us-central1/ragCorpora/111111111111/ragFiles/222222222222
# g_cloud_file.txt
# projects/1234567890/locations/us-central1/ragCorpora/111111111111/ragFiles/333333333333

Exemple d'obtention d'un fichier RAG

Ces exemples de code montrent 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/v1/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/v1/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/v1/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.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# file_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}/ragFiles/{rag_file_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_file = rag.get_file(name=file_name)
print(rag_file)
# Example response:
# RagFile(name='projects/1234567890/locations/us-central1/ragCorpora/11111111111/ragFiles/22222222222',
# display_name='file_display_name', description='file description')

Exemple de suppression d'un fichier RAG

Ces exemples de code montrent 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 du corpus RAG.
  • RAG_FILE_ID : ID de la ressource du fichier RAG. Format : projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}.

Méthode HTTP et URL :

DELETE https://LOCATION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# file_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}/ragFiles/{rag_file_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag.delete_file(name=file_name)
print(f"File {file_name} deleted.")
# Example response:
# Successfully deleted the RagFile.
# File projects/1234567890/locations/us-central1/ragCorpora/1111111111/ragFiles/2222222222 deleted.

Requête de récupération

Lorsqu'un utilisateur pose une question ou fournit une requête, le composant de récupération du 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, effectuez les remplacements suivants :

  • PROJECT_ID : ID de votre projet.
  • LOCATION : région dans laquelle traiter la requête.
  • 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 la requête permettant d'obtenir les contextes pertinents.
  • SIMILARITY_TOP_K : nombre de contextes principaux à récupérer.

Méthode HTTP et URL :

POST https://LOCATION-aiplatform.googleapis.com/v1/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
  }
}

curl

Enregistrez le corps de la requête dans un fichier nommé request.json et 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/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"

Powershell

Enregistrez le corps de la requête dans un fichier nommé request.json et 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/v1/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.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/[PROJECT_ID]/locations/us-central1/ragCorpora/[rag_corpus_id]"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.retrieval_query(
    rag_resources=[
        rag.RagResource(
            rag_corpus=corpus_name,
            # Optional: supply IDs from `rag.list_files()`.
            # rag_file_ids=["rag-file-1", "rag-file-2", ...],
        )
    ],
    text="Hello World!",
    rag_retrieval_config=rag.RagRetrievalConfig(
        top_k=10,
        filter=rag.utils.resources.Filter(vector_distance_threshold=0.5),
    ),
)
print(response)
# Example response:
# contexts {
#   contexts {
#     source_uri: "gs://your-bucket-name/file.txt"
#     text: "....
#   ....

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 : LLM pour la génération de contenu. Exemple : gemini-2.0-flash-001.
  • 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 une requête pertinente 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.
  • USER : votre nom d'utilisateur.

Méthode HTTP et URL :

POST https://LOCATION-aiplatform.googleapis.com/v1/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 et 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/v1/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 et 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/v1/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.

Python

Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez Installer le SDK Vertex AI pour Python. Pour en savoir plus, lisez la documentation de référence de l'API SDK Vertex AI pour Python.


from vertexai import rag
from vertexai.generative_models import GenerativeModel, Tool
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_retrieval_tool = Tool.from_retrieval(
    retrieval=rag.Retrieval(
        source=rag.VertexRagStore(
            rag_resources=[
                rag.RagResource(
                    rag_corpus=corpus_name,
                    # Optional: supply IDs from `rag.list_files()`.
                    # rag_file_ids=["rag-file-1", "rag-file-2", ...],
                )
            ],
            rag_retrieval_config=rag.RagRetrievalConfig(
                top_k=10,
                filter=rag.utils.resources.Filter(vector_distance_threshold=0.5),
            ),
        ),
    )
)

rag_model = GenerativeModel(
    model_name="gemini-2.0-flash-001", tools=[rag_retrieval_tool]
)
response = rag_model.generate_content("Why is the sky blue?")
print(response.text)
# Example response:
#   The sky appears blue due to a phenomenon called Rayleigh scattering.
#   Sunlight, which contains all colors of the rainbow, is scattered
#   by the tiny particles in the Earth's atmosphere....
#   ...

Étapes suivantes