Respons ground untuk model Gemini

Halaman ini menjelaskan dua cara untuk melakukan grounding respons model dengan Vertex AI dan menunjukkan cara membuat grounding berfungsi di aplikasi Anda menggunakan grounding API.

Vertex AI memungkinkan Anda melandaskan output model menggunakan sumber data berikut:

  • Google Penelusuran: Mendasarkan respons dengan menggunakan data web yang tersedia secara publik.
  • Data Anda: Mendasari respons dengan menggunakan data Anda dari Vertex AI Search (Pratinjau).

Perujukan dengan Google Penelusuran

Gunakan Perujukan dengan Google Penelusuran jika Anda ingin menghubungkan model dengan pengetahuan dunia, berbagai topik yang mungkin, atau informasi terbaru di internet.

Pemrosesan dengan Google Penelusuran mendukung pengambilan dinamis yang memberi Anda opsi untuk membuat respons yang Diproses dengan Google Penelusuran hanya jika diperlukan. Oleh karena itu, konfigurasi pengambilan dinamis mengevaluasi apakah perintah memerlukan pengetahuan tentang peristiwa terbaru dan mengaktifkan Perujukan dengan Google Penelusuran. Untuk informasi selengkapnya, lihat Pengambilan dinamis.

Untuk mempelajari lebih lanjut grounding model di Vertex AI, lihat Ringkasan grounding.

Model yang didukung

Model berikut mendukung grounding:

  • Gemini 1.5 Pro dengan input teks saja
  • Gemini 1.5 Flash dengan input teks saja
  • Gemini 1.0 Pro dengan input teks saja

Bahasa yang didukung

  • Inggris (en)
  • Spanyol (es)
  • Jepang (ja)

Gunakan petunjuk berikut untuk melandasi model dengan data web yang tersedia secara publik.

Pengambilan dinamis

Anda dapat menggunakan pengambilan dinamis dalam permintaan untuk memilih kapan harus menonaktifkan perujukan dengan Google Penelusuran. Hal ini berguna jika perintah tidak memerlukan jawaban yang didasarkan pada Google Penelusuran dan model yang didukung dapat memberikan jawaban berdasarkan pengetahuannya tanpa dasar. Hal ini membantu Anda mengelola latensi, kualitas, dan biaya secara lebih efektif.

Sebelum memanggil konfigurasi pengambilan dinamis dalam permintaan, pahami terminologi berikut:

  • Skor prediksi: Saat Anda meminta jawaban yang beralasan, Vertex AI akan menetapkan skor prediksi ke perintah. Skor prediksi adalah nilai floating point dalam rentang [0,1]. Nilainya bergantung pada apakah perintah dapat memanfaatkan perujukan jawaban dengan informasi terbaru dari Google Penelusuran. Oleh karena itu, perintah yang memerlukan jawaban yang didasarkan pada fakta terbaru di web, memiliki skor prediksi yang lebih tinggi. Perintah yang jawabannya dihasilkan model memiliki skor prediksi yang lebih rendah.

    Berikut adalah contoh beberapa perintah dan skor prediksinya.

    Perintah Skor prediksi Komentar
    "Tulis puisi tentang peony" 0,13 Model dapat mengandalkan pengetahuannya dan jawabannya tidak memerlukan perujukan
    "Sarankan mainan untuk anak berusia 2 tahun" 0,36 Model dapat mengandalkan pengetahuannya dan jawabannya tidak memerlukan perujukan
    "Bisakah Anda memberikan resep guacamole bergaya Asia?" 0,55 Google Penelusuran dapat memberikan jawaban yang berdasar, tetapi dasar tidak mutlak diperlukan; pengetahuan model mungkin sudah memadai
    "Apa itu Agent Builder? How is grounding billed in Agent Builder?" 0,72 Memerlukan Google Penelusuran untuk menghasilkan jawaban yang berdasar
    "Siapa yang memenangkan grand prix F1 terbaru?" 0,97 Memerlukan Google Penelusuran untuk menghasilkan jawaban yang berdasar
  • Batas: Dalam permintaan, Anda dapat menentukan konfigurasi pengambilan dinamis dengan batas. Batas adalah nilai floating point dalam rentang [0,1] dan default-nya adalah 0,7. Jika nilai nilai minimumnya nol, respons akan selalu dihubungkan dengan Google Penelusuran. Untuk semua nilai batas lainnya, hal berikut berlaku:

    • Jika skor prediksi lebih besar dari atau sama dengan nilai minimum, jawaban akan didasarkan pada Google Penelusuran. Nilai minimum yang lebih rendah menyiratkan bahwa lebih banyak perintah memiliki respons yang dihasilkan menggunakan Perujukan dengan Google Penelusuran.
    • Jika skor prediksi kurang dari nilai minimum, model mungkin masih membuat jawaban, tetapi tidak didasarkan pada Google Penelusuran.

