Agent Search als Abruf-Backend mit RAG Engine verwenden

Auf dieser Seite wird die Integration von Agent Search in die RAG Engine vorgestellt.

Agent Search bietet eine Lösung zum Abrufen und Verwalten von Daten in Ihren RAG-Anwendungen der Gemini Enterprise Agent Platform. Wenn Sie Agent Search als Abruf-Backend verwenden, können Sie Leistung, Skalierbarkeit und Benutzerfreundlichkeit der Integration verbessern.

  • Verbesserte Leistung und Skalierbarkeit: Agent Search ist für die Verarbeitung großer Datenmengen mit extrem niedriger Latenz konzipiert. Das führt zu schnelleren Reaktionszeiten und einer verbesserten Leistung Ihrer RAG-Anwendungen, insbesondere bei komplexen oder umfangreichen Wissensdatenbanken.

  • Vereinfachte Datenverwaltung: Sie können Ihre Daten aus verschiedenen Quellen wie Websites, BigQuery-Datasets und Cloud Storage-Buckets importieren, wodurch der Prozess der Datenaufnahme optimiert wird.

  • Nahtlose Integration: Die Agent Platform bietet eine integrierte Integration mit Agent Search, sodass Sie Agent Search als Korpus-Backend für Ihre RAG Anwendung auswählen können. Dadurch wird der Integrationsprozess vereinfacht und eine optimale Kompatibilität zwischen den Komponenten gewährleistet.

  • Verbesserte Qualität der LLM-Ausgabe: Mit den Abruffunktionen von Agent Search können Sie dafür sorgen, dass Ihre RAG Anwendung die relevantesten Informationen aus Ihrem Korpus abruft. Das führt zu genaueren und informativeren LLM-generierten Ausgaben.

Agent Search kombiniert umfassende Informationsabrufe, Natural Language Processing und die neuesten Funktionen im Bereich Large Language Model (LLM) Processing. So können Nutzerabsichten verstanden und die relevantesten Ergebnisse für den Nutzer zurückgegeben werden.

Mit Agent Search können Sie eine Suchanwendung in Google-Qualität mit von Ihnen verwalteten Daten erstellen.

So richten Sie Agent Search ein:

  1. Suchdatenspeicher erstellen.

  2. Suchanwendung erstellen.

Agent Search als Abruf-Backend für die RAG Engine verwenden

Nachdem Sie Agent Search eingerichtet haben, können Sie es so als Abruf-Backend für die RAG-Anwendung festlegen:

Agent Search als Abruf-Backend festlegen, um einen RAG-Korpus zu erstellen

In diesen Codebeispielen wird gezeigt, wie Sie Agent Search als Abruf-Backend für einen RAG-Korpus konfigurieren.

REST

So erstellen Sie einen RAG-Korpus über die Befehlszeile:

  1. RAG-Korpus erstellen

    Ersetzen Sie die folgenden Variablen im Codebeispiel:

    • PROJECT_ID: Die ID Ihres Cloud de Confiance by S3NS Projekts.
    • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
    • DISPLAY_NAME: Der Anzeigename des RAG-Korpus , den Sie erstellen möchten.
    • ENGINE_NAME: Der vollständige Ressourcenname der Agent Search-Suchmaschine oder des Agent Search-Datenspeichers. Beispiel:

      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. Fortschritt überwachen

    Ersetzen Sie die folgenden Variablen im Codebeispiel:

    • PROJECT_ID: Die ID Ihres Cloud de Confiance by S3NS Projekts.
    • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
    • OPERATION_ID: Die ID des Vorgangs zum Erstellen des RAG-Korpus.
    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

Folgen Sie der Python Einrichtungsanleitung in der Kurzanleitung zur Verwendung von Clientbibliotheken für die Agent Platform, bevor Sie dieses Beispiel anwenden.

Richten Sie die Standardanmeldedaten für Anwendungen ein, um sich bei der Agent Platform zu authentifizieren. Weitere Informationen finden Sie unter Authentifizierung für eine lokale Entwicklungsumgebung einrichten.

Legen Sie vor dem Ausführen von Codebeispielen die GOOGLE_CLOUD_UNIVERSE_DOMAIN Umgebung variable auf s3nsapis.fr fest.


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

Kontexte mit der RAG API abrufen

Nachdem der RAG-Korpus erstellt wurde, können relevante Kontexte über die RetrieveContexts API aus Agent Search abgerufen werden.

REST

In diesem Codebeispiel wird gezeigt, wie Sie Kontexte mit REST abrufen.

Ersetzen Sie die folgenden Variablen im Codebeispiel:

  • PROJECT_ID: Die ID Ihres Cloud de Confiance by S3NS Projekts.
  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.
  • RAG_CORPUS_RESOURCE: Der Name der RAG-Korpus Ressource.

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

  • TEXT: Der Abfragetext, um relevante Kontexte abzurufen.
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

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.


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

Inhalte mit der Gemini API der Agent Platform generieren

REST

Wenn Sie Inhalte mit Gemini-Modellen generieren möchten, rufen Sie die Agent Platform GenerateContent API auf. Wenn Sie RAG_CORPUS_RESOURCE in der Anfrage angeben, werden Daten automatisch aus Agent Search abgerufen.

Ersetzen Sie die folgenden Variablen im Beispielcode:

  • PROJECT_ID: Die ID Ihres Cloud de Confiance by S3NS Projekts.

  • LOCATION: Die Region, in der die Anfrage verarbeitet werden soll.

  • MODEL_ID: LLM-Modell für die Inhaltsgenerierung. Beispiel: gemini-3.8-flash.

  • GENERATION_METHOD: LLM-Methode zum Generieren von Inhalten. Beispiel: generateContent, streamGenerateContent.

  • INPUT_PROMPT: Der Text, der zur Inhaltsgenerierung an das LLM gesendet wird. Verwenden Sie einen Prompt, der für die Dokumente in Agent Search relevant ist.

  • RAG_CORPUS_RESOURCE: Der Name der RAG-Korpus Ressource. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.

  • SIMILARITY_TOP_K: Optional: Die Anzahl der wichtigsten Kontexte , die abgerufen werden sollen.

    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

Informationen zur Installation des Vertex AI SDK for Python finden Sie unter Vertex AI SDK for Python installieren. Weitere Informationen finden Sie in der Python API-Referenzdokumentation.


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

Nächste Schritte