Utiliser Agent Search comme backend de récupération à l'aide du moteur RAG

Cette page présente l'intégration d'Agent Search au moteur RAG.

Agent Search fournit une solution pour récupérer et gérer les données dans vos applications RAG Gemini Enterprise Agent Platform. En utilisant Agent Search comme backend de récupération, vous pouvez améliorer les performances, l'évolutivité et la facilité d'intégration.

  • Performances et évolutivité améliorées : Agent Search est conçu pour gérer de grands volumes de données avec une latence exceptionnellement faible. Cela se traduit par des temps de réponse plus rapides et des performances améliorées pour vos applications RAG, en particulier lorsqu'il s'agit de bases de connaissances complexes ou étendues.

  • Gestion simplifiée des données : importez vos données à partir de différentes sources, telles que des sites Web, des ensembles de données BigQuery et des buckets Cloud Storage, afin d'optimiser votre processus d'ingestion des données.

  • Intégration transparente : Agent Platform est directement intégré à Agent Search, ce qui vous permet de sélectionner Agent Search comme backend de corpus pour votre application RAG. Cela simplifie le processus d'intégration et permet de garantir une compatibilité optimale entre les composants.

  • Amélioration de la qualité des sorties des LLM : en utilisant les fonctionnalités de récupération d' Agent Search, vous pouvez vous assurer que votre application RAG récupère les informations les plus pertinentes de votre corpus, ce qui génère des sorties de LLM plus précises et informatives.

Agent Search combine la récupération approfondie d'informations, le traitement du langage naturel et les dernières fonctionnalités de traitement des grands modèles de langage (LLM) pour comprendre l'intention de l'utilisateur et renvoyer les résultats les plus pertinents pour lui.

Avec Agent Search, vous pouvez créer une application de recherche de qualité Google à l'aide de données que vous contrôlez.

Pour configurer Agent Search, procédez comme suit :

  1. Créez un datastore de recherche.

  2. Créez une application de recherche.

Utiliser Agent Search comme backend de récupération pour le moteur RAG

Une fois Agent Search configuré, procédez comme suit pour le définir comme backend de récupération pour l'application RAG.

Définir Agent Search comme backend de récupération pour créer un corpus RAG

Ces exemples de code vous montrent comment configurer Agent Search en tant que backend de récupération pour un corpus RAG.

REST

Pour créer un corpus RAG à l'aide de la ligne de commande, procédez comme suit :

  1. Créer un corpus RAG

    Remplacez les variables suivantes utilisées dans l'exemple de code :

    • PROJECT_ID : ID de votre projet Cloud de Confiance by S3NS .
    • LOCATION : région dans laquelle traiter la requête.
    • DISPLAY_NAME : nom à afficher du corpus RAG que vous souhaitez créer.
    • ENGINE_NAME : nom complet de la ressource du moteur de recherche ou du datastore Agent Search. Par exemple,

      projects/PROJECT_NUMBER/locations/LOCATION/collections/default_collection/engines/ENGINE_NAME/servingConfigs/default_search

    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" : "DISPLAY_NAME",
      "vertex_ai_search_config" : {
        "serving_config": "ENGINE_NAME/servingConfigs/default_search"
      }
    }'
    
  2. Suivre la progression

    Remplacez les variables suivantes utilisées dans l'exemple de code :

    • PROJECT_ID : ID de votre projet Cloud de Confiance by S3NS .
    • LOCATION : région dans laquelle traiter la requête.
    • OPERATION_ID : ID de l'opération de création du corpus RAG.
    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
    

Python

Avant d'essayer cet exemple, suivez les instructions de configuration Python décrites dans le guide de démarrage rapide d'Agent Platform à l'aide des bibliothèques clientes.

Pour vous authentifier auprès d'Agent Platform, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

Avant d'exécuter des exemples de code, définissez la variable d'environnement GOOGLE_CLOUD_UNIVERSE_DOMAIN sur s3nsapis.fr.


import agentplatform
from agentplatform import types

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# vertex_ai_search_engine_name = "projects/{PROJECT_ID}/locations/{LOCATION}/collections/default_collection/engines/{ENGINE_ID}"
# display_name = "test_corpus"
# description = "Corpus Description"

# Initialize Agent Platform client once per session
client = agentplatform.Client(project=PROJECT_ID, location="us-central1")

