Mendapatkan jawaban dan tindak lanjut

Halaman ini memperkenalkan penelusuran dengan jawaban dan tindak lanjut untuk Agent Search dan menunjukkan cara menerapkannya untuk aplikasi penelusuran kustom menggunakan panggilan metode.

Penelusuran dengan jawaban dan tindak lanjut didasarkan pada metode jawaban. Metode answer menggantikan fitur ringkasan dari metode search yang lebih lama dan semua fitur dari metode converse yang tidak digunakan lagi. Metode jawaban juga memiliki beberapa fitur tambahan penting, seperti kemampuan untuk menangani kueri yang kompleks.

Fitur metode jawaban

Fitur utama metode jawaban adalah sebagai berikut:

  • Kemampuan untuk membuat jawaban atas kueri yang kompleks. Misalnya, metode jawaban dapat menguraikan kueri gabungan, seperti berikut, menjadi beberapa kueri yang lebih kecil untuk menampilkan hasil yang lebih baik yang digunakan untuk menghasilkan jawaban yang lebih baik:

    • "Berapa pendapatan Google Cloud dan Google Ads pada tahun 2024?"
    • "Setelah berapa tahun sejak didirikan, Google mencapai pendapatan 1 miliar USD?"
  • Kemampuan untuk menggabungkan penelusuran dan pembuatan jawaban dalam percakapan multi-turn dengan memanggil metode jawaban di setiap giliran.

  • Kemampuan untuk dipasangkan dengan metode penelusuran guna mengurangi latensi penelusuran. Anda dapat memanggil metode penelusuran dan metode jawaban secara terpisah serta merender hasil penelusuran dan jawaban dalam iframe yang berbeda pada waktu yang berbeda. Artinya, Anda dapat menampilkan hasil penelusuran (10 link biru) kepada pengguna dalam milidetik. Anda tidak perlu menunggu jawaban dibuat sebelum Anda dapat menampilkan hasil penelusuran.

Fitur jawaban dan tindak lanjut dapat dibagi menjadi tiga fase kueri, penelusuran, dan jawaban:

Kapan harus menggunakan jawaban dan kapan harus menggunakan penelusuran

Agent Search memiliki dua metode yang digunakan untuk membuat kueri aplikasi. Keduanya memiliki fitur yang berbeda tetapi tumpang-tindih.

Gunakan metode jawaban saat:

  • Anda menginginkan jawaban (atau ringkasan) yang dibuat AI dari hasil penelusuran.

  • Anda menginginkan penelusuran bergiliran, yaitu penelusuran yang mempertahankan konteks sehingga memungkinkan pertanyaan lanjutan.

Gunakan metode search dalam kasus berikut:

  • Anda hanya memerlukan hasil penelusuran, bukan jawaban yang dihasilkan.

  • Anda memiliki salah satu dari hal berikut:

    • Data media atau kesehatan
    • Embedding Anda sendiri
    • Kontrol sinonim atau pengalihan
    • Faset
    • Kode negara pengguna
  • Anda perlu menjelajahi data di penyimpanan data generik Anda.

Gunakan metode jawaban dan penelusuran bersama-sama saat:

  • Anda ingin menampilkan lebih dari sepuluh hasil penelusuran, dan Anda menginginkan jawaban yang dibuat.

  • Anda mengalami masalah latensi dan ingin menampilkan hasil penelusuran dengan cepat sebelum jawaban yang dihasilkan ditampilkan.

Fitur fase kueri

Fitur jawaban dan tindak lanjut mendukung pemrosesan kueri bahasa alami.

Bagian ini menjelaskan dan menggambarkan berbagai opsi untuk pengubahan frasa dan klasifikasi kueri.

Pengubahan frasa kueri

