Menggunakan Agent Search sebagai backend pengambilan menggunakan RAG Engine

Halaman ini memperkenalkan integrasi Agent Search dengan Mesin RAG.

Agent Search menyediakan solusi untuk mengambil dan mengelola data dalam aplikasi RAG Gemini Enterprise Agent Platform Anda. Dengan menggunakan Agent Search sebagai backend pengambilan, Anda dapat meningkatkan performa, skalabilitas, dan kemudahan integrasi.

  • Peningkatan performa dan skalabilitas: Penelusuran Agen dirancang untuk menangani data dalam jumlah besar dengan latensi yang sangat rendah. Hal ini berarti waktu respons yang lebih cepat dan peningkatan performa untuk aplikasi RAG Anda, terutama saat menangani pusat informasi yang kompleks atau luas.

  • Pengelolaan data yang disederhanakan: Impor data Anda dari berbagai sumber, seperti situs, set data BigQuery, dan bucket Cloud Storage, yang dapat menyederhanakan proses penyerapan data Anda.

  • Integrasi yang lancar: Agent Platform menyediakan integrasi bawaan dengan Agent Search, yang memungkinkan Anda memilih Agent Search sebagai backend korpus untuk aplikasi RAG Anda. Hal ini menyederhanakan proses integrasi dan membantu memastikan kompatibilitas yang optimal antar-komponen.

  • Peningkatan kualitas output LLM: Dengan menggunakan kemampuan pengambilan Agent Search, Anda dapat membantu memastikan bahwa aplikasi RAG Anda mengambil informasi yang paling relevan dari korpus Anda, yang menghasilkan output yang lebih akurat dan informatif yang dihasilkan LLM.

Agent Search menggabungkan pengambilan informasi yang mendalam, natural language processing, dan fitur terbaru dalam pemrosesan model bahasa besar (LLM), yang membantu memahami niat pengguna dan menampilkan hasil yang paling relevan bagi pengguna.

Dengan Agent Search, Anda dapat membangun aplikasi penelusuran berkualitas Google menggunakan data yang Anda kontrol.

Untuk menyiapkan Agent Search, lakukan hal berikut:

  1. Membuat penyimpanan data penelusuran.

  2. Membuat aplikasi penelusuran.

Menggunakan Agent Search sebagai backend pengambilan untuk RAG Engine

Setelah Agent Search disiapkan, ikuti langkah-langkah berikut untuk menetapkannya sebagai backend pengambilan untuk aplikasi RAG.

Menetapkan Agent Search sebagai backend pengambilan untuk membuat korpus RAG

Contoh kode ini menunjukkan cara mengonfigurasi Penelusuran Agen sebagai backend pengambilan untuk korpus RAG.

REST

Untuk menggunakan command line guna membuat korpus RAG, lakukan hal berikut:

  1. Membuat korpus RAG

    Ganti variabel berikut yang digunakan dalam contoh kode:

    • PROJECT_ID: ID project Cloud de Confiance by S3NS Anda.
    • LOCATION: Region untuk memproses permintaan.
    • DISPLAY_NAME: Nama tampilan korpus RAG yang ingin Anda buat.
    • ENGINE_NAME: Nama resource lengkap Mesin Telusur Agen atau Datastore Penelusuran Agen. Misalnya,

      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. Memantau progres

    Ganti variabel berikut yang digunakan dalam contoh kode:

    • PROJECT_ID: ID project Cloud de Confiance by S3NS Anda.
    • LOCATION: Region untuk memproses permintaan.
    • OPERATION_ID: ID operasi pembuatan korpus 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

Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Agent Platform menggunakan library klien.

Untuk melakukan autentikasi ke Agent Platform, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

Sebelum menjalankan contoh kode, tetapkan variabel lingkungan GOOGLE_CLOUD_UNIVERSE_DOMAIN ke 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'.
# ...

Mengambil konteks menggunakan RAG API

Setelah pembuatan korpus RAG, konteks yang relevan dapat diambil dari Penelusuran Agen melalui RetrieveContexts API.

REST

Contoh kode ini menunjukkan cara mengambil konteks menggunakan REST.

Ganti variabel berikut yang digunakan dalam contoh kode:

  • PROJECT_ID: ID project Cloud de Confiance by S3NS Anda.
  • LOCATION: Region untuk memproses permintaan.
  • RAG_CORPUS_RESOURCE: Nama resource korpus RAG.

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

  • TEXT: Teks kueri untuk mendapatkan konteks yang relevan.
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

Guna mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi 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: "....
#   ....

Membuat konten menggunakan Gemini API Agent Platform

REST

Untuk membuat konten menggunakan model Gemini, lakukan panggilan ke Agent Platform GenerateContent API. Dengan menentukan RAG_CORPUS_RESOURCE dalam permintaan, data akan otomatis diambil dari Penelusuran Agen.

Ganti variabel berikut yang digunakan dalam kode contoh:

  • PROJECT_ID: ID project Cloud de Confiance by S3NS Anda.

  • LOCATION: Region untuk memproses permintaan.

  • MODEL_ID: Model LLM untuk pembuatan konten. Misalnya, gemini-3.8-flash.

  • GENERATION_METHOD: Metode LLM untuk pembuatan konten. Contoh, generateContent, streamGenerateContent.

  • INPUT_PROMPT: Teks yang dikirim ke LLM untuk pembuatan konten. Coba gunakan perintah yang relevan dengan dokumen di Penelusuran Agen.

  • RAG_CORPUS_RESOURCE: Nama resource korpus RAG. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.

  • SIMILARITY_TOP_K: Opsional: Jumlah konteks teratas yang akan diambil.

    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

Guna mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi 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....
#   ...

Langkah berikutnya