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, gunakan metode engines.servingConfigs.search:

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

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

      Buka Aplikasi

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

  2. Melihat 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 yang dienkode UTF-8, yang berfungsi sebagai ID unik yang dipseudonimkan yang melacak pengguna. Panjang maksimumnya adalah 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 mengidentifikasi pengunjung secara unik di satu perangkat. Beberapa pertimbangan penting adalah sebagai berikut:

      • ID ini tidak berubah saat pengunjung login atau logout dari situs.
      • Kolom ini tidak boleh disetel 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 di peristiwa pengguna.

      Untuk 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 dikonversi menjadi nilai maksimum.
    • OFFSET: optional. Indeks awal hasil. Nilai defaultnya adalah 0.

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

    • ORDER_BY: optional. Urutan hasil diatur.

    • FILTER: optional. Kolom teks untuk memfilter penelusuran Anda 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.

    • BOOST_SPEC: optional. Spesifikasi untuk menaikkan 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 peningkatannya. Filter harus dievaluasi ke nilai boolean.

      Untuk mempelajari cara meningkatkan penelusuran terstruktur, lihat Meningkatkan hasil penelusuran.

    • FACET_SPEC: optional. Spesifikasi faset untuk melakukan penelusuran berfaset.

    • QUERY_EXPANSION_SPEC: optional. Spesifikasi untuk menentukan kondisi yang memungkinkan perluasan kueri terjadi. Defaultnya adalah DISABLED.

    • SPELL_CORRECTION_SPEC: optional. Spesifikasi untuk menentukan kondisi yang menyebabkan koreksi ejaan harus dilakukan. Defaultnya adalah AUTO.

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

    • DATA_STORE_SPEC: filter untuk penyimpanan data tertentu yang akan dicari. Hal 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 mereka dengan menggunakan beberapa kunci dan nilai atribut sebagai filter.

      Dalam contoh respons ini, warna hijau digunakan untuk mempersempit 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 dimasukkan ke dalam 11 bucket dalam rentang: 0, 0,1, 0,2, … hingga 1,0. Makin tinggi skornya, makin relevan dokumen tersebut.

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 Anda memulai: Pastikan aplikasi penelusuran dikaitkan dengan penyimpanan data terstruktur atau tidak terstruktur.

REST

Untuk meminta agar 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 konsol Google Cloud , 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 berbeda antara hasil konsol dan hasil API. Jika Anda melihat pesan ini, kemungkinan alasannya adalah konsol menggunakan model LLM yang berbeda dari API. Contoh curl dan kode di halaman ini menggunakan model LLM yang stabil.

  • Untuk mengubah atau melihat model LLM yang digunakan di halaman Preview UI, buka halaman Configurations > 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.