Fitur pencarian mendalam menyediakan sistem Q&A pengetahuan profesional berdasarkan arsitektur multi-agen. Fitur ini dirancang untuk memberikan jawaban mendalam yang akurat, fokus, dan komprehensif dengan mengambil data secara efisien, memahami maksud pengguna, mengintegrasikan informasi dari berbagai sumber, serta menghasilkan jawaban terstruktur. Dibandingkan dengan mesin pencari tradisional, fitur ini unggul dalam memecah pertanyaan kompleks, mengintegrasikan data multisumber, dan mengaitkan pengetahuan lintas domain.
Perbandingan
Tabel berikut menunjukkan perbandingan antara pencarian mendalam dan pencarian AI tradisional.
Dimensi | Pencarian Mendalam | Pencarian AI Tradisional |
Kemampuan pemahaman | Inferensi kontekstual dan pengenalan maksud. | Pengambilan semantik dan pengambilan kata kunci. |
Mode respons | Secara proaktif meminta detail kontekstual (seperti rentang waktu, batasan wilayah). | Secara pasif menerima pertanyaan asli. |
Sumber data | Mendukung agregasi lintas platform (seperti domain pribadi, Internet, database). | Bergantung pada satu sumber data. |
Kepadatan pengetahuan | Mengeluarkan beberapa referensi teranotasi dalam satu respons hingga pertanyaan dijawab dengan akurat. | Hanya menyediakan 3-5 segmen data terkait. |
Kedalaman interaksi | Mendukung percakapan profesional multi-putaran berkelanjutan. | Bergantung pada jumlah putaran dalam penalaran. |
Pertanyaan yang sesuai | Pertanyaan kompleks, terbuka (seperti analisis, perbandingan). | Pertanyaan sederhana, faktual. |
Arsitektur
Pencarian mendalam didasarkan pada arsitektur multi-agen, yang mencakup agen tunggal berikut:
Agen pemahaman query: Memahami dan menulis ulang query asli.
Agen perencanaan otonom: Mengidentifikasi maksud query, merencanakan jalur eksekusi, serta memperbaiki jawaban.
Agen pencarian: Melakukan pengambilan pengetahuan dan ringkasan dalam putaran saat ini.
Agen percakapan santai: Menanggapi percakapan santai, seperti "Halo".
Agen klarifikasi: Menghasilkan pertanyaan tindak lanjut untuk menjelaskan pertanyaan ambigu.
Agen ringkasan: Memberikan jawaban akhir atas pertanyaan.
Contoh
Konsol
1. Masuk ke Konsol OpenSearch, pilih Edisi Pencarian Percakapan Berbasis LLM OpenSearch. Klik Instance Management di panel navigasi sebelah kiri, lalu klik Manage.

2. Di halaman detail instans, klik Uji Q&A, aktifkan Pencarian Mendalam. Masukkan pertanyaan Anda di kotak dialog, lalu klik Kirim.

3. Lihat respons Q&A.