Untuk menemukan nilai minimum yang sesuai dengan kebutuhan bisnis Anda, Anda dapat membuat kumpulan kueri perwakilan yang diperkirakan akan Anda temui. Kemudian, Anda dapat mengurutkan kueri sesuai dengan skor prediksi dalam respons dan memilih nilai minimum yang baik untuk kasus penggunaan Anda.

Pertimbangan

  • Untuk menggunakan perujukan dengan Google Penelusuran, Anda harus mengaktifkan Saran Google Penelusuran. Lihat selengkapnya di Saran Google Penelusuran.

  • Untuk hasil yang ideal, gunakan suhu 0.0. Untuk mempelajari lebih lanjut cara menetapkan konfigurasi ini, lihat isi permintaan Gemini API dari referensi model.

  • Perujukan dengan Google Penelusuran memiliki batas satu juta kueri per hari. Jika Anda memerlukan kueri lainnya, hubungi dukungan Google Cloud untuk mendapatkan bantuan.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Region untuk memproses permintaan.
  • PROJECT_ID: Project ID Anda.
  • MODEL_ID: ID model model multimodal.
  • TEXT: Petunjuk teks yang akan disertakan dalam perintah.
  • DYNAMIC_THRESHOLD: Kolom opsional untuk menetapkan nilai minimum guna memanggil konfigurasi pengambilan dinamis. Ini adalah nilai floating point dalam rentang [0,1]. Jika Anda tidak menetapkan kolom dynamicThreshold, nilai nilai minimum akan ditetapkan secara default ke 0,7.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

Meminta isi JSON:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "googleSearchRetrieval": {
      "dynamicRetrievalConfig": {
        "mode": "MODE_DYNAMIC",
        "dynamicThreshold": DYNAMIC_THRESHOLD
      }
    }
  }],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON yang mirip seperti berikut:

{
   "candidates": [
     {
       "content": {
         "role": "model",
         "parts": [
           {
             "text": "Chicago weather changes rapidly, so layers let you adjust easily. Consider a base layer, a warm mid-layer (sweater-fleece), and a weatherproof outer layer."
           }
         ]
       },
       "finishReason": "STOP",
       "safetyRatings":[
       "..."
    ],
       "groundingMetadata": {
         "webSearchQueries": [
           "What's the weather in Chicago this weekend?"
         ],
         "searchEntryPoint": {
            "renderedContent": "....................."
         }
         "groundingSupports": [
            {
              "segment": {
                "startIndex": 0,
                "endIndex": 65,
                "text": "Chicago weather changes rapidly, so layers let you adjust easily."
              },
              "groundingChunkIndices": [
                0
              ],
              "confidenceScores": [
                0.99
              ]
            },
          ]
          "retrievalMetadata": {
              "webDynamicRetrievalScore": 0.96879
            }
       }
     }
   ],
   "usageMetadata": { "..."
   }
 }

Konsol

Untuk menggunakan Grounding dengan Google Penelusuran dengan Vertex AI Studio, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Klik tab Freeform.
  3. Di panel samping, klik tombol Ground model responses.
  4. Klik Sesuaikan dan tetapkan Google Penelusuran sebagai sumber.
  5. Masukkan perintah Anda di kotak teks, lalu klik Kirim.

Respons perintah Anda kini dihubungkan ke Google Penelusuran.

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

import vertexai

from vertexai.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

# Use Google Search for grounding
tool = Tool.from_google_search_retrieval(grounding.GoogleSearchRetrieval())

