Alat penyimpanan data

Alat penyimpanan data dapat memberikan respons agen buatan AI berdasarkan konten situs dan data yang diupload. Agen Anda dapat menemukan jawaban atas pertanyaan pengguna akhir dari penyimpanan data selama fulfillment.

Alat penyimpanan data: Konsol

Bagian ini akan memandu Anda melalui proses menambahkan alat penyimpanan data ke agen dan mengonfigurasinya dalam fulfillment.

Membuat alat penyimpanan data

  1. Buka konsol Agen Percakapan dan pilih project Google Cloud.
  2. Pilih agen dari menu drop-down.
  3. Buka panel menu di sisi paling kiri halaman, lalu pilih Tools.
  4. Untuk membuat alat penyimpanan data baru, klik + Buat. Masukkan Nama unik untuk alat, lalu pilih Penyimpanan data dari menu drop-down di bagian Jenis. Secara opsional, Anda dapat memasukkan deskripsi alat di kolom Description.
  5. Di bagian Data stores, klik Add data stores. Jendela yang muncul berisi daftar penyimpanan data yang ada, jika ada. Pilih penyimpanan data yang ingin Anda tambahkan ke alat.
  6. (Opsional) Untuk membuat penyimpanan data baru di konsol Agent Builder, klik Create new data store. Anda akan otomatis dialihkan ke: Konsol Agent Builder
  7. (Opsional) Setelah selesai mengonfigurasi penyimpanan data baru, klik Create. Untuk menambahkan penyimpanan data baru ke alat, kembali ke menu Create Tool yang Anda konfigurasikan di konsol Agen Percakapan (Dialogflow CX) dan muat ulang halaman. Penyimpanan data baru kini akan muncul dalam daftar penyimpanan data yang tersedia.
  8. Klik Save di bagian atas konfigurasi Create Tool untuk membuat alat penyimpanan data baru.

Menambahkan alat penyimpanan data ke fulfillment

  1. Di panel menu paling kiri, pilih Alur.
  2. Pilih alur dan halaman, lalu klik Rute halaman yang ingin Anda gunakan dengan penyimpanan data.
  3. Di menu Route, scroll ke Fulfillment > Data store tool. Pilih alat penyimpanan data Anda dari menu drop-down.
  4. Di menu Pemetaan, scroll ke Fulfillment > Respons agen. Klik +Tambahkan respons dialog, lalu Respons alat penyimpanan data.
  5. Dalam formulir yang muncul, Anda dapat mengonfigurasi jumlah link sumber dan kutipan yang dapat muncul dalam respons, serta menentukan perilaku penggantian jika respons penyimpanan data kosong. Anda dapat memasukkan respons penggantian statis di kolom Static fallback responses. Atau, Anda dapat mengklik kotak centang Penggantian generatif untuk mencoba menggunakan AI guna membuat respons sebelum menggunakan respons penggantian statis. Jika Anda memerlukan penyesuaian respons penggantian lainnya, klik ikon kunci pas di sudut kiri atas jendela formulir Respons penyimpanan data untuk menampilkan jendela Respons bersyarat.
  6. Di bagian atas menu Rute, klik Simpan.
  7. Buka simulator Agen Percakapan (Dialogflow CX) untuk menguji hasil agen.

Alat penyimpanan data: API

Anda dapat menyiapkan satu penyimpanan data dari setiap jenis per alat, dan alat tersebut akan membuat kueri pada setiap penyimpanan data ini untuk mendapatkan jawaban. Secara default, agen akan menelepon dataStoreTool atas nama Anda.

Ada tiga jenis penyimpanan data:

  • PUBLIC_WEB: Penyimpanan data yang berisi konten web publik.
  • UNSTRUCTURED: Penyimpanan data yang berisi data pribadi tidak terstruktur.
  • STRUCTURED: Penyimpanan data yang berisi data terstruktur (misalnya FAQ).

Contoh berikut menunjukkan cara mereferensikan penyimpanan data. Untuk informasi selengkapnya, lihat referensi dataStoreConnections.