Panggilan dari API
Parameter
Parameter | Tipe | Diperlukan | Nilai default | Deskripsi |
options.chat.enable_deep_search | Boolean | Tidak | true | Menentukan apakah akan mengaktifkan fitur pencarian mendalam.
|
options.chat.agent.think_process | Boolean | Tidak | true | Menentukan apakah akan menampilkan proses berpikir. |
options.chat.agent.max_think_round | Integer | Tidak | 10 | Jumlah putaran berpikir (maksimum 20). |
options.chat.agent.language | String | Tidak | AUTO | Bahasa untuk proses berpikir dan jawaban. AUTO: pilih Cina atau Inggris berdasarkan query. CN: Cina. EN: Inggris. |
Untuk informasi tentang parameter Q&A lengkap, lihat parameter Q&A.
Contoh body permintaan
{
"question" : {
"text" : "Rekomendasikan 3 album Jay Chou",
"type" : "TEXT"
},
"options": {
"retrieve": {
"web_search": {
"enable": true
}
},
"chat": {
"enable_deep_search": true,
"model": "qwen3-235b-a22b"
},
"agent": {
"think_process": true,
"max_think_round": 10,
"language": "AUTO"
}
}
}Parameter respons
Parameter | Tipe | Deskripsi |
request_id | String | ID permintaan. |
status | String | Status pemrosesan permintaan.
|
latency | Float | Waktu permintaan sukses, dikonsumsi oleh server. Unit: milidetik. |
id | Integer | ID kunci utama. |
title | String | Judul dokumen. |
category | String | Nama kategori. |
url | String | Tautan dokumen. |
answer | String | Hasil Q&A. |
type | String | Tipe hasil yang dikembalikan. |
scores | Array | Skor konten dokumen. |
event | String | Acara berpikir. THINK+ACTION+ANSWER adalah satu putaran (THINK tidak dijamin ditampilkan). THINK menunjukkan berpikir, ACTION menunjukkan tindakan yang dilakukan, dan ANSWER menunjukkan kesimpulan dari putaran berpikir ini. SUMMARY adalah hasil akhir, hanya satu untuk tipe teks. |
event_status | String | Menunjukkan apakah hasilnya lengkap. PROCESSING: menjawab sedang berlangsung. FINISHED: menjawab selesai. |
code | String | Kode kesalahan (tidak dikembalikan jika tidak ada kesalahan). |
message | String | Pesan kesalahan (tidak dikembalikan jika tidak ada kesalahan). |
Contoh body respons
{
"request_id": "f1b9*****************2853a",
"status": "OK",
"latency": 33967.562031,
"result": {
"data": [
{
"answer": "Pengguna meminta rekomendasi untuk 3 album Jay Chou. Saya perlu memahami dulu apa saja album Jay Chou, lalu memilih 3 yang representatif untuk direkomendasikan.",
"type": "TEXT_MARKDOWN",
"reference": [],
"rich_text_ref": [],
"event": "THINK",
"event_status": "FINISHED"
},
{
"answer": "Daftar semua album Jay Chou",
"type": "TEXT_MARKDOWN",
"reference": [],
"rich_text_ref": [],
"event": "ACTION",
"event_status": "FINISHED"
},
{
"answer": "Daftar album Jay Chou (diurutkan berdasarkan tahun rilis): \n\n1. **《JAY》** (2000) \n2. **《Fantasy》** (2001) \n3. **《The Eight Dimensions》** (2002) \n4. **《Ye Hui Mei》** (2003) \n5. **《Common Jasmine Orange》** (2004) \n6. **《November's Chopin》** (2005) \n7. **《Still Fantasy》** (2006) \n8. **《On the Run》** (2007) \n9. **《Capricorn》** (2008) \n10. **《The Era》** (2010) \n11. **《Exclamation Mark》** (2011) \n12. **《Opus 12》** (2012) \n13. **《Aiyo, Not Bad》** (2014) \n14. **《Jay Chou's Bedtime Stories》** (2016) \n15. **《Greatest Works of Art》** (2022) \n\nCatatan: Beberapa hasil pencarian menyebutkan lagu-lagu yang sebenarnya adalah trek dalam album. Saya telah mengorganisasikannya menjadi daftar album lengkap.",
"type": "TEXT_MARKDOWN",
"reference": [],
"rich_text_ref": [],
"event": "ANSWER",
"event_status": "FINISHED"
},
{
"answer": "\nPertama, pertanyaan pengguna adalah: \"Rekomendasikan 3 album Jay Chou\". Saya perlu menjawab berdasarkan informasi yang diketahui. Informasi yang diketahui mencakup banyak dokumen yang menggambarkan album-album Jay Chou.\n\nMereview informasi yang diketahui:\n- [Dokumen 01] mencantumkan album dan lagu Jay Chou, tetapi tampaknya hanya menyebutkan album \"JAY\" dan mencantumkan beberapa lagu. Dokumen dimulai dengan mengatakan \"Karya musik Jay Chou mencakup enam album pribadi resmi dan empat album EP\", tetapi tidak sepenuhnya mencantumkan nama-nama album spesifik. Itu mencantumkan lagu-lagu, tetapi hanya \"JAY\" yang disebutkan secara eksplisit sebagai nama album.\n- [Dokumen 02] menyebutkan album seperti \"The Eight Dimensions\", \"Jay Chou's Bedtime Stories\", \"Fantasy\", \"Jay\" dan memberikan tahun-tahunnya.\n- [Dokumen 03] mirip dengan [Dokumen 02], menyebutkan album seperti \"Greatest Works of Art\", \"Jay Chou's Bedtime Stories\", \"Aiyo, Not Bad\", \"Opus 12\", \"Exclamation Mark\".\n- [Dokumen 04] menyebutkan \"JAY\" dan \"Fantasy\" dan menggambarkannya.\n- [Dokumen 05] mirip dengan [Dokumen 02] dan [Dokumen 03], menyebutkan album yang sama.\n\nDari dokumen-dokumen ini, saya dapat mengekstrak daftar album Jay Chou:\n- [Dokumen 02] dan [Dokumen 03] jelas mencantumkan nama-nama album dan tahun-tahunnya:\n - \"Greatest Works of Art\" 2022\n - \"Jay Chou's Bedtime Stories\" 2016\n - \"Aiyo, Not Bad\" 2014\n - \"Opus 12\" 2012\n - \"Exclamation Mark\" 2011\n- Selain itu, [Dokumen 01] menyebutkan \"JAY\" 2000, [Dokumen 04] juga menyebutkan \"JAY\" dan \"Fantasy\".\n- [Dokumen 02] juga menyebutkan \"The Eight Dimensions\" 2002, \"Fantasy\" 2001, \"Jay\" 2000 (mungkin merujuk pada \"JAY\").\n\nMenggabungkan semua dokumen, album Jay Chou mencakup yang berikut:\n- \"JAY\" 2000 [Dokumen 01][Dokumen 04]\n- \"Fantasy\" 2001 [Dokumen 02][Dokumen 04]\n- \"The Eight Dimensions\" 2002 [Dokumen 02]\n- \"Exclamation Mark\" 2011 [Dokumen 02][Dokumen 03]\n- \"Opus 12\" 2012 [Dokumen 02][Dokumen 03]\n- \"Aiyo, Not Bad\" 2014 [Dokumen 02][Dokumen 03]\n- \"Jay Chou's Bedtime Stories\" 2016 [Dokumen 02][Dokumen 03]\n- \"Greatest Works of Art\" 2022 [Dokumen 02][Dokumen 03]\n\nPengguna meminta 3 rekomendasi album. Saya perlu memilih berdasarkan informasi yang diketahui dan memastikan setiap poin memiliki dukungan sumber.\n\nKriteria rekomendasi: Saya harus memilih beberapa album klasik atau representatif. Dari dokumen-dokumen:\n- [Dokumen 02] dan [Dokumen 03] sangat memuji \"Fantasy\", menyebutnya sebagai \"puncak karier musik Jay Chou dan tolok ukur era yang banyak musisi coba tiru tetapi sulit dilewati.\" [Dokumen 02][Dokumen 03]\n- [Dokumen 01] menyebutkan \"JAY\" sebagai album pertama.\n- [Dokumen 02] menyebutkan bahwa \"The Eight Dimensions\" melanjutkan gaya dua album pertama dan memenangkan banyak penghargaan. [Dokumen 02]\n- Album lain seperti \"Jay Chou's Bedtime Stories\" dan \"Greatest Works of Art\" juga disebutkan.\n\nJadi, saya bisa merekomendasikan:\n1. \"Fantasy\" - karena digambarkan sebagai puncak dan tolok ukur.\n2. \"JAY\" - sebagai album pertama, memiliki signifikansi historis.\n3. \"The Eight Dimensions\" - karena melanjutkan kesuksesan dan memenangkan penghargaan.\n\nAtau, saya bisa memilih yang lebih baru, tetapi dokumen-dokumen menekankan pentingnya album awal.\n\nMemastikan kutipan sumber: Setiap fakta harus dikutip dalam format [Dokumen xx].\n\nPersyaratan jawaban:\n- Gunakan bahasa Cina.\n- Jika informasi yang diketahui dapat menjawab pertanyaan, harus menggunakan informasi yang diketahui dan mengutip sumber.\n- Gunakan format markdown kaya: seperti daftar, tabel, dll.\n- Nada alami, tidak kaku.\n- Akurasi, jangan membuat informasi.\n\nStruktur jawaban:\n- Mulailah dengan merekomendasikan langsung 3 album.\n- Berikan alasan untuk setiap album, berdasarkan dokumen.\n- Organisasikan menggunakan daftar atau tabel.\n- Kutip sumber.\n\nRekomendasi akhir:\n1. \"Fantasy\" (2001) - Alasan: Digambarkan sebagai puncak karier musik Jay Chou dan tolok ukur era. [Dokumen 02][Dokumen 03]\n2. \"JAY\" (2000) - Alasan: Album pertama, menetapkan gaya musiknya. [Dokumen 01][Dokumen 04]\n3. \"The Eight Dimensions\" (2002) - Alasan: Melanjutkan gaya karya sebelumnya, memenangkan banyak penghargaan, membawa harapan bagi industri rekaman. [Dokumen 02]\n\nAtau, pertimbangkan \"Jay Chou's Bedtime Stories\" atau \"Greatest Works of Art\", tetapi dokumen-dokumen memiliki deskripsi yang lebih sedikit tentang mereka, sementara album awal memiliki lebih banyak evaluasi.\n\nDi [Dokumen 02][Dokumen 03], ada deskripsi rinci tentang \"Fantasy\", album lain hanya dicantumkan.\n\nJadi, memilih ketiganya masuk akal.\n\nGunakan markdown: Bisa menggunakan daftar berurutan atau tabel.\n\nSebagai contoh:\n- Gunakan ### untuk jud<ul><li><p>Gunakan ### untuk judul</p></li><li><p>Daftar deskripsi</p></li><li><p>Cetak tebal nama album</p></li></ul><p>Pastikan tidak ada informasi tambahan yang ditambahkan: hanya berdasarkan dokumen.</p></section></section><section><h3></h3><section><h4></h4><p>Konfigurasikan variabel lingkungan dan .</p><note><ul><li><p>AccessKey akun Alibaba Cloud memiliki izin untuk memanggil semua operasi API. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil operasi API atau melakukan pemeliharaan rutin. Untuk informasi lebih lanjut, lihat <a baseurl="t2889377_v1_4_0.xdita" data-node="23758" data-root="66095" data-tag="xref" href="t23758.xdita#" id="461125c59ewa9">Buat Pengguna RAM</a>.</p></li><li><p>Untuk informasi tentang cara membuat ID AccessKey dan rahasia AccessKey, lihat <a baseurl="t2889377_v1_4_0.xdita" data-node="162684" data-root="66095" data-tag="xref" href="t162684.xdita#" id="d1ad4f66a30cq">Buat AccessKey</a>.</p></li><li><p>Jika Anda menggunakan AccessKey Pengguna RAM, pastikan Pengguna RAM diberi izin .</p></li><li><p>Jangan menyimpan Pasangan AccessKey Anda di kode proyek Anda. Jika tidak, AccessKey Anda mungkin bocor. Ini mengancam keamanan semua sumber daya di bawah akun Anda.</p></li></ul></note><ul><li><p>Metode konfigurasi untuk dan :</p><p>Ganti <code data-tag="code" id="9a6307f44fxfh"><access_key_id>Panggilan dari SDK
Konfigurasikan variabel lingkungan
Konfigurasikan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.
AccessKey dari akun Alibaba Cloud memiliki izin untuk memanggil semua Operasi API. Kami menyarankan Anda menggunakan Pengguna RAM untuk memanggil Operasi API atau melakukan O&M rutin. Untuk informasi lebih lanjut, lihat Buat Pengguna RAM.
Untuk informasi tentang cara membuat ID AccessKey dan Rahasia AccessKey, lihat Buat AccessKey.
Jika Anda menggunakan AccessKey dari Pengguna RAM, pastikan bahwa Pengguna RAM diberi AliyunOpenSearchFullAccess izin.
Jangan menyimpan Pasangan AccessKey Anda di kode proyek Anda. Jika tidak, AccessKey Anda mungkin bocor, yang dapat mengancam keamanan semua sumber daya di bawah akun Anda.
Metode konfigurasi untuk Linux dan macOS:
Ganti
<access_key_id>dengan ID AccessKey dari Pengguna RAM Anda dan<access_key_secret>dengan Rahasia AccessKey dari Pengguna RAM Anda.export ALIBABA_CLOUD_ACCESS_KEY_ID=<access_key_id> export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<access_key_secret>Metode konfigurasi untuk Windows:
Buat file variabel lingkungan, tambahkan variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET, serta tulis ID AccessKey dan Rahasia AccessKey yang telah disiapkan.
Mulai ulang Windows.
Tambahkan dependensi
<dependency>
<groupId>com.aliyun.opensearch</groupId>
<artifactId>aliyun-sdk-opensearch</artifactId>
<version>6.0.0</version>
</dependency>Kode
Referensikan kode contoh berikut untuk menyelesaikan panggilan.
package com.aliyun.opensearch;
import com.aliyun.opensearch.OpenSearchClient;
import com.aliyun.opensearch.sdk.generated.OpenSearch;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchClientException;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchException;
import com.aliyun.opensearch.sdk.generated.commons.OpenSearchResult;
import java.util.HashMap;
import java.util.Map;
public class LLMSearch {
private static String accesskey = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID");
private static String secret = System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET");
private static String appName = "Nama aplikasi.";
private static String host = "Titik akhir API dari aplikasi.";
private static String path = "/apps/%s/actions/multi-search";
public static void main(String[] args) {
String appPath = String.format(path, appName);
//ApiReadTimeOut
OpenSearch openSearch = new OpenSearch(accesskey, secret, host);
openSearch.setTimeout(90000);
OpenSearchClient openSearchClient = new OpenSearchClient(openSearch);
Map<String, String> params = new HashMap<String, String>() {{
put("format", "full_json");
put("_POST_BODY", "{\"question\":{\"text\":\"Rekomendasikan 3 album Jay Chou\",\"type\":\"TEXT\",\"session\":\"\"},\"options\":{\"chat\":{\"stream\":true,\"enable_deep_search\":true,\"model\":\"opensearch-qwen\"}}}");
}};
try {
OpenSearchResult openSearchResult = openSearchClient
.callAndDecodeResult(appPath, params, "POST");
System.out.println("RequestID=" + openSearchResult.getTraceInfo().getRequestId());
System.out.println(openSearchResult.getResult());
} catch (
OpenSearchException e) {
System.out.println("RequestID=" + e.getRequestId());
System.out.println("ErrorCode=" + e.getCode());
System.out.println("ErrorMessage=" + e.getMessage());
} catch (
OpenSearchClientException e) {
System.out.println("ErrorMessage=" + e.getMessage());
}
}
}