Usa Agent Search como backend de recuperación con RAG Engine

En esta página, se presenta la integración de Agent Search con el motor de RAG.

Agent Search proporciona una solución para recuperar y administrar datos dentro de tus aplicaciones de RAG de Gemini Enterprise Agent Platform. Si usas Agent Search como backend de recuperación, puedes mejorar el rendimiento, la escalabilidad y la facilidad de integración.

  • Rendimiento y escalabilidad mejorados: Agent Search está diseñado para controlar grandes volúmenes de datos con una latencia excepcionalmente baja. Esto se traduce en tiempos de respuesta más rápidos y un mejor rendimiento para tus aplicaciones de RAG, en especial cuando se trata de bases de conocimiento complejas o extensas.

  • Administración de datos simplificada: Importa tus datos de varias fuentes, como sitios web, conjuntos de datos de BigQuery y buckets de Cloud Storage, que pueden optimizar tu proceso de transferencia de datos.

  • Integración sin interrupciones: Agent Platform proporciona una integración incorporada con Agent Search, que te permite seleccionar Agent Search como el backend del corpus para tu aplicación de RAG. Esto simplifica el proceso de integración y ayuda a garantizar una compatibilidad óptima entre los componentes.

  • Mejora la calidad de los resultados del LLM: Con las capacidades de recuperación de Agent Search, puedes asegurarte de que tu aplicación de RAG recupere la información más pertinente de tu corpus, lo que genera resultados más precisos e informativos generados por el LLM.

Agent Search reúne la recuperación profunda de información, el procesamiento de lenguaje natural y las funciones más recientes en el procesamiento de modelos de lenguaje grandes (LLM), lo que ayuda a comprender la intención del usuario y a devolver los resultados más pertinentes para este.

Con Agent Search, puedes crear una aplicación de búsqueda con la calidad de Google con los datos que tú controlas.

Para configurar una búsqueda de agentes, haz lo siguiente:

  1. Crea un almacén de datos de búsqueda.

  2. Crea una aplicación de búsqueda.

Usa Agent Search como backend de recuperación para RAG Engine

Una vez que se haya configurado Agent Search, sigue estos pasos para establecerlo como el backend de recuperación de la aplicación de RAG.

Establece Agent Search como el backend de recuperación para crear un corpus de RAG

En estas muestras de código, se indica cómo configurar Agent Search como el backend de recuperación para un corpus de RAG.

REST

Para usar la línea de comandos y crear un corpus de RAG, haz lo siguiente:

  1. Crea un corpus RAG

    Reemplaza las siguientes variables que se usan en la muestra de código:

    • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
    • LOCATION: Es la región para procesar la solicitud.
    • DISPLAY_NAME: Es el nombre visible del corpus de RAG que quieres crear.
    • ENGINE_NAME: Es el nombre completo del recurso del motor de búsqueda del agente o del almacén de datos de búsqueda del agente. Por ejemplo

      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. Supervisa el progreso

    Reemplaza las siguientes variables que se usan en la muestra de código:

    • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
    • LOCATION: Es la región para procesar la solicitud.
    • OPERATION_ID: Es el ID de la operación de creación del corpus de 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

Antes de probar este ejemplo, sigue las instrucciones de configuración para Python incluidas en la guía de inicio rápido de Agent Platform sobre cómo usar bibliotecas cliente.

Para autenticarte en Agent Platform, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.


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.
# See https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/rag-engine/rag-overview#supported-regions
client = agentplatform.Client(project=PROJECT_ID, location="us-east5")

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

Recupera contextos con la API de RAG

Después de crear el corpus de RAG, se pueden recuperar contextos relevantes de Agent Search a través de la API de RetrieveContexts.

REST

En esta muestra de código, se indica cómo recuperar contextos con REST.

Reemplaza las siguientes variables que se usan en la muestra de código:

  • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .
  • LOCATION: Es la región para procesar la solicitud.
  • RAG_CORPUS_RESOURCE: Es el nombre del recurso del corpus de RAG.

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

  • TEXT: Es el texto de la consulta para obtener contextos relevantes.
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

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API de 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-east5/ragCorpora/[rag_corpus_id]"

# Initialize Agent Platform client once per session.
# See https://docs.cloud.google.com/gemini-enterprise-agent-platform/build/rag-engine/rag-overview#supported-regions
client = agentplatform.Client(project=PROJECT_ID, location="us-east5")

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

Genera contenido con la API de Gemini de Agent Platform

REST

Para generar contenido con los modelos de Gemini, realiza una llamada a la API de GenerateContent de Agent Platform. Si especificas el RAG_CORPUS_RESOURCE en la solicitud, se recuperan automáticamente los datos de Agent Search.

Reemplaza las siguientes variables que se usan en el código de muestra:

  • PROJECT_ID: Es el ID de tu proyecto de Google Cloud .

  • LOCATION: Es la región para procesar la solicitud.

  • MODEL_ID: Es un modelo de LLM para la generación de contenido. Por ejemplo, gemini-3.8-flash.

  • GENERATION_METHOD: Es el método LLM para la generación de contenido. Por ejemplo: generateContent, streamGenerateContent.

  • INPUT_PROMPT: Es el texto que se envía al LLM para la generación de contenido. Intenta usar una instrucción relevante para los documentos en Agent Search.

  • RAG_CORPUS_RESOURCE: Es el nombre del recurso del corpus de RAG. Formato: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.

  • SIMILARITY_TOP_K: Es la cantidad de contextos principales que se recuperarán (opcional).

    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

Si deseas obtener información para instalar o actualizar el SDK de Vertex AI para Python, consulta Instala el SDK de Vertex AI para Python. Para obtener más información, consulta la documentación de referencia de la API de 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-east5/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(vertexai=True, project=PROJECT_ID, location="global")

response = genai_client.models.generate_content(
    model="gemini-3.8-flash",
    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....
#   ...

¿Qué sigue?