Halaman ini memperkenalkan penelusuran dengan tindak lanjut untuk Vertex AI Search dan menunjukkan cara menerapkannya menggunakan panggilan API.
Jika Anda ingin menambahkan penelusuran dengan tindak lanjut ke widget penelusuran, lihat Mengonfigurasi hasil untuk widget penelusuran.
Penelusuran dengan tindak lanjut berlaku untuk aplikasi penelusuran dengan data tidak terstruktur dan situs.
Penelusuran dengan tindak lanjut tidak berlaku untuk aplikasi Agen Vertex AI. Aplikasi Agen Vertex AI menggunakan agen yang dapat melakukan percakapan tentang konten dengan pengguna akhir Anda. Untuk mengetahui informasi selengkapnya tentang Agen Vertex AI, lihat Pengantar Agen Vertex AI.
Tentang penelusuran dengan kueri lanjutan
Penelusuran dengan penelusuran lanjutan didasarkan pada model AI generatif. Penelusuran dengan penelusuran lanjutan berbeda dengan penelusuran data tidak terstruktur reguler karena penelusuran dengan penelusuran lanjutan memperhitungkan kueri sebelumnya dalam sesi penelusuran yang sama.
Penelusuran dengan kueri lanjutan mendukung hal berikut:
Pemrosesan kueri bahasa alami: Pemrosesan ini memproses dan memahami input bahasa manusia, mengidentifikasi intent di balik kueri, dan menampilkan hasil yang relevan.
Kesadaran konteks: Fitur ini memahami konteks interaksi sebelumnya dan memberikan jawaban yang kontekstual.
Multi-giliran: Fitur ini memungkinkan pengguna mengajukan pertanyaan lanjutan dan menerima respons yang relevan.
Contoh penelusuran dengan kueri lanjutan
Berikut adalah contoh penelusuran dengan kueri lanjutan. Misalkan Anda ingin mengetahui tentang berlibur di Meksiko:
Anda: Kapan waktu terbaik untuk berlibur di Meksiko?
Penelusuran dengan tindak lanjut: Waktu terbaik untuk berlibur di Meksiko adalah selama musim kemarau, yang berlangsung dari November hingga April.
Anda: Berapa nilai tukarnya?
Penelusuran dengan tindak lanjut: 1 USD sama dengan sekitar 17,65 peso Meksiko.
Anda: Berapa suhu rata-rata pada bulan Desember?
Penelusuran dengan tindak lanjut: Suhu rata-rata bervariasi dari 21-26°C. Rata-rata suhu di Cancun adalah ~ 25°C.
Dengan penelusuran reguler, pertanyaan Anda "Berapa nilai tukarnya"? tidak akan dapat dijawab karena penelusuran reguler tidak akan tahu bahwa Anda menginginkan nilai tukar Meksiko. Demikian pula, penelusuran reguler tidak akan mempertahankan konteks untuk memberikan suhu untuk Meksiko.
Tentang percakapan
Dalam penelusuran dengan tindak lanjut, percakapan terdiri dari kueri teks yang diberikan oleh pengguna dan respons yang diberikan oleh Vertex AI Search.
Pasangan kueri dan respons ini terkadang disebut sebagai pesan. Dalam contoh sebelumnya, pesan kedua terdiri dari "Berapa nilai tukarnya?" dan "1 USD sama dengan sekitar 17,65 peso Meksiko".
Percakapan disimpan di penyimpanan data yang sama dengan tempat data tidak terstruktur disimpan. Di penyimpanan data, percakapan direpresentasikan oleh Resource percakapan. Selain berisi pesan kueri dan respons, resource percakapan memiliki:
Nama unik (ID percakapan).
Status (sedang berlangsung atau selesai).
ID pseudo pengguna, yang merupakan ID pengunjung yang melacak pengguna. Nilai ini dapat ditetapkan secara terprogram.
Waktu mulai dan waktu berakhir.
Sebelum memulai
Pastikan Anda memenuhi prasyarat berikut. Persyaratan bervariasi, bergantung pada jenis aplikasi yang Anda miliki.
Jika Anda memiliki aplikasi penelusuran tidak terstruktur, pastikan hal berikut diaktifkan: Fitur LLM lanjutan
Jika Anda memiliki aplikasi penelusuran situs, pastikan hal berikut diaktifkan:
Menyimpan percakapan dan mendapatkan respons
Anda dapat menggunakan command line atau library klien untuk membuat respons penelusuran dan menyimpan percakapan penelusuran dengan tindak lanjut.
REST
Untuk menggunakan command line guna membuat percakapan dan menghasilkan respons dari input pengguna, ikuti langkah-langkah berikut:
Tentukan penyimpanan data tempat Anda ingin menyimpan histori percakapan:
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/dataStores/DATA_STORE_ID/conversations" \ -d '{ "user_pseudo_id": "USER_PSEUDO_ID" }'
PROJECT_ID: Nomor atau ID project project Google Cloud Anda
DATA_STORE_ID: ID penyimpanan data yang terkait dengan aplikasi Anda.
USER_PSEUDO_ID: Ini adalah ID unik untuk melacak pengunjung penelusuran. Misalnya, Anda dapat menerapkannya dengan cookie HTTP, yang mengidentifikasi pengunjung secara unik di satu perangkat.
Klik untuk melihat contoh respons dari perintah
POST
.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "startTime": "2023-08-15T20:08:12.094639Z" }
Buat respons penelusuran dan tambahkan ke percakapan baru atau yang sudah ada di penyimpanan data Anda:
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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "filter": "FILTER" }'
PROJECT_ID: Nomor atau ID project project Google Cloud Anda
DATA_STORE_ID: ID penyimpanan data yang terkait dengan aplikasi Anda.
CONVERSATION_ID: ID unik untuk percakapan, misalnya,
123456
. Untuk percakapan penelusuran dengan tindak lanjut, gunakan ID percakapan yang sama di setiap giliran.FREE_TEXT: String teks bebas yang berisi pertanyaan pengguna—misalnya,
what is bigquery?
FILTER: Kolom teks untuk memfilter penelusuran menggunakan ekspresi filter. Nilai defaultnya adalah string kosong. Cara Anda membuat filter bervariasi, bergantung pada apakah Anda memiliki data situs atau data tidak terstruktur dengan metadata. Untuk mengetahui informasi selengkapnya, lihat Memfilter penelusuran dengan tindak lanjut.
Klik untuk melihat contoh respons dari perintah
POST
.{ "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } }, "conversation": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }, "searchResults": [ { "id": "c86f19582746b56f71c9bb6929893835", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/c86f19582746b56f71c9bb6929893835", "id": "c86f19582746b56f71c9bb6929893835", "derivedStructData": { "link": "gs://aquamuse-data-ucs-eval-dev/documents/94627ee0249dfdfda25b1b158c717bca.txt", "snippets": [ { "snippet_status": "SUCCESS", "snippet": "For larger websites, talk to the IT team and/or utilize a big data solution such as Google \u003cb\u003eBigQuery\u003c/b\u003e to extract all URLs. It may also be necessary to ask the ..." } ], "extractive_answers": [ { "content": "Alternatively, load the Server Log Files into Google BigQuery and use the Google BigQuery interface or the 360 Data Studio to analyze the data. To monitor the indexation numbers of the HTTP and the HTTPS version, keep an eye on all submitted XML Sitemaps." } ] } } }, { "id": "774bd7ce2a3509ab4bbd1fc876f39dc2", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/774bd7ce2a3509ab4bbd1fc876f39dc2", "id": "774bd7ce2a3509ab4bbd1fc876f39dc2", "derivedStructData": { "snippets": [ { "snippet": "No snippet is available for this page.", "snippet_status": "NO_SNIPPET_AVAILABLE" } ], "extractive_answers": [ { "content": "This consists of a collection of virtual tables. A virtual table exists for every queryable object type (content type if you prefer) in the repository. Each row in these virtual tables correspond to an instance of the corresponding object type (or of one of its subtypes)." } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/28841ef8590a105e9415f1390648a811.txt" } } }, { "id": "3e1d306e49aefd9e23f2d5f7a66e6c76", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/3e1d306e49aefd9e23f2d5f7a66e6c76", "id": "3e1d306e49aefd9e23f2d5f7a66e6c76", "derivedStructData": { "snippets": [ { "snippet": "No snippet is available for this page.", "snippet_status": "NO_SNIPPET_AVAILABLE" } ], "extractive_answers": [ { "content": "Other logo switches are based on search terms. For instance, if the term "ASCII art" is searched, an ASCII art version of the Google logo will appear next to the search box." } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/98008df3eef5d3ee1661c52f23189190.txt" } } }, { "id": "cf94e24aacd47cd2c2f5effcbdeda832", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/cf94e24aacd47cd2c2f5effcbdeda832", "id": "cf94e24aacd47cd2c2f5effcbdeda832", "derivedStructData": { "extractive_answers": [ { "content": "The company is listed on the NASDAQ stock exchange under the ticker symbols GOOGL and GOOG, and on the Frankfurt Stock Exchange under the ticker symbol GGQ1. These ticker symbols now refer to Alphabet Inc., Google's holding company, since the fourth quarter of 2015." } ], "snippets": [ { "snippet": "No snippet is available for this page.", "snippet_status": "NO_SNIPPET_AVAILABLE" } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/d80204083ef1096799fa4b7257548b33.txt" } } }, { "id": "05bc6497a4e7e6ca36b2e495b354b764", "document": { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/branches/0/documents/05bc6497a4e7e6ca36b2e495b354b764", "id": "05bc6497a4e7e6ca36b2e495b354b764", "derivedStructData": { "extractive_answers": [ { "content": "SQL injection countermeasures are designed to utilize secure programming methods. By changing the variables used by the application code, weaknesses in applications can be greatly minimized. This report will detail how to perform a SQL injection and explore the best countermeasures to prevent the attack." } ], "link": "gs://aquamuse-data-ucs-eval-dev/documents/7cba75d646f5774a21d96801bec68bb3.txt", "snippets": [ { "snippet_status": "NO_SNIPPET_AVAILABLE", "snippet": "No snippet is available for this page." } ] } } } ] }
Ulangi langkah 2 untuk setiap pertanyaan baru dalam percakapan.
Python
Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI Agent Builder.
Untuk melakukan autentikasi ke Vertex AI Agent Builder, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Memfilter penelusuran dengan kueri lanjutan
Saat membuat kueri dengan penelusuran dengan tindak lanjut, Anda dapat menyertakan kolom filter
untuk membatasi kumpulan dokumen tempat respons berasal. Anda
membuat filter menggunakan ekspresi filter. Ekspresi filter yang Anda
gunakan bervariasi, bergantung pada apakah Anda memiliki data situs atau data tidak terstruktur dengan
metadata.
Memfilter ekspresi untuk data situs
Jika memiliki penyimpanan data dengan data situs, Anda dapat memfilter penelusuran dengan kueri tindak lanjut menggunakan ekspresi filter di Ekspresi filter dengan pengindeksan situs lanjutan. Setelah Anda
membuat ekspresi filter, gunakan untuk nilai kolom filter
di
langkah 2 Menyimpan percakapan dan mendapatkan respons.
Memfilter ekspresi untuk data tidak terstruktur dengan metadata
Jika memiliki penyimpanan data dengan data tidak terstruktur dengan metadata, Anda dapat memfilter penelusuran dengan kueri tindak lanjut sehingga menampilkan dokumen berdasarkan kolom metadata yang dimuat dokumen. Lihat Memfilter penelusuran untuk data terstruktur atau
tidak terstruktur untuk memahami cara menggunakan metadata guna
memfilter penelusuran biasa (tanpa tindak lanjut). Anda dapat menggunakan prinsip yang sama ini
untuk menggunakan metadata guna memfilter penelusuran dengan tindak lanjut. Setelah Anda membuat
ekspresi filter, gunakan untuk nilai kolom filter
di langkah 2
Menyimpan percakapan dan mendapatkan respons.
Mengonfigurasi ringkasan
Pesan respons dari penelusuran dengan tindak lanjut adalah ringkasan yang dibuat dan ditampilkan
di summaryText
. Ada berbagai cara untuk mengonfigurasi ringkasan
yang dihasilkan. Hal ini dijelaskan di bagian berikut:
- Mendapatkan kutipan dengan hasil penelusuran
- Mengabaikan kueri yang bersifat permusuhan
- Mengabaikan kueri penelusuran non-ringkasan
- Menetapkan jumlah hasil yang akan digunakan dalam ringkasan
- Mendapatkan ringkasan yang disesuaikan
- Menerapkan SafeSearch ke respons chat
Mendapatkan kutipan dengan hasil penelusuran
Kutipan, jika ditentukan, adalah angka yang ditempatkan secara inline dalam ringkasan penelusuran. Angka ini menunjukkan dari hasil penelusuran mana kalimat tertentu dalam ringkasan diambil.
Untuk mendapatkan kutipan:
Ikuti prosedur Menyimpan percakapan dan mendapatkan respons chat sebelumnya, kecuali pada langkah 2, jalankan perintah ini yang menyertakan kolom
summarySpec
yang menetapkanincludeCitations
ke benar.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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "include_citations": true } }'
Klik untuk melihat bagian respons dari contoh perintah.
{ "reply": { "summary": { } "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly [1]. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data [2, 3].", "safetyAttributes": { "categories": [ "Finance", "Legal" ] …
Nomor kutipan disertakan dalam teks ringkasan. Nomor kutipan mengacu pada
hasil penelusuran yang ditampilkan dan diindeks 1. Misalnya, [1]
berarti
kalimat diatribusikan ke hasil penelusuran pertama. [2, 3]
berarti
kalimat diatribusikan ke hasil penelusuran kedua dan ketiga.
Mengabaikan kueri yang bersifat permusuhan
Kueri adversarial mencakup komentar negatif atau dirancang untuk menghasilkan
output yang tidak aman dan melanggar kebijakan. Anda dapat menentukan bahwa tidak ada ringkasan penelusuran yang harus
ditampilkan untuk kueri yang bersifat menyerang. Saat kueri adversarial diabaikan, properti summaryText
berisi teks boilerplate yang menunjukkan bahwa tidak ada ringkasan penelusuran yang ditampilkan. Dokumen penelusuran ditampilkan untuk kueri yang bersifat permusuhan meskipun ringkasan penelusuran tidak ditampilkan.
Untuk menentukan bahwa tidak ada ringkasan penelusuran yang akan ditampilkan untuk kueri yang bersifat menyerang:
Ikuti prosedur Menyimpan percakapan dan mendapatkan respons chat sebelumnya, kecuali pada langkah 2, jalankan perintah ini yang menyertakan kolom
summarySpec
yang menetapkanignoreAdversarialQuery
ke benar.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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "ignoreAdversarialQuery": true } }'
Klik untuk melihat bagian respons dari kueri adversarial.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "ADVERSARIAL_QUERY_IGNORED" ] …
Mengabaikan kueri penelusuran non-ringkasan
Kueri penelusuran non-ringkasan menampilkan hasil yang tidak cocok untuk ringkasan. Misalnya, "why is the sky blue" dan "Who is the best soccer player in the world?" adalah kueri yang mencari ringkasan, tetapi "SFO airport" dan "world cup 2026" bukan. Kueri tersebut kemungkinan besar adalah kueri navigasi. Anda dapat menentukan bahwa tidak ada ringkasan penelusuran yang akan ditampilkan untuk kueri penelusuran non-ringkasan. Dokumen penelusuran ditampilkan untuk kueri penelusuran non-ringkasan meskipun ringkasan penelusuran tidak ditampilkan.
Untuk menentukan bahwa tidak ada ringkasan penelusuran yang akan ditampilkan untuk kueri penelusuran non-ringkasan:
Ikuti prosedur Menyimpan percakapan dan mendapatkan respons chat sebelumnya, kecuali pada langkah 2, jalankan perintah ini yang menyertakan kolom
summarySpec
yang menetapkanignoreNonSummarySeekingQuery
ke benar.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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "ignore_non_summary_seeking_query": true } }'
Klik untuk melihat bagian respons dari kueri adversarial.
"reply": { "summary": { "summaryText": "A summary could not be generated for your search query. Here are some search results.", "summarySkippedReasons": [ "NON_SUMMARY_SEEKING_QUERY_IGNORED" ] …
Menetapkan jumlah hasil yang akan digunakan dalam ringkasan
Anda dapat menentukan jumlah hasil yang akan digunakan dalam membuat ringkasan. Secara default, jika kolom summaryResultCount
tidak ditetapkan, semua hasil yang ditampilkan akan digunakan untuk membuat ringkasan.
Untuk menetapkan jumlah hasil teratas yang akan digunakan untuk ringkasan:
Ikuti prosedur Menyimpan percakapan dan mendapatkan respons chat sebelumnya, kecuali pada langkah 2, jalankan perintah ini yang menyertakan kolom
summarySpec
yang menetapkansummaryResultCount
.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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "summary_result_count": NUMBER_OF_RESULTS } }'
NUMBER_OF_RESULTS: Jumlah hasil teratas yang akan digunakan untuk membuat ringkasan penelusuran. Jika jumlah hasil yang ditampilkan kurang dari
summaryResultCount
, ringkasan akan dibuat dari semua hasil. Nilai maksimumnya adalah5
.
Mendapatkan ringkasan yang disesuaikan
Anda bisa mendapatkan ringkasan yang disesuaikan dengan memberikan petunjuk dalam bahasa alami di
kolom modelPromptSpec.preamble
saat meminta ringkasan.
Anda dapat meminta penyesuaian seperti panjang dan tingkat detail, gaya output (seperti "sederhana"), bahasa output, fokus jawaban, dan format (seperti tabel, butir, dan XML).
Misalnya, untuk kueri "Apa manfaat bigquery?", Anda dapat memasukkan petunjuk penyesuaian seperti contoh berikut:
Contoh petunjuk:
"please show the answer format in an ordered list"
Contoh jawaban:
The benefits of BigQuery are: 1. Increased business productivity 2. IT staff productivity 3. Reduced infrastructure costs 4. Loading and exporting data are free
Contoh petunjuk:
give a very detailed answer
Contoh jawaban:
BigQuery is a serverless, highly scalable, and cost-effective cloud data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that takes care of provisioning, scaling, and managing the underlying infrastructure, so you can focus on analyzing your data. BigQuery is also integrated with other Google Cloud services, such as Google Kubernetes Engine, Cloud Data Fusion, and Cloud Dataproc, making it easy to build and deploy data pipelines. Here are some of the benefits of using BigQuery: * **Fast and scalable:** BigQuery can process petabytes of data very quickly, and it can scale to handle even the most demanding workloads. * **Cost-effective:** BigQuery is a very cost-effective way to store and analyze data. You only pay for the data that you use, and there are no upfront costs or commitments. * **Secure:** BigQuery is a secure platform that meets the needs of even the most security-conscious organizations. * **Easy to use:** BigQuery is easy to use, even for non-technical users. It has a simple and intuitive user interface, and it supports a variety of data sources. * **Integrated with other Google Cloud services:** BigQuery is integrated with other Google Cloud services, making it easy to build and deploy data pipelines. If you are looking for a fast, scalable, and cost-effective way to analyze your data, then BigQuery is a great option.
Untuk mendapatkan ringkasan yang disesuaikan:
Ikuti prosedur Menyimpan percakapan dan mendapatkan respons chat sebelumnya, kecuali pada langkah 2, jalankan perintah ini yang menyertakan kolom
summarySpec
yang menentukan petunjuk penyesuaian dimodelPromptSpec.preamble
.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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "summarySpec": { "modelPromptSpec": { "preamble": "CUSTOMIZATION_INSTRUCTIONS" } } }'
- CUSTOMIZATION_INSTRUCTIONS: Petunjuk untuk penyesuaian, sebagai string.
Menerapkan SafeSearch ke respons chat
SafeSearch dapat digunakan untuk memfilter konten output yang vulgar, tidak aman, dan melanggar kebijakan dari respons ringkasan. Untuk mengetahui informasi selengkapnya tentang SafeSearch, lihat Setelan keamanan untuk Vertex AI Search.
Untuk menerapkan penelusuran aman ke respons chat:
Ikuti prosedur Menyimpan percakapan dan mendapatkan respons chat sebelumnya, kecuali pada langkah 2, di bagian kueri, tentukan
safe_search
.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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID:converse" \ -d '{ "query": { "input": "FREE_TEXT"}, "safe_search": true }'
Melihat dan mengubah percakapan yang tersimpan
Anda dapat menggunakan command line untuk mendapatkan, menghapus, memperbarui, dan mencantumkan percakapan yang disimpan.
Mendapatkan percakapan dari penyimpanan data
Untuk mendapatkan semua detail tentang percakapan tertentu dari penyimpanan data:
Jalankan perintah curl berikut:
curl -X GET \ -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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID"
PROJECT_ID: Nomor atau ID project project Google Cloud Anda
DATA_STORE_ID:ID penyimpanan data yang terkait dengan aplikasi Anda.
CONVERSATION_ID: ID percakapan
Klik untuk melihat contoh respons dari perintah
GET
.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/2040473575290303058", "state": "IN_PROGRESS", "userPseudoId": "2040473575290303058", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:11:24.046735Z" }
Menghapus percakapan dari penyimpanan data
Secara default, percakapan yang lebih lama dari 60 hari yang lalu akan otomatis dihapus. Namun, jika Anda ingin menghapus percakapan tertentu—misalnya, jika percakapan tersebut tidak sengaja berisi konten sensitif, gunakan panggilan API ini untuk menghapusnya.
Untuk menghapus percakapan dari penyimpanan data:
Jalankan perintah curl berikut:
curl -X DELETE \ -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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID"
PROJECT_ID: Nomor atau ID project project Google Cloud Anda
DATA_STORE_ID: ID penyimpanan data yang terkait dengan aplikasi Anda.
CONVERSATION_ID: ID percakapan
Respons dari perintah
DELETE
akan terlihat seperti ini:{}
Memperbarui percakapan
Ada berbagai alasan mengapa Anda mungkin ingin memperbarui percakapan. Misalnya, untuk melakukan salah satu hal berikut:
Menandai percakapan sebagai selesai
Menggabungkan pesan dari satu percakapan ke percakapan lainnya
Mengubah
user_pseudo_id
Untuk memperbarui state
dalam percakapan:
Jalankan perintah curl berikut:
curl -X PATCH \ -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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID?updateMask=state" \ -d '{ "state": "NEW_STATE" }'
PROJECT_ID: Nomor atau ID project project Google Cloud Anda
DATA_STORE_ID: ID penyimpanan data yang terkait dengan aplikasi Anda.
CONVERSATION_ID: ID percakapan yang ingin Anda perbarui
NEW_STATE: Nilai baru untuk status—misalnya,
COMPLETED
Klik untuk melihat contoh respons dari perintah
PATCH
.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "COMPLETED", "userPseudoId": "test_id1", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }
Untuk memperbarui user_pseudo_id
dalam percakapan:
Jalankan perintah curl berikut:
curl -X PATCH \ -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/dataStores/DATA_STORE_ID/conversations/CONVERSATION_ID?updateMask=user_pseudo_id" \ -d '{ "user_pseudo_id": "NEW_USER_PSEUDO_ID" }'
PROJECT_ID: Nomor atau ID project project Google Cloud Anda
DATA_STORE_ID: ID penyimpanan data yang terkait dengan aplikasi Anda.
CONVERSATION_ID: ID percakapan yang ingin Anda perbarui
NEW_USER_PSEUDO_ID: Nilai baru untuk ID pseudo pengguna
Klik untuk melihat contoh respons dari perintah
PATCH
.{ "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id1", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }
Perintah sebelumnya menunjukkan cara mengubah user_pseudo_id.
. Namun, Anda
dapat memperbarui kolom lain dalam percakapan dengan mengganti user_pseudo_id
dengan kolom lain di resource
Percakapan.
Mencantumkan semua percakapan
Untuk mencantumkan semua percakapan di penyimpanan data:
Jalankan perintah curl berikut:
curl -X GET \ -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/dataStores/DATA_STORE_ID/conversations"
PROJECT_ID: Nomor atau ID project project Google Cloud Anda
DATA_STORE_ID: ID penyimpanan data yang terkait dengan aplikasi Anda.
Klik untuk melihat contoh respons dari perintah
GET
.{ "conversations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" }, { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/2040473575290303058", "state": "IN_PROGRESS", "userPseudoId": "2040473575290303058", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ] } ] }
Respons berisi daftar percakapan dan next_page_token
. Jika tidak ada
next_page_token
yang ditampilkan, tidak ada lagi percakapan yang akan dicantumkan.
Ukuran halaman default adalah 50.
Mencantumkan percakapan menurut filter
Daripada mencantumkan semua percakapan di penyimpanan data, Anda dapat mencantumkan semua percakapan terbuka atau semua percakapan yang terkait dengan pengguna tertentu.
Misalnya, Anda dapat menampilkan penelusuran yang ditutup kepada pengguna dengan opsi untuk membuka kembali salah satunya.
Untuk melakukannya, Anda mencantumkan percakapan yang cocok dengan filter tertentu:
user_pseudo_id
atau
state
(IN_PROGRESS
atau COMPLETED
).
Mencantumkan percakapan untuk pengguna
Untuk mencantumkan percakapan yang terkait dengan pengguna atau pengunjung:
Jalankan perintah curl berikut:
curl -X GET \ -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/dataStores/DATA_STORE_ID/conversations?filter=user_pseudo_id=USER_PSEUDO_ID"
PROJECT_ID: Nomor atau ID project project Google Cloud Anda
DATA_STORE_ID: ID penyimpanan data yang terkait dengan aplikasi Anda.
USER_PSEUDO_ID: ID pseudo pengguna yang percakapannya ingin Anda cantumkan.
Respons dari perintah
GET
akan terlihat seperti ini:Klik untuk melihat contoh respons dari perintah
GET
.{ "conversations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" } ] }
Mencantumkan percakapan untuk pengguna dan status
Untuk mencantumkan percakapan dalam status tertentu (terbuka atau tertutup) dan yang terkait dengan pengguna atau pengunjung:
Jalankan perintah curl berikut:
curl -X GET \ -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/dataStores/DATA_STORE_ID/conversations?filter=user_pseudo_id=USER_PSEUDO_ID%20AND%20state=STATE"
PROJECT_ID: Nomor atau ID project project Google Cloud Anda
DATA_STORE_ID: ID penyimpanan data yang terkait dengan aplikasi Anda.
USER_PSEUDO_ID: ID pseudo pengguna yang percakapannya ingin Anda cantumkan.
STATE: Apakah percakapan terbuka atau tertutup (
IN_PROGRESS
atauCOMPLETED
)
Respons dari perintah
GET
akan terlihat seperti ini:Klik untuk melihat contoh respons dari perintah
GET
.{ "conversations": [ { "name": "projects/12345/locations/global/collections/default_collection/dataStores/my-data-store_4321/conversations/11078281986791420687", "state": "IN_PROGRESS", "userPseudoId": "test_id", "messages": [ { "userInput": { "input": "what is bigquery?" } }, { "reply": { "summary": { "summaryText": "BigQuery is a cloud-based data warehouse that enables businesses to analyze all their data very quickly. It is a fully managed service that provides a simple and cost-effective way to store and analyze large amounts of data." } } } ], "startTime": "2023-08-15T20:08:12.094639Z" } ] }
Untuk informasi umum tentang sintaksis pemfilteran, lihat Pemfilteran AIP-160.
Pertanyaan terkait
Pertanyaan terkait adalah Pratinjau dengan fitur daftar yang diizinkan yang dapat menampilkan pertanyaan terkait selain hasil penelusuran.
Misalnya, saat Anda bertanya "Kapan waktu terbaik untuk berlibur di Meksiko?", selain menjawab pertanyaan Anda, penelusuran akan menyarankan pertanyaan lain yang mungkin Anda ajukan, seperti "Bulan apa yang paling murah untuk berlibur di Meksiko?" dan "Bulan apa saja yang ramai turis di Meksiko?".
Jika Anda ingin aplikasi penelusuran menampilkan pertanyaan terkait, hubungi tim akun Google Anda dan beri tahu mereka project dan aplikasi mana yang ingin Anda aktifkan untuk pertanyaan terkait. Jika tidak menggunakan konfigurasi penayangan default, Anda juga harus memberikan nama konfigurasi penayangan.
Setelah fitur pertanyaan terkait diaktifkan, pertanyaan akan ditampilkan sebagai
string di ConverseConversationResponse
.
Informasi selengkapnya
Untuk informasi selengkapnya tentang kolom
summaryResultCount
,includeCitations
,ignoreAdversarialQuery
,ignoreNonSummarySeekingQuery
, lihat SummarySpec dalam dokumentasi Vertex AI Agent Builder API.Untuk contoh lain mendapatkan ringkasan penelusuran, lihat Mendapatkan ringkasan.