Utilizzare Agent Search come backend di recupero utilizzando RAG Engine

Questa pagina introduce l'integrazione di Agent Search con RAG Engine.

Agent Search fornisce una soluzione per recuperare e gestire i dati all'interno delle applicazioni RAG di Gemini Enterprise Agent Platform. Utilizzando Agent Search come backend di recupero, puoi migliorare le prestazioni, la scalabilità e la facilità di integrazione.

  • Prestazioni e scalabilità migliorate: Agent Search è progettato per gestire grandi volumi di dati con una latenza eccezionalmente bassa. Ciò si traduce in tempi di risposta più rapidi e prestazioni migliorate per le applicazioni RAG, soprattutto quando si tratta di basi di conoscenza complesse o estese.

  • Gestione semplificata dei dati: importa i dati da varie origini, come siti web, set di dati BigQuery e bucket Cloud Storage, che possono semplificare il processo di acquisizione dei dati.

  • Integrazione perfetta: Agent Platform fornisce un'integrazione integrata con Agent Search, che ti consente di selezionare Agent Search come backend del corpus per l'applicazione RAG. Ciò semplifica il processo di integrazione e contribuisce a garantire una compatibilità ottimale tra i componenti.

  • Qualità dell'output LLM migliorata: utilizzando le funzionalità di recupero di Agent Search, puoi contribuire a garantire che l'applicazione RAG recuperi le informazioni più pertinenti dal corpus, il che porta a output generati da LLM più accurati e informativi.

Agent Search riunisce il recupero di informazioni approfondito, l'elaborazione del linguaggio naturale e le funzionalità più recenti nell'elaborazione di modelli linguistici di grandi dimensioni (LLM), il che aiuta a comprendere l'intenzione dell'utente e a restituire i risultati più pertinenti per l'utente.

Con Agent Search, puoi creare un'applicazione di ricerca di qualità Google utilizzando i dati che controlli.

Per configurare una ricerca di agenti:

  1. Crea un datastore di ricerca.

  2. Crea un'applicazione di ricerca.

Utilizzare Agent Search come backend di recupero per RAG Engine

Una volta configurata la ricerca di agenti, segui questi passaggi per impostarla come backend di recupero per l'applicazione RAG.

Impostare la ricerca di agenti come backend di recupero per creare un corpus RAG

Questi esempi di codice mostrano come configurare Agent Search come backend di recupero per un corpus RAG.

REST

Per utilizzare la riga di comando per creare un corpus RAG:

  1. Crea un corpus RAG

    Sostituisci le seguenti variabili utilizzate nell'esempio di codice:

    • PROJECT_ID: l'ID del tuo Cloud de Confiance by S3NS progetto.
    • LOCATION: la regione in cui elaborare la richiesta.
    • DISPLAY_NAME: il nome visualizzato del corpus RAG che vuoi creare.
    • ENGINE_NAME: il nome completo della risorsa del motore di ricerca di agenti o del datastore di ricerca di agenti. Ad esempio,

      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. Monitora avanzamento

    Sostituisci le seguenti variabili utilizzate nell'esempio di codice:

    • PROJECT_ID: l'ID del tuo Cloud de Confiance by S3NS progetto.
    • LOCATION: la regione in cui elaborare la richiesta.
    • OPERATION_ID: l'ID dell'operazione di creazione del 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

Prima di provare questo esempio, segui le istruzioni di configurazione Python nella guida rapida di Agent Platform per l'utilizzo delle librerie client.

Per eseguire l'autenticazione in Agent Platform, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configura l'autenticazione per un ambiente di sviluppo locale.

Prima di eseguire gli esempi di codice, imposta la variabile di ambiente GOOGLE_CLOUD_UNIVERSE_DOMAIN su 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'.
# ...

Recuperare i contesti utilizzando l'API RAG

Dopo la creazione del corpus RAG, i contesti pertinenti possono essere recuperati da Agent Search tramite l'API RetrieveContexts.

REST

Questo esempio di codice mostra come recuperare i contesti utilizzando REST.

Sostituisci le seguenti variabili utilizzate nell'esempio di codice:

  • PROJECT_ID: l'ID del tuo Cloud de Confiance by S3NS progetto.
  • LOCATION: la regione in cui elaborare la richiesta.
  • RAG_CORPUS_RESOURCE: il nome della risorsa del corpus RAG.

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

  • TEXT: il testo della query per ottenere i contesti pertinenti.
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

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la Python documentazione di riferimento dell'API.


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: "....
#   ....

Generare contenuti utilizzando l'API Gemini di Agent Platform

REST

Per generare contenuti utilizzando i modelli Gemini, effettua una chiamata all'API Agent Platform GenerateContent. Se specifichi il RAG_CORPUS_RESOURCE nella richiesta, i dati vengono recuperati automaticamente da Agent Search.

Sostituisci le seguenti variabili utilizzate nel codice campione:

  • PROJECT_ID: l'ID del tuo Cloud de Confiance by S3NS progetto.

  • LOCATION: la regione in cui elaborare la richiesta.

  • MODEL_ID: modello LLM per la generazione di contenuti. Ad esempio, gemini-3.8-flash.

  • GENERATION_METHOD: metodo LLM per la generazione di contenuti. Ad esempio, generateContent, streamGenerateContent.

  • INPUT_PROMPT: il testo inviato all'LLM per la generazione di contenuti. Prova a utilizzare un prompt pertinente ai documenti in Agent Search.

  • RAG_CORPUS_RESOURCE: il nome della risorsa del corpus RAG. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.

  • SIMILARITY_TOP_K: facoltativo: il numero di contesti principali da recuperare.

    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

Per scoprire come installare o aggiornare l'SDK Vertex AI per Python, consulta Installare l'SDK Vertex AI per Python. Per saperne di più, consulta la Python documentazione di riferimento dell'API.


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

Passaggi successivi