prompt = "When is the next total solar eclipse in US?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response.text)
# Example response:
# The next total solar eclipse visible from the contiguous United States will be on **August 23, 2044**.

Memahami respons Anda

Jika perintah model Anda berhasil dihubungkan ke Google Penelusuran dari Vertex AI Studio atau dari API, respons akan menyertakan metadata dengan link sumber (URL web). Namun, ada beberapa alasan metadata ini mungkin tidak disediakan, dan respons perintah tidak akan didasarkan. Alasan ini mencakup relevansi sumber yang rendah atau informasi yang tidak lengkap dalam respons model.

Kutipan

Menampilkan kutipan sangat direkomendasikan. Fitur ini membantu pengguna memvalidasi respons dari penayang itu sendiri dan menambahkan jalur untuk pembelajaran lebih lanjut.

Kutipan untuk respons dari sumber Google Penelusuran harus ditampilkan secara inline dan gabungan. Lihat gambar berikut sebagai saran tentang cara melakukannya.

Contoh kutipan

Penggunaan opsi mesin telusur alternatif

Penggunaan Grounding dengan Google Penelusuran oleh Pelanggan tidak mencegah Pelanggan menawarkan opsi mesin telusur alternatif, menjadikan opsi penelusuran alternatif sebagai opsi default untuk Aplikasi Pelanggan, atau menampilkan hasil penelusuran atau sugesti penelusuran mereka sendiri atau pihak ketiga di Aplikasi Pelanggan, asalkan layanan non-Google Penelusuran atau hasil terkait tersebut ditampilkan secara terpisah dari Hasil yang Di-Grounding dan Saran Penelusuran dan tidak dapat dikaitkan secara wajar dengan, atau dikacaukan dengan hasil yang disediakan oleh, Google.

Menempatkan Gemini ke data Anda

Bagian ini menunjukkan cara melandasi respons teks ke penyimpanan data Vertex AI Agent Builder menggunakan Vertex AI API. Anda tidak dapat menentukan datastore penelusuran situs sebagai sumber dasar.

Model yang didukung

Model berikut mendukung grounding:

  • Gemini 1.5 Pro dengan input teks saja
  • Gemini 1.5 Flash dengan input teks saja
  • Gemini 1.0 Pro dengan input teks saja

Prasyarat

Ada prasyarat yang diperlukan sebelum Anda dapat melandaskan output model ke data Anda.

  1. Aktifkan Vertex AI Agent Builder dan aktifkan API.
  2. Buat sumber data dan aplikasi Vertex AI Agent Builder.
  3. Tautkan penyimpanan data Anda ke aplikasi di Vertex AI Agent Builder. Sumber data berfungsi sebagai dasar untuk melakukan grounding Gemini 1.0 Pro di Vertex AI. Anda tidak dapat menentukan datastore penelusuran situs sebagai sumber ground.
  4. Aktifkan edisi Enterprise untuk penyimpanan data Anda.

Lihat Pengantar Vertex AI Search untuk mengetahui informasi selengkapnya.

Mengaktifkan Vertex AI Agent Builder

  1. Di konsol Google Cloud, buka halaman Agent Builder.

    Agent Builder

  2. Baca dan setujui persyaratan layanan, lalu klik Lanjutkan dan aktifkan API.

Vertex AI Agent Builder tersedia di lokasi global, atau multi-region eu dan us. Untuk mempelajari lebih lanjut, lihat Lokasi Vertex AI Agent Builder

Membuat penyimpanan data di Vertex AI Agent Builder

Untuk melandasi model ke data sumber, Anda harus menyiapkan dan menyimpan data ke Vertex AI Search. Untuk melakukannya, Anda perlu membuat penyimpanan data di Vertex AI Agent Builder.

Jika memulai dari awal, Anda harus menyiapkan data untuk diserap ke Builder Agen Vertex AI. Lihat Menyiapkan data untuk penyerapan untuk memulai. Bergantung pada ukuran data Anda, proses transfer dapat memerlukan waktu beberapa menit hingga beberapa jam. Hanya penyimpanan data tidak terstruktur yang didukung untuk grounding.

Setelah menyiapkan data untuk penyerapan, Anda dapat Membuat penyimpanan data penelusuran. Setelah berhasil membuat penyimpanan data, Buat aplikasi penelusuran untuk menautkan ke penyimpanan data tersebut dan Aktifkan edisi Enterprise.