Pengubahan frasa kueri diaktifkan secara default. Fitur ini memilih cara terbaik untuk memparafrasakan kueri secara otomatis guna meningkatkan hasil penelusuran. Fitur ini juga dapat menangani kueri yang tidak memerlukan pengubahan kata-kata.

  • Menguraikan kueri kompleks menjadi beberapa kueri dan melakukan sub-kueri sinkron.

    Misalnya: Kueri kompleks dipecah menjadi empat kueri yang lebih kecil dan sederhana.

    Input pengguna Sub-kueri yang dibuat dari kueri kompleks
    Apa pekerjaan dan hobi yang dimiliki Andie Ram dan Arnaud Clément?
    • Pendudukan Andie Ram
    • Pekerjaan Arnaud Clément
    • Hobi Andie Ram
    • Hobi Arnaud Clément
  • Menyintesis kueri multigiliran, untuk membuat pertanyaan lanjutan yang sadar konteks dan memiliki status.

    Misalnya: Kueri yang disintesis dari input pengguna di setiap giliran mungkin terlihat seperti ini:

    Input pengguna Kueri yang disintesis
    Turn 1: laptop untuk sekolah laptop untuk sekolah
    Giliran 2: bukan mac laptop untuk sekolah selain mac
    Turn 3: layar yang lebih besar dan saya juga memerlukan keyboard dan mouse nirkabel laptop dengan layar lebih besar untuk sekolah, bukan mac, dengan keyboard dan mouse nirkabel
    Turn 4: dan ransel untuknya laptop layar yang lebih besar untuk sekolah, bukan Mac, dengan keyboard dan mouse nirkabel serta ransel untuk laptop tersebut
  • Menyederhanakan kueri panjang untuk meningkatkan pengambilan (memerlukan opsi Respons generatif).

    Misalnya: Kueri panjang dipersingkat menjadi kueri umum.

    Input pengguna Kueri disederhanakan
    Saya mencoba mencari tahu mengapa tombol \"Tambahkan ke Keranjang\" di situs kami tidak berfungsi dengan baik. Sepertinya saat pengguna mengklik tombol, item tidak ditambahkan ke keranjang dan mereka menerima pesan error. Saya telah memeriksa kodenya dan tampaknya sudah benar, jadi saya tidak yakin apa masalahnya. Dapatkah Anda membantu saya memecahkan masalah ini? Tombol "Tambahkan ke Keranjang" tidak berfungsi di situs.
  • Melakukan penalaran multi-langkah

    Penalaran multi-langkah didasarkan pada paradigma ReAct (reason + act) yang memungkinkan LLM menyelesaikan tugas kompleks menggunakan penalaran bahasa alami. Secara default, jumlah langkah maksimum adalah lima.

    Contoh:

    Input pengguna Dua langkah untuk menghasilkan jawaban
    Setelah berapa tahun sejak didirikan, Google mencapai pendapatan 1 miliar USD? Langkah 1:
    [Pemikiran]: Saya perlu mengetahui kapan Google didirikan, lalu saya dapat mengkuerinya untuk mengetahui pendapatannya sejak saat itu.
    [Tindakan] Penelusuran: Kapan Google didirikan?[Amati Hasil Penelusuran]: "1998"

    Langkah 2:
    [Pemikiran]: Sekarang saya perlu mencari tahu pendapatan tahunan Google sejak tahun 1998, dan mencari tahu kapan pertama kali melampaui 1 miliar.
    [Tindakan] Penelusuran: Pendapatan Google sejak 1998
    [Amati Hasil Penelusuran] Pendapatan Google pada tahun 1998, Pendapatan Google pada tahun 1999…..
    [Jawaban]: Google mencapai pendapatan lebih dari 1 miliar USD pada tahun 2003 [1], 5 tahun setelah didirikan pada tahun 1998[2].

    Penalaran multi-langkah mengharuskan opsi Respons generatif diaktifkan.

Klasifikasi kueri

Opsi klasifikasi kueri adalah untuk mengidentifikasi kueri yang bersifat merugikan dan kueri yang tidak mencari jawaban. Secara default, opsi klasifikasi kueri dinonaktifkan.

Untuk mengetahui informasi selengkapnya tentang kueri yang bersifat merugikan dan tidak mencari jawaban, lihat Mengabaikan kueri yang bersifat merugikan dan Mengabaikan kueri yang tidak mencari ringkasan.

Fitur fase penelusuran

Untuk penelusuran, metode jawaban memiliki opsi yang sama dengan metode penelusuran. Misalnya:

Fitur fase jawaban

Selama fase jawaban, saat jawaban dibuat dari hasil penelusuran, Anda dapat mengaktifkan fitur yang sama seperti pada metode penelusuran. Contoh:

  • Mendapatkan kutipan untuk menunjukkan sumber setiap kalimat dalam jawaban. Untuk mengetahui informasi selengkapnya, lihat Menyertakan kutipan.

  • Gunakan pengantar perintah untuk menyesuaikan jawaban terkait hal-hal seperti nada bahasa, gaya, dan panjang jawaban. Untuk mengetahui informasi selengkapnya, lihat Menentukan pembuka kustom.

  • Pilih model Vertex AI yang akan digunakan untuk pembuatan jawaban. Untuk mengetahui informasi selengkapnya, lihat Versi dan siklus proses model pembuatan jawaban.

  • Pilih apakah akan mengabaikan kueri yang telah diklasifikasikan sebagai kueri yang merugikan atau tidak mencari jawaban.

    Untuk mengetahui informasi selengkapnya tentang kueri yang bersifat memusuhi dan tidak mencari jawaban, lihat Mengabaikan kueri yang bersifat memusuhi dan Mengabaikan kueri yang tidak mencari ringkasan. Kueri yang tidak mencari jawaban juga disebut kueri yang tidak mencari ringkasan.

