Mendapatkan hasil penelusuran (Lama)

Halaman ini menunjukkan cara mendapatkan hasil penelusuran menggunakan API.

Anda dapat melakukan panggilan API dan mengintegrasikan panggilan tersebut ke server atau aplikasi Anda. Halaman ini menyertakan contoh kode tentang cara membuat kueri penelusuran menggunakan library klien gRPC dengan akun layanan.

Mendapatkan hasil penelusuran

Anda bisa mendapatkan hasil penelusuran menggunakan API.

REST

Untuk menggunakan API guna mendapatkan hasil penelusuran untuk aplikasi dengan data terstruktur atau tidak terstruktur data, gunakan metode engines.servingConfigs.search:

  1. Temukan ID aplikasi Anda. Jika Anda sudah memiliki ID aplikasi, lanjutkan ke langkah berikutnya.

    1. Di Google Cloud konsol, buka halaman Gemini Enterprise.

      Buka Aplikasi

    2. Di halaman Aplikasi, temukan nama aplikasi Anda dan dapatkan ID aplikasi dari kolom ID.

  2. Lihat pratinjau hasil penelusuran.

    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:search" \
    -d '{
    "query": "QUERY",
    "userPseudoId": "USER_PSEUDO_ID",
    "pageSize": "PAGE_SIZE",
    "offset": "OFFSET",
    "orderBy": "ORDER_BY",
    "filter": "FILTER",
    "boostSpec": "BOOST_SPEC",
    "facetSpec": "FACET_SPEC",
    "queryExpansionSpec": "QUERY_EXPANSION_SPEC",
    "spellCorrectionSpec": "SPELL_CORRECTION_SPEC",
    "contentSearchSpec": "CONTENT_SEARCH_SPEC",
    "dataStoreSpecs": [{"DATA_STORE_SPEC"}],
    }'
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Anda.
    • APP_ID: ID aplikasi yang ingin Anda kueri.
    • QUERY: teks kueri yang akan ditelusuri.
    • USER_PSEUDO_ID: string berenkode UTF-8, yang berfungsi sebagai ID pseudonim unik yang melacak pengguna. ID ini dapat memiliki panjang maksimum 128 karakter. Google sangat merekomendasikan penggunaan kolom ini karena dapat meningkatkan performa model dan kualitas personalisasi. Anda dapat menggunakan cookie HTTP untuk kolom ini, yang secara unik mengidentifikasi pengunjung di satu perangkat. Beberapa pertimbangan penting adalah sebagai berikut:

      • ID ini tidak berubah saat pengunjung login atau logout dari situs.
      • Kolom ini tidak boleh ditetapkan ke ID yang sama untuk beberapa pengguna. Jika tidak, penggunaan ID pengguna yang sama untuk beberapa pengguna dapat menggabungkan histori peristiwa pengguna yang berbeda dan menurunkan kualitas model.
      • Kolom ini tidak boleh menyertakan informasi identitas pribadi (PII).
      • Untuk permintaan penelusuran atau penjelajahan tertentu, kolom ini harus dipetakan ke kolom userPseudoId yang sesuai dalam peristiwa pengguna.

      Untuk mengetahui informasi selengkapnya, lihat userPseudoId.

    • PAGE_SIZE: jumlah hasil yang ditampilkan oleh penelusuran. Ukuran halaman maksimum yang diizinkan bergantung pada jenis data. Ukuran halaman di atas nilai maksimum akan diubah menjadi nilai maksimum.
    • OFFSET: opsional. Indeks awal hasil. Nilai defaultnya adalah 0.

      Misalnya, jika offset adalah 2, ukuran halaman adalah 10, dan ada 15 hasil yang akan ditampilkan, hasil 2 hingga 11 akan ditampilkan di halaman pertama.

    • ORDER_BY: opsional. Urutan hasil diatur.

    • FILTER: opsional. Kolom teks untuk memfilter penelusuran menggunakan ekspresi filter. Nilai defaultnya adalah string kosong, yang berarti tidak ada filter yang diterapkan.

      Contoh: color: ANY("red", "blue") AND score: IN(*, 100.0e)

      Untuk mengetahui informasi selengkapnya, lihat Memfilter penelusuran untuk data terstruktur atau tidak terstruktur data.

    • BOOST_SPEC: opsional. Spesifikasi untuk meningkatkan atau menyembunyikan dokumen. Nilai:

      • BOOST: bilangan floating point dalam rentang [-1,1]. Jika nilainya negatif, hasil akan diturunkan (muncul lebih rendah dalam hasil). Jika nilainya positif, hasil akan dipromosikan (muncul lebih tinggi dalam hasil).
      • CONDITION: ekspresi filter teks untuk memilih dokumen yang akan diterapkan penguatan. Filter harus dievaluasi ke nilai boolean.

      Untuk mempelajari penguatan untuk penelusuran terstruktur, lihat Meningkatkan hasil penelusuran.

    • FACET_SPEC: opsional. Spesifikasi faset untuk melakukan penelusuran dengan faset.

    • QUERY_EXPANSION_SPEC: opsional. Spesifikasi untuk menentukan kondisi yang akan memicu perluasan kueri. Default-nya adalah DISABLED.

    • SPELL_CORRECTION_SPEC: opsional. Spesifikasi untuk menentukan kondisi yang akan memicu koreksi ejaan. Default-nya adalah AUTO.

    • CONTENT_SEARCH_SPEC: opsional. Untuk mendapatkan cuplikan, jawaban ekstraktif, segmen ekstraktif, dan ringkasan penelusuran. Hanya untuk data tidak terstruktur. Untuk mengetahui informasi selengkapnya, lihat:

    • DATA_STORE_SPEC: filter untuk penyimpanan data tertentu yang akan ditelusuri. Filter ini dapat digunakan jika aplikasi penelusuran Anda terhubung ke beberapa penyimpanan data. Untuk mengetahui informasi selengkapnya, lihat DataStoreSpec.

    • Melihat hasil penelusuran terpandu dalam respons penelusuran:

      Hasil penelusuran terpandu ditampilkan dengan respons penelusuran untuk penelusuran terstruktur dan tidak terstruktur. Hasil penelusuran terpandu berisi daftar pasangan nilai kunci atribut yang diekstrak berdasarkan dokumen hasil penelusuran. Hal ini memungkinkan pengguna menyaring hasil penelusuran dengan menggunakan beberapa kunci dan nilai atribut sebagai filter.

      Dalam contoh respons ini, warna hijau digunakan untuk menyaring hasil penelusuran dengan mengirimkan permintaan penelusuran baru dengan kolom filter yang ditentukan sebagai _gs.color: ANY("green"):

      {
      "guidedSearchResult": {
        "refinementAttributes": [
          {
            "attributeKey": "_gs.color",
            "attributeValue": "green"
          },
          {
            "attributeKey": "_gs.category",
            "attributeValue": "shoe"
          }
        ]
      }
      }
      