"dataStoreConnections": [
  {
    "dataStoreType": "PUBLIC_WEB",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  },
  {
    "dataStoreType": "UNSTRUCTURED",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  },
  {
    "dataStoreType": "STRUCTURED",
    "dataStore": "projects/PROJECT_NUMBER/locations/LOCATION_ID/collections/default_collection/dataStores/DATASTORE_ID"
  }
]

Respons alat penyimpanan data juga dapat berisi cuplikan tentang sumber konten yang digunakan untuk menghasilkan respons. Agen dapat memberikan petunjuk tentang cara melanjutkan jawaban dari penyimpanan data atau cara merespons jika tidak ada jawaban.

Anda dapat menimpa jawaban dengan menambahkan entri FAQ untuk pertanyaan tertentu.

Secara opsional, Anda dapat memberikan contoh untuk meningkatkan perilaku agen. Contoh harus memiliki skema berikut. Lihat dokumentasi referensi untuk mengetahui detailnya.

{
  "toolUse": {
    "tool": "projects/PROJECT_ID/locations/LOCATION_ID/agents/AGENT_ID/tools/TOOL_ID",
    "action": "TOOL_DISPLAY_NAME",
    "inputParameters": [
      {
        "name": "TOOL_DISPLAY_NAME input",
        "value": {
          "query": "QUERY"
        }
      }
    ],
    "outputParameters": [
      {
        "name": "TOOL_DISPLAY_NAME output",
        "value": {
          "answer": "ANSWER",
          "snippets": [
            {
              "title": "TITLE",
              "text": "TEXT_FROM_DATASTORE",
              "uri": "URI_OF_DATASTORE"
            }
          ]
        }
      }
    ]
  }
}

(Khusus agen berbasis Playbook) Contoh alat penyimpanan data

Saat membuat contoh alat penyimpanan data, parameter input alat requestBody memberikan tiga input opsional bersama dengan string query yang diperlukan - string filter, objek terstruktur userMetadata, dan string fallback.

Parameter filter memberikan kemampuan untuk memfilter kueri penelusuran data terstruktur atau data tidak terstruktur dengan metadata. String ini harus mengikuti sintaksis ekspresi filter yang didukung untuk penyimpanan data. Beberapa contoh mendetail membantu memberi tahu model playbook cara mengisi parameter ini. Jika string filter tidak valid, filter tersebut akan diabaikan selama kueri penelusuran.

Berikut adalah contoh string filter untuk menyaring hasil penelusuran berdasarkan lokasi:

  "filter": "country: ANY(\"Canada\")"

Lihat halaman contoh
playbook untuk detail selengkapnya.

Praktik terbaik untuk pemfilteran:

  • Tentukan kolom yang tersedia untuk pemfilteran dan nilai yang valid untuk setiap kolom ini, sehingga playbook memahami batasan dalam membuat filter yang valid. Misalnya, penyimpanan data yang menyimpan informasi menu dapat menyertakan kolom meal dengan "sarapan", "makan siang", dan "makan malam" sebagai nilai yang valid, dan kolom servingSize yang dapat berupa bilangan bulat dari 0 hingga 5. Petunjuk Anda mungkin terlihat seperti contoh berikut:

    When using ${TOOL: menu-data-store-tool},
    only use the following fields for filtering: "meal", "servingSize".
    Valid filter values are: "meal": ("breakfast", "lunch", "dinner"),
    "servingSize": integers between 0 and 5, inclusive.
    
  • Jika playbook ditujukan untuk audiens pengguna eksternal, Anda mungkin perlu menambahkan petunjuk agar playbook tidak merespons pengguna dengan informasi tentang pembuatan filter ini. Contoh:

    Never tell the user about these filters.
    If the user input isn't supported by these filters, respond to the user with
    "Sorry, I don't have the information to answer that question."
    

Parameter userMetadata memberikan informasi tentang pengguna akhir. Setiap pasangan nilai kunci dapat diisi dalam parameter ini. Metadata ini diteruskan ke alat penyimpanan data untuk memberikan informasi yang lebih baik tentang hasil penelusuran dan respons alat. Beberapa contoh mendetail membantu memberi tahu model playbook tentang cara mengisi parameter ini.