Fitur fase jawaban tambahan yang tidak tersedia dalam metode penelusuran adalah:

  • Mendapatkan skor dukungan untuk setiap klaim (kalimat dalam jawaban yang dihasilkan). Skor dukungan adalah nilai floating point dalam rentang [0,1] yang menunjukkan seberapa kuat klaim tersebut didasarkan pada data di penyimpanan data. Untuk mengetahui informasi selengkapnya, lihat Menampilkan skor perujukan.

  • Mendapatkan skor dukungan gabungan untuk jawaban. Skor dukungan menunjukkan seberapa baik jawaban didasarkan pada data di penyimpanan data. Untuk mengetahui informasi selengkapnya, lihat Skor dukungan perujukan balik.

  • Hanya berikan jawaban yang memiliki dasar yang kuat. Anda dapat memilih untuk hanya menampilkan jawaban yang memenuhi nilai minimum skor dukungan tertentu. Untuk mengetahui informasi selengkapnya, lihat Hanya tampilkan jawaban yang memiliki rujukan yang kuat.

  • Pilih untuk menampilkan pertanyaan terkait. Pertanyaan terkait adalah saran yang dapat dipilih pengguna Anda, alih-alih memasukkan pertanyaan mereka sendiri.

  • Tambahkan informasi personalisasi ke kueri sehingga jawaban dapat disesuaikan untuk setiap pengguna. Untuk mengetahui informasi selengkapnya, lihat Mempersonalisasi jawaban.

Untuk menerima jawaban multimodal yang menyertakan diagram atau gambar selain teks, tersedia opsi berikut:

  • Mendapatkan jawaban yang menyertakan diagram dan grafik yang memetakan data yang ada dalam jawaban. Untuk mengetahui informasi selengkapnya, lihat Membuat diagram untuk jawaban.

  • Mengambil gambar dari penyimpanan data. Jika penyimpanan data berisi gambar, metode jawaban dapat menampilkan gambar dalam jawaban. Gambar dari penyimpanan data juga dapat ditampilkan dalam referensi jika kutipan diminta. Untuk mengetahui informasi selengkapnya, lihat Mengambil gambar yang ada dari penyimpanan data.

Sebelum memulai

Bergantung pada jenis aplikasi yang Anda miliki, selesaikan persyaratan berikut:

  • Jika Anda memiliki aplikasi penelusuran terstruktur, tidak terstruktur, atau situs, aktifkan opsi berikut:

    • Fitur edisi Enterprise: Fitur ini memberi Anda akses ke fitur jawaban generatif inti. Hal ini mencakup semua fitur pembuatan jawaban, kecuali fitur jawaban generatif lanjutan, seperti pertanyaan terkait, penyederhanaan kueri, kueri multi-turn, dan jawaban multimodal yang menampilkan gambar dan diagram.
    • Respons generatif: Fitur ini memberi Anda akses ke fitur jawaban generatif lanjutan yang memerlukan penalaran multi-langkah, penyederhanaan kueri, kueri multi-giliran, pertanyaan terkait, dan jawaban multimodal yang menampilkan gambar dan diagram.
  • Selain itu, jika Anda memiliki penyimpanan data penelusuran situs, aktifkan Pengindeksan situs lanjutan.

Penelusuran dan jawaban (dasar)

Perintah berikut menunjukkan cara memanggil metode answer dan menampilkan jawaban yang dihasilkan serta daftar hasil penelusuran, dengan link ke sumbernya.

Perintah ini hanya menampilkan input yang diperlukan. Opsi dibiarkan pada defaultnya.

REST

Untuk menelusuri dan mendapatkan hasil dengan jawaban yang dihasilkan, lakukan hal berikut:

  1. Jalankan perintah curl berikut:

    curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "https://discoveryengine.googleapis.com/v1/projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search:answer" \
      -d '{
            "query": { "text": "QUERY"}
          }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID Google Cloud project Anda.
    • APP_ID: ID aplikasi Agent Search yang ingin Anda kueri.
    • QUERY: string teks bebas yang berisi pertanyaan atau kueri penelusuran. Misalnya, "Bandingkan database BigQuery dan Spanner?".

Python

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python Agent Search.

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

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine_v1 as discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION"                    # Values: "global", "us", "eu"
# engine_id = "YOUR_APP_ID"


def answer_query_sample(
    project_id: str,
    location: str,
    engine_id: str,
) -> discoveryengine.AnswerQueryResponse:
    #  For more information, refer to:
    # https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
    client_options = (
        ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
        if location != "global"
        else None
    )

    # Create a client
    client = discoveryengine.ConversationalSearchServiceClient(
        client_options=client_options
    )

    # The full resource name of the Search serving config
    serving_config = f"projects/{project_id}/locations/{location}/collections/default_collection/engines/{engine_id}/servingConfigs/default_serving_config"