Contoh: Menghubungkan model Gemini 1.5 Flash ke ground

Gunakan petunjuk berikut untuk membuat model dengan data Anda sendiri.

Jika Anda tidak mengetahui ID penyimpanan data, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Vertex AI Agent Builder dan di menu navigasi, klik Data stores.

    Buka halaman Repositori data

  2. Klik nama penyimpanan data Anda.

  3. Di halaman Data untuk penyimpanan data Anda, dapatkan ID penyimpanan data. Anda tidak dapat menentukan datastore penelusuran situs sebagai sumber dasar.

REST

Untuk menguji prompt teks menggunakan Vertex AI API, kirim permintaan POST ke endpoint model penayang.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • LOCATION: Region untuk memproses permintaan.
  • PROJECT_ID: Project ID Anda.
  • MODEL_ID: ID model model multimodal.
  • TEXT: Petunjuk teks yang akan disertakan dalam perintah.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent

Meminta isi JSON:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": "TEXT"
    }]
  }],
  "tools": [{
    "retrieval": {
      "vertexAiSearch": {
        "datastore": projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID
      }
    }
  }],
  "model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "You can make an appointment on the website https://dmv.gov/"
          }
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        "..."
      ],
      "groundingMetadata": {
        "retrievalQueries": [
          "How to make appointment to renew driving license?"
        ],
        "groundingChunks": [
          {
            "retrievedContext": {
              "uri": "https://vertexaisearch.cloud.google.com/grounding-api-redirect/AXiHM.....QTN92V5ePQ==",
              "title": "dmv"
            }
          }
        ],
        "groundingSupport": [
          {
            "segment": {
              "startIndex": 25,
              "endIndex": 147
            },
            "segment_text": "ipsum lorem ...",
            "supportChunkIndices": [1, 2],
            "confidenceScore": [0.9541752, 0.97726375]
          },
          {
            "segment": {
              "startIndex": 294,
              "endIndex": 439
            },
            "segment_text": "ipsum lorem ...",
            "supportChunkIndices": [1],
            "confidenceScore": [0.9541752, 0.9325467]
          }
        ]
      }
    }
  ],
  "usageMetadata": {
    "..."
  }
}

Memahami respons yang didasarkan pada Google Penelusuran

Saat hasil yang di-grounding dihasilkan, metadata akan berisi URI yang mengalihkan ke penerbit konten yang digunakan untuk menghasilkan hasil yang di-grounding. Metadata juga berisi domain penayang. URI yang diberikan tetap dapat diakses selama 30 hari setelah hasil yang di-grounding dihasilkan.

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

import vertexai

from vertexai.preview.generative_models import (
    GenerationConfig,
    GenerativeModel,
    Tool,
    grounding,
)

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# data_store_id = "your-data-store-id"

vertexai.init(project=PROJECT_ID, location="us-central1")

model = GenerativeModel("gemini-1.5-flash-001")

tool = Tool.from_retrieval(
    grounding.Retrieval(
        grounding.VertexAISearch(
            datastore=data_store_id,
            project=PROJECT_ID,
            location="global",
        )
    )
)

prompt = "How do I make an appointment to renew my driver's license?"
response = model.generate_content(
    prompt,
    tools=[tool],
    generation_config=GenerationConfig(
        temperature=0.0,
    ),
)

print(response.text)

Konsol

Untuk mem-ground output model ke Vertex AI Agent Builder menggunakan Vertex AI Studio di Konsol Google Cloud, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Vertex AI Studio.

    Buka Vertex AI Studio

  2. Klik tab Freeform.
  3. Di panel samping, klik tombol Ground model responses untuk mengaktifkan pentanahan.
  4. Klik Sesuaikan dan tetapkan Vertex AI Agent Builder sebagai sumber. Jalur harus mengikuti format ini: projects/project_id/locations/global/collections/default_collection/dataStores/data_store_id.
  5. Masukkan perintah Anda di kotak teks, lalu klik Kirim.

Respons perintah Anda kini dihubungkan ke Vertex AI Agent Builder.

Referensi AI generatif lainnya