Mendapatkan skor relevansi dokumen dengan hasil penelusuran

Skor relevansi dokumen didasarkan pada kemiripan kueri dengan dokumen. Skor ditempatkan ke dalam 11 bucket dalam rentang: 0, 0.1, 0.2, … hingga 1.0. Semakin tinggi skornya, semakin relevan dokumennya.

Pertimbangkan skor relevansi dokumen untuk kasus penggunaan berikut:

  • Pemfilteran pasca-penelusuran berdasarkan skor relevansi untuk menghapus hasil yang tidak relevan

  • Peringkat pasca-penelusuran atau sebagai input ke aplikasi lain

  • Proses debug: skor relevansi dapat memberikan insight tentang alasan beberapa hasil penelusuran ditampilkan

Untuk setiap hasil penelusuran, skor relevansi dapat ditampilkan:

  "results": [
    {
      "id": "DOCUMENT_ID",
      "document": {
      ...
      },
      "modelScores": {
        "relevance_score": {
          "values": [
            DOCUMENT-RELEVANCE-SCORE
          ]
        }
      }
    },
    ...

Lihat juga contoh perintah dalam prosedur di bawah.

Sebelum memulai: Pastikan aplikasi penelusuran dikaitkan dengan penyimpanan data terstruktur atau tidak terstruktur.

REST

Untuk meminta skor relevansi dokumen ditampilkan dengan hasil penelusuran, gunakan metode engines.servingConfigs.search sebagai berikut:

  1. Temukan ID aplikasi Anda. Jika Anda sudah memiliki ID aplikasi, lanjutkan ke langkah berikutnya.

    1. Di Google Cloud konsol, buka halaman Gemini Enterprise.

      Buka Aplikasi

    2. Di halaman Aplikasi, temukan nama aplikasi Anda dan dapatkan ID aplikasi dari kolom ID.

  2. Jalankan perintah curl berikut untuk mendapatkan skor yang ditampilkan dengan hasil penelusuran.

    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:search" \
    -d '{
         "servingConfig": "projects/PROJECT_ID/locations/global/collections/default_collection/engines/APP_ID/servingConfigs/default_search",
         "query": "QUERY",
         "relevanceScoreSpec": {
           "returnRelevanceScore": true
         }
    }'
    
    • PROJECT_ID: ID project Anda.
    • APP_ID: ID aplikasi yang ingin Anda kueri.
    • QUERY: teks kueri yang akan ditelusuri.

Ringkasan penelusuran berbeda menurut model

Jika Anda membuat ringkasan penelusuran untuk kueri, Anda mungkin melihat bahwa ringkasan tersebut berbeda antara hasil konsol dan hasil API. Jika Anda melihat hal ini, kemungkinan alasannya adalah konsol menggunakan model LLM yang berbeda dari API. Contoh curl dan kode di halaman ini menggunakan model LLM stabil.

  • Untuk mengubah atau melihat model LLM yang digunakan di halaman Pratinjau UI, buka halaman Konfigurasi > tab UI untuk aplikasi Anda.

  • Untuk panggilan metode, model stabil adalah model default. Untuk menggunakan model LLM selain model stabil, lihat Menentukan model ringkasan dan Menentukan model jawaban.