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). Le moteur RAG permet aux grands modèles de langage (LLM) d'accéder aux données de sources de connaissances externes, telles que des documents et des bases de données, et de les intégrer. En utilisant le RAG, les LLM peuvent générer des réponses plus précises et informatives.
Exemple de syntaxe
Cette section fournit la syntaxe permettant de créer un corpus RAG.
curl
PROJECT_ID: Your project ID. LOCATION: The region to process the request. 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" : "...", "description": "..." }'
Python
corpus = rag.create_corpus(display_name=..., description=...) print(corpus)
Liste des paramètres
Cette section répertorie les éléments suivants:
Paramètres | Examples |
---|---|
Consultez la section Paramètres de gestion des corpus. | Consultez les exemples de gestion de corpus. |
Consultez la section Paramètres de gestion des fichiers. | Consultez la section Exemples de gestion de fichiers. |
Paramètres de gestion des corpus
Pour en savoir plus concernant un corpus de RAG, consultez la page Gestion des corpus.
Créer un corpus de RAG
Ce tableau répertorie les paramètres utilisés pour créer un corpus RAG.
Corps de la requête
Paramètres | |
---|---|
|
Requis : Nom à afficher du corpus RAG. |
|
Facultatif : Description du corpus RAG. |
|
Facultatif: immuable: Configuration des bases de données Vector. |
RagVectorDbConfig
Paramètres | |
---|---|
|
Si aucune base de données vectorielle n'est spécifiée, |
|
Spécifie votre instance Pinecone. |
|
Il s'agit du nom utilisé pour créer l'index Pinecone utilisé avec le corpus RAG. Une fois définie, cette valeur ne peut plus être modifiée. Vous pouvez le laisser vide dans l'appel d'API |
|
Indique votre instance Vertex Vector Search. |
|
Il s'agit du nom de la ressource de l'index de recherche vectorielle utilisé avec le corpus RAG. Format : Une fois définie, cette valeur ne peut plus être modifiée. Vous pouvez le laisser vide dans l'appel d'API |
|
Il s'agit du nom de la ressource du point de terminaison de l'index Vector Search utilisé avec le corpus RAG. Format : Une fois définie, cette valeur ne peut plus être modifiée. Vous pouvez le laisser vide dans l'appel d'API |
|
Il s'agit du nom complet de la ressource du secret stocké dans Secret Manager, qui contient votre clé API Pinecone. Format : Vous pouvez le laisser vide dans l'appel d'API |
|
Facultatif: immuable: Modèle d'embedding à utiliser pour le corpus RAG. Une fois définie, cette valeur ne peut plus être modifiée. Si vous le laissez vide, nous utilisons text-embedding-004 comme modèle d'embedding. |
Mettre à jour un corpus de RAG
Ce tableau liste les paramètres utilisés pour mettre à jour un corpus RAG.
Corps de la requête
Paramètres | |
---|---|
|
Facultatif : Nom à afficher du corpus RAG. |
|
Facultatif : Description du corpus RAG. |
|
Il s'agit du nom utilisé pour créer l'index Pinecone utilisé avec le corpus RAG. Si votre |
|
Il s'agit du nom de la ressource de l'index de recherche vectorielle utilisé avec le corpus RAG. Format : Si votre |
|
Il s'agit du nom de la ressource du point de terminaison de l'index Vector Search utilisé avec le corpus RAG. Format : Si votre |
|
Nom complet de la ressource du secret stocké dans Secret Manager, qui contient votre clé API Pinecone. Format : |
Lister les corpus RAG
Ce tableau répertorie les paramètres utilisés pour lister les corpus RAG.
Paramètres | |
---|---|
|
Facultatif : La taille de page de la liste standard. |
|
Facultatif : Le jeton de page de la liste standard. Généralement obtenu à partir de |
Obtenir un corpus de RAG
Ce tableau répertorie les paramètres utilisés pour obtenir un corpus RAG.
Paramètres | |
---|---|
|
Nom de la ressource |
Supprimer un corpus de RAG
Ce tableau liste les paramètres utilisés pour supprimer un corpus RAG.
Paramètres | |
---|---|
|
Nom de la ressource |
Paramètres de gestion des fichiers
Pour en savoir plus concernant un fichier de RAG, consultez la page Gestion des fichiers.
Transférer un fichier RAG
Ce tableau liste les paramètres utilisés pour importer un fichier RAG.
Corps de la requête
Paramètres | |
---|---|
|
Nom de la ressource |
|
Requis : Fichier à importer. |
|
Requis : Configuration du |
RagFile |
|
---|---|
|
Requis : Nom à afficher du fichier RAG. |
|
Facultatif : Description du fichier RAG. |
UploadRagFileConfig |
|
---|---|
|
Nombre de jetons de chaque fragment. |
|
Chevauchement entre les segments. |
Importer des fichiers RAG
Ce tableau liste les paramètres utilisés pour importer un fichier RAG.
Paramètres | |
---|---|
|
Requis : Nom de la ressource Format : |
|
Emplacement Cloud Storage. Permet d'importer des fichiers individuels ainsi que des répertoires Cloud Storage entiers. |
|
URI de stockage Cloud Storage contenant le fichier d'importation. |
|
Emplacement de Google Drive Permet d'importer des fichiers individuels ainsi que des dossiers Google Drive. |
|
Le canal Slack sur lequel le fichier est importé. |
|
Requête Jira dans laquelle le fichier est importé. |
|
Sources SharePoint dans lesquelles le fichier est importé. |
|
Nombre de jetons de chaque fragment. |
|
Chevauchement entre les segments. |
|
Facultatif : Nombre maximal de requêtes par minute que cette tâche est autorisée à envoyer au modèle d'encapsulation spécifié dans le corpus. Cette valeur est spécifique à cette tâche et n'est pas partagée avec d'autres tâches d'importation. Consultez la page "Quotas" du projet pour définir une valeur appropriée. Si aucune valeur n'est spécifiée, une valeur par défaut de 1 000 QPM est utilisée. |
GoogleDriveSource |
|
---|---|
|
Requis : ID de la ressource Google Drive. |
|
Requis : Type de la ressource Google Drive. |
SlackSource |
|
---|---|
|
Répétition: Informations sur le canal Slack, y compris l'ID et la période à importer. |
|
Requis : ID du canal Slack. |
|
Facultatif : Code temporel de début des messages à importer. |
|
Facultatif : Code temporel de fin des messages à importer. |
|
Requis : 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.
Format : |
JiraSource |
|
---|---|
|
Répétition: Liste des projets Jira à importer dans leur intégralité. |
|
Répétition: Liste des requêtes Jira personnalisées à importer. Pour en savoir plus sur le langage JQL (Jira Query Language), consultez la page |
|
Requis : Adresse e-mail Jira. |
|
Requis : URI du serveur Jira. |
|
Requis : Nom complet de la ressource du secret stocké dans Secret Manager, qui contient la clé API Jira ayant accès aux ID de canaux Slack.
Format : |
SharePointSources |
|
---|---|
|
Chemin d'accès du dossier SharePoint à partir duquel effectuer le téléchargement. |
|
ID du dossier SharePoint à partir duquel effectuer le téléchargement. |
|
Nom du disque à partir duquel effectuer le téléchargement. |
|
ID du disque à partir duquel effectuer le téléchargement. |
|
ID de l'application enregistrée sur le portail Microsoft Azure.
|
|
Requis : Nom de ressource complet du secret stocké dans Secret Manager, qui contient le secret de l'application pour l'application enregistrée dans Azure. Format : |
|
Identifiant unique de l'instance Azure Active Directory. |
|
Nom du site SharePoint à partir duquel effectuer le téléchargement. Il peut s'agir du nom ou de l'ID du site. |
Obtenir un fichier RAG
Ce tableau répertorie les paramètres utilisés pour obtenir un fichier RAG.
Paramètres | |
---|---|
|
Nom de la ressource |
Supprimer un fichier RAG
Ce tableau répertorie les paramètres utilisés pour supprimer un fichier RAG.
Paramètres | |
---|---|
|
Nom de la ressource |
Récupération et prédiction
Cette section liste les paramètres de récupération et de prédiction.
Paramètres de récupération
Ce tableau répertorie les paramètres de l'API RetrieveContexts
.
Paramètres | |
---|---|
|
Requis : Nom de la ressource de l'emplacement à partir duquel récupérer Format : |
|
Source de données de Vertex RagStore. |
|
Requis : Requête de récupération RAG unique. |
VertexRagStore
VertexRagStore |
|
---|---|
|
liste: Représentation de la source RAG. Il peut être utilisé pour spécifier uniquement le corpus ou des |
|
Facultatif : Nom de la ressource Format : |
|
liste: Liste des ressources Format : |
RagQuery |
|
---|---|
|
Requête au format texte permettant d'obtenir des contextes pertinents. |
|
Facultatif : Configuration de récupération de la requête. |
RagRetrievalConfig |
|
---|---|
|
Facultatif : Nombre de contextes à récupérer. |
|
Ne renvoie que les contextes dont la distance vectorielle est inférieure au seuil. |
|
Ne renvoie que les contextes pour lesquels la similarité vectorielle est supérieure au seuil. |
Paramètres de prédiction
Ce tableau présente les paramètres de prédiction.
GenerateContentRequest |
|
---|---|
|
Défini pour utiliser une source de données alimentée par le 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.
Créer un exemple de corpus RAG
Ces exemples de code montrent comment créer un corpus RAG.
REST
Avant d'utiliser les données de requête ci-dessous, 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, 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/v1/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/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 la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
- 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.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
display_name = "CORPUS_DISPLAY_NAME"
description = "CORPUS_DESCRIPTION"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
# Configure embedding model
embedding_model_config = rag.EmbeddingModelConfig(
publisher_model="publishers/google/models/text-embedding-004"
)
corpus = rag.create_corpus(
display_name=display_name,
description=description,
embedding_model_config=embedding_model_config,
)
print(corpus)
# Example response:
# RagCorpus(name='projects/1234567890/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description', embedding_model_config=...
# ...
Mettre à jour un exemple de corpus de RAG
Vous pouvez mettre à jour votre corpus RAG avec un nouveau nom à afficher, une nouvelle description et une nouvelle configuration de la base de données de vecteurs. 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 de 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 ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID: ID de votre projet.
- LOCATION: région dans laquelle traiter la requête.
- CORPUS_ID: ID du corpus 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, 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/v1/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/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 liste de corpus RAG
Ces exemples de code montrent comment lister tous les corpus RAG.
REST
Avant d'utiliser les données de requête ci-dessous, 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 corpus RAG à renvoyer par page en mettant à jour le paramètre
page_size
. - PAGE_TOKEN: jeton de page de liste standard. Généralement obtenu à l'aide de
ListRagCorporaResponse.next_page_token
de l'appelVertexRagDataService.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 la réussite 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 la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
LOCATION = "us-central1"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
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 {
# ...
Obtenir un exemple de corpus de RAG
Ces exemples de code montrent comment obtenir un corpus RAG.
REST
Avant d'utiliser les données de requête ci-dessous, 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 un exemple pour montrer comment RagCorpus
utilise le champ rag_embedding_model_config
dans vector_db_config
, qui pointe vers le modèle d'encapsulation 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 la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
- 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.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"
corpus_name = "projects/{PROJECT_ID}/locations/{LOCATION}/ragCorpora/{rag_corpus_id}"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
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 de RAG
Ces exemples de code montrent comment supprimer un corpus RAG.
REST
Avant d'utiliser les données de requête ci-dessous, 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 le DeleteOperationMetadata
.
Python
Pour savoir comment installer ou mettre à jour le SDK Vertex AI pour Python, consultez la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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. import rag
Exemples de gestion de fichiers
Cette section fournit des exemples d'utilisation de l'API pour gérer les fichiers RAG.
Importer un exemple de fichier RAG
Ces exemples de code montrent comment importer un fichier RAG.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID: ID de votre projet.
- LOCATION: région dans laquelle traiter la requête.
- RAG_CORPUS_ID: ID du corpus 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 la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
- PROJECT_ID: ID de votre projet.
- LOCATION: région dans laquelle traiter la requête.
- RAG_CORPUS_ID: ID du corpus 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.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/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="LOCATION")
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:
- Le fichier a déjà été importé.
- Le fichier n'a pas été modifié.
- La configuration de fragmentation du fichier n'a pas changé.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- PROJECT_ID: ID de votre projet.
- LOCATION: région dans laquelle traiter la requête.
- RAG_CORPUS_ID: ID du corpus 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 les fragments.
- EMBEDDING_MODEL_QPM_RATE: taux de QPM pour limiter l'accès de 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, 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/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, 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/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 du corpus 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 les fragments.
- EMBEDDING_MODEL_QPM_RATE: taux de QPM 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 du corpus 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 les fragments.
- EMBEDDING_MODEL_QPM_RATE: taux de QPM pour limiter l'accès de 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 la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
- PROJECT_ID: ID de votre projet.
- LOCATION: région dans laquelle traiter la requête.
- RAG_CORPUS_ID: ID du corpus 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 les fragments.
- EMBEDDING_MODEL_QPM_RATE: taux de QPM pour limiter l'accès de RAG à votre modèle d'embedding. Exemple: 1 000.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/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="LOCATION")
response = rag.import_files(
corpus_name=corpus_name,
paths=paths,
chunk_size=512, # Optional
chunk_overlap=100, # Optional
max_embedding_requests_per_min=900, # Optional
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.
Exemple de liste de fichiers RAG
Ces exemples de code montrent comment lister les fichiers RAG.
REST
Avant d'utiliser les données de requête ci-dessous, 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 mettant à jour le paramètre page_size. - PAGE_TOKEN: jeton de page de liste standard. Obtenu à l'aide de
ListRagFilesResponse.next_page_token
de l'appelVertexRagDataService.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 la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
Remplacez les variables suivantes utilisées dans l'exemple de code:
- 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 mettant à jour le paramètre page_size. - PAGE_TOKEN: jeton de page de liste standard. Obtenu à l'aide de
ListRagFilesResponse.next_page_token
de l'appelVertexRagDataService.ListRagFiles
précédent.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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
Obtenir un exemple de fichier RAG
Ces exemples de code montrent comment obtenir un fichier RAG.
REST
Avant d'utiliser les données de requête ci-dessous, 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 la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
- 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
.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
file_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_file = rag.get_file(name=file_name)
print(rag_file)
# Example response:
# RagFile(name='projects/1234567890/locations/LOCATION/ragCorpora/11111111111/ragFiles/22222222222',
# display_name='file_display_name', description='file description')
Supprimer un exemple de fichier RAG
Ces exemples de code montrent comment supprimer un fichier RAG.
REST
Avant d'utiliser les données de requête ci-dessous, 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/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 la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
- 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}
.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
file_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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 ci-dessous, 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 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/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, 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/v1/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/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 la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
- 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 requête permettant d'obtenir des contextes pertinents.
- SIMILARITY_TOP_K: nombre de contextes principaux à récupérer.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/[PROJECT_ID]/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
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="TEXT",
similarity_top_k=SIMILARITY_TOP_K, # Optional
vector_distance_threshold=VECTOR_DISTANCE_THRESHOLD, # Optional
)
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 ci-dessous, 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. Exemple :
gemini-1.5-pro-002
. - 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) 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, 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/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, 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/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 la section Installer le SDK Vertex AI pour Python. Pour en savoir plus, consultez la documentation de référence de l'API Python.
- 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. Exemple :
gemini-1.5-pro-002
. - 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) les contextes dont la distance vectorielle est inférieure au seuil sont renvoyés.
from vertexai import rag
from vertexai.generative_models import GenerativeModel, Tool
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_retrieval_tool = Tool.from_retrieval(
retrieval=rag.Retrieval(
source=rag.VertexRagStore(
rag_resources=[
rag.RagResource(
rag_corpus="RAG_CORPUS_RESOURCE",
# Optional: supply IDs from `rag.list_files()`.
# rag_file_ids=["rag-file-1", "rag-file-2", ...],
)
],
similarity_top_k=SIMILARITY_TOP_K, # Optional
vector_distance_threshold=VECTOR_DISTANCE_THRESHOLD, # Optional
),
)
)
rag_model = GenerativeModel(
model_name="MODEL_ID", 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....
# ...
Étape suivante
- Pour en savoir plus sur les modèles de génération compatibles, consultez la section Modèles d'IA générative compatibles avec RAG.
- Pour en savoir plus sur les modèles d'embeddings compatibles, consultez la section Modèles d'embeddings.
- Pour en savoir plus sur les modèles ouverts, consultez la section Modèles ouverts.
- Pour en savoir plus sur le moteur RAG, consultez la présentation du moteur RAG.