# Configure Search
vertex_ai_search_config = types.VertexAiSearchConfig(
    serving_config=f"{vertex_ai_search_engine_name}/servingConfigs/default_search",
)

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

Récupérer des contextes à l'aide de l'API RAG

Une fois le corpus RAG créé, les contextes pertinents peuvent être récupérés à partir d'Agent Search via l'API RetrieveContexts.

REST

Cet exemple de code montre comment récupérer des contextes à l'aide de REST.

Remplacez les variables suivantes utilisées dans l'exemple de code :

  • PROJECT_ID : ID de votre projet Cloud de Confiance by S3NS .
  • LOCATION : région dans laquelle traiter la requête.
  • RAG_CORPUS_RESOURCE : nom de la ressource du corpus RAG.

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

  • TEXT : texte de la requête permettant d'obtenir les contextes pertinents.
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" \
  -d '{
    "vertex_rag_store": {
      "rag_resources": {
        "rag_corpus": "RAG_CORPUS_RESOURCE"
      }
    },
    "query": {
      "text": "TEXT"
    }
  }'

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, consultez la documentation de référence de l'API Python.


import agentplatform

from agentplatform import types
from google.genai import types as genai_types

# 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 Agent Platform client once per session
client = agentplatform.Client(project=PROJECT_ID, location="us-east4")

response = client.rag.retrieve_contexts(
    vertex_rag_store=genai_types.VertexRagStore(
        rag_resources=[
            genai_types.VertexRagStoreRagResource(
                rag_corpus=corpus_name,
                # Optional: supply IDs from `rag.list_files()`.
                # rag_file_ids=["rag-file-1", "rag-file-2", ...],
            )
        ],
    ),
    query=types.RagQuery(
        text="Hello World!",
        rag_retrieval_config=genai_types.RagRetrievalConfig(
            top_k=10,
            filter=genai_types.RagRetrievalConfigFilter(
                vector_distance_threshold=0.5
            ),
        ),
    )
)
print(response)
# Example response:
# contexts {
#   contexts {
#     source_uri: "gs://your-bucket-name/file.txt"
#     text: "....
#   ....

Générer du contenu à l'aide de l'API Gemini Agent Platform

REST

Pour générer du contenu à l'aide de modèles Gemini, appelez l' API GenerateContent d'Agent Platform. En spécifiant les RAG_CORPUS_RESOURCE dans la requête, les données sont automatiquement récupérées à partir de Agent Search.

Remplacez les variables suivantes utilisées dans l'exemple de code :

  • PROJECT_ID : ID de votre projet Cloud de Confiance by S3NS .

  • LOCATION : région dans laquelle traiter la requête.

  • MODEL_ID : LLM pour la génération de contenu. Exemple : gemini-3.8-flash.

  • GENERATION_METHOD: méthode LLM pour la génération de contenu. Exemple : generateContent, streamGenerateContent.

  • INPUT_PROMPT : texte envoyé au LLM pour la génération de contenu. Essayez d'utiliser une invite pertinente pour les documents dans Agent Search.

  • RAG_CORPUS_RESOURCE : nom de la ressource du corpus RAG. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.

  • SIMILARITY_TOP_K : facultatif : nombre de contextes principaux à récupérer.

    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/publishers/google/models/MODEL_ID:GENERATION_METHOD" \
    -d '{
      "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
          }
        }
      }
    }'
    

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, consultez la documentation de référence de l'API Python.


from google import genai
from google.genai import types as genai_types

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

rag_retrieval_tool = genai_types.Tool(
    retrieval=genai_types.Retrieval(
        vertex_rag_store=genai_types.VertexRagStore(
            rag_resources=[
                genai_types.VertexRagStoreRagResource(
                    rag_corpus=corpus_name
                )
            ],
            rag_retrieval_config=genai_types.RagRetrievalConfig(
                top_k=10,
                filter=genai_types.RagRetrievalConfigFilter(
                    vector_distance_threshold=0.5
                ),
            ),
        ),
    )
)

# Create a GenAI SDK client to make a generate_content request
genai_client = genai.Client(enterprise=True, project=PROJECT_ID, location="us-central1")

response = genai_client.models.generate_content(
    model="gemini-2.5-pro",
    contents="Why is the sky blue?",
    config=genai_types.GenerateContentConfig(
        tools=[rag_retrieval_tool]
    )
)
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