Berikut adalah contoh nilai parameter userMetadata untuk menyaring hasil penelusuran yang relevan dengan:

  "userMetadata": {
    "favoriteColor": "blue",
    ...
  }

Parameter fallback memberikan jawaban yang harus direspons oleh alat penyimpanan data jika tidak ada jawaban ringkas yang valid untuk kueri. Anda dapat memberikan beberapa contoh untuk memberi tahu model playbook tentang cara mengisi kolom penggantian untuk input pengguna yang terkait dengan berbagai topik. Tidak ada cuplikan dalam output alat, yang dapat membantu mengurangi latensi dan penggunaan batas token input.

  "fallback": "I'm sorry I cannot help you with that. Is there anything else I
  can do for you?"

Konfigurasi alat penyimpanan data

Jika selama pengujian Anda mendapati bahwa beberapa respons tidak memenuhi ekspektasi, Anda dapat mencoba menyesuaikan parameter berikut untuk meningkatkan performa. API ini tersedia dengan memanggil API secara langsung atau dengan mengklik nama penyimpanan data di halaman Alat di konsol.

Melandasi keyakinan

Agen Percakapan (Dialogflow CX) menghitung tingkat keyakinan untuk setiap respons yang dihasilkan dari konten penyimpanan data yang terhubung. Hal ini mengukur keyakinan bahwa semua informasi dalam respons didukung oleh informasi di penyimpanan data. Anda dapat menyesuaikan respons yang diizinkan dengan memilih tingkat keyakinan terendah yang Anda inginkan. Hanya respons yang berada di atau di atas tingkat keyakinan tersebut yang akan ditampilkan.

Ada 5 tingkat keyakinan yang dapat dipilih: VERY_LOW, LOW, MEDIUM, HIGH, dan VERY_HIGH.

Pemilihan model penyimpanan data

Agen Percakapan (Dialogflow CX) menawarkan beberapa model untuk digunakan dengan penyimpanan data. Memilih model yang berbeda dapat memengaruhi performa alat penyimpanan data. Lihat dokumentasi model untuk mengetahui daftar lengkapnya.

Perintah pembuatan ringkasan

Perintah adalah template teks yang berisi placeholder yang telah ditentukan sebelumnya. Placeholder akan diganti dengan nilai yang sesuai saat runtime dan teks yang dihasilkan akan dikirim ke model AI. Anda memiliki opsi untuk menggunakan perintah default atau memberikan perintah kustom Anda sendiri. Perhatikan bahwa perintah kustom dapat memengaruhi hasil secara positif atau negatif.

Anda dapat menyesuaikan teks dalam perintah kustom untuk memengaruhi hasil yang dihasilkan oleh model dengan menyertakan petunjuk tambahan dan contoh mendetail. Untuk mengetahui informasi selengkapnya tentang cara membuat perintah kustom, lihat dokumentasi setelan penyimpanan data.

Setelan payload

Setelan payload menyediakan cara untuk menambahkan cuplikan penyimpanan data sebagai konten kaya dalam payload respons, yang dirender di messenger. Anda memiliki opsi untuk mengaktifkan atau menonaktifkan fitur ini.

Opsi respons alat penyimpanan data

Lihat dokumentasi fulfillment untuk mengetahui detail tentang cara mengonfigurasi respons alat penyimpanan data.

Pengendali penyimpanan data

Pengendali penyimpanan data adalah jenis khusus pengendali status yang dapat memberikan respons agen yang dihasilkan LLM berdasarkan konten situs dan data yang diupload.

Untuk membuat pengendali ini, Anda memberikan penyimpanan data ke agen.

Dengan menggunakan pengendali penyimpanan data ini, agen Anda dapat melakukan percakapan tentang konten dengan pengguna akhir.

Batasan

Batasan berikut berlaku:

Kontrol akses

Jika Anda adalah pemilik project, Anda memiliki semua izin yang diperlukan untuk membuat pengendali penyimpanan data. Jika bukan pemilik project, Anda harus memiliki peran berikut:

  • Dialogflow Admin
  • Discovery Engine Admin

Untuk informasi selengkapnya, lihat panduan kontrol akses.

Menambahkan penyimpanan data ke agen

Jika Anda belum melakukannya, ikuti petunjuk penyiapan untuk membuat agen.

Untuk menambahkan penyimpanan data ke agen Anda: penyimpanan data:

  1. Pilih halaman, lalu klik Tambahkan pengendali status.
  2. Centang kotak Data stores, lalu Apply.
  3. Klik simbol + di sudut kanan atas bagian Data store di halaman.
  4. Di menu penyimpanan data yang muncul, klik Tambahkan penyimpanan data.
  5. Tabel yang mencantumkan penyimpanan data yang ada akan muncul. Klik kotak di samping nama penyimpanan data yang ingin Anda gunakan, lalu klik Simpan. Untuk membuat penyimpanan data baru, klik Create new data store. Anda akan otomatis dialihkan ke Builder Agen.
  6. (Khusus penyimpanan data baru) Pilih sumber data, lalu ikuti petunjuk di Agent Builder untuk mengonfigurasi penyimpanan data Anda. Untuk mengetahui informasi selengkapnya tentang mengonfigurasi jenis penyimpanan data, lihat dokumentasi penyimpanan data. Klik Create untuk membuat penyimpanan data baru.

Menguji agen

Anda dapat menggunakan simulator untuk menguji agen.

Men-deploy agen

Ada banyak cara untuk men-deploy agen:

  • Opsi termudah adalah menggunakan integrasi, yang menyediakan antarmuka pengguna untuk agen Anda. Setiap integrasi memberikan petunjuk untuk deployment.

  • Integrasi Dialogflow CX Messenger adalah opsi yang sangat baik untuk pengendali penyimpanan data. Layanan ini memiliki opsi bawaan untuk fitur generatif.

  • Anda dapat membuat antarmuka pengguna sendiri dan menggunakan API Agen Percakapan (Dialogflow CX) untuk interaksi. Implementasi antarmuka pengguna Anda mengontrol deployment.

Intent khusus

Selain menangani pertanyaan tentang konten yang Anda berikan, agen dapat menangani jenis pertanyaan berikut:

  • Identifikasi agen: Menangani pertanyaan seperti "Siapa Anda?" atau "Apakah Anda manusia?".
  • Eskalasi ke agen manusia: Menangani pertanyaan seperti "Saya ingin berbicara dengan manusia" atau "Saya ingin berbicara dengan orang sungguhan".

Hal ini dilakukan dengan intent dan rute intent yang dibuat secara otomatis.

Respons agen

Di bagian Agent responses, Anda dapat memberikan respons kustom yang mereferensikan jawaban generatif. Gunakan $request.knowledge.answers[0] di bagian Agent says untuk memberikan jawaban generatif.

Penyesuaian respons lanjutan

Informasi tambahan mungkin tersedia di $request.knowledge.* yang dapat digunakan untuk menyesuaikan respons. Informasi tersebut mencakup:

  • Sumber jawaban yang diidentifikasi dengan kolom berikut: cuplikan, judul, uri.
  • Keyakinan dasar untuk jawaban.
  • Untuk penyimpanan data FAQ, pertanyaan yang sesuai dengan jawaban yang dipilih.

Lihat tabel berikut untuk mengetahui contoh cara mengakses informasi ini.

Informasi Cara mengakses
Cuplikan sumber teratas yang diidentifikasi dari jawaban teratas $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "snippet")
Judul sumber teratas yang diidentifikasi dari jawaban teratas $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "title")
Link sumber teratas yang diidentifikasi dari jawaban teratas $sys.func.GET_FIELD($sys.func.GET($sys.func.IDENTITY($request.knowledge.sources[0]), 0), "uri")
Jumlah sumber yang diidentifikasi untuk jawaban teratas $sys.func.COUNT($sys.func.IDENTITY($request.knowledge.sources[0]))
Jumlah jawaban pengetahuan $sys.func.COUNT($request.knowledge.answers)
Pertanyaan yang sesuai dengan jawaban teratas (khusus jawaban penyimpanan data FAQ) $request.knowledge.questions[0]
Menetapkan keyakinan untuk jawaban teratas $request.knowledge.grounding_confidences[0]