AI Search Open Platform menyediakan solusi berbasis Retrieval-Augmented Generation (RAG) untuk pencarian percakapan menggunakan basis pengetahuan. Solusi ini mencakup tiga modul: pra-pemrosesan data, pengambilan data, dan pembuatan respons. AI Search Open Platform menawarkan layanan untuk setiap modul sebagai komponen yang dapat dipilih, seperti penguraian dokumen, pemeringkatan ulang, dan generasi teks. Platform ini memungkinkan Anda menggunakan layanan melalui API. Untuk segera membangun aplikasi pencarian percakapan berbasis RAG, unduh kode ke mesin Anda dan konfigurasikan informasi seperti kunci API, titik akhir API, serta basis pengetahuan lokal.
Cara kerjanya
RAG adalah metode AI yang menggabungkan layanan pengambilan dan pembuatan untuk meningkatkan relevansi, akurasi, dan keragaman konten yang dihasilkan oleh model bahasa besar (LLM). Selama proses pembuatan, RAG pertama-tama mengambil informasi paling relevan dengan input dari sejumlah besar data eksternal atau basis pengetahuan. Informasi tersebut kemudian digunakan sebagai prompt atau konteks dalam LLM untuk menghasilkan output yang lebih tepat dan informatif. Selain parameter internal dan data pelatihan, LLM juga dapat merujuk pada data eksternal terbaru atau informasi spesifik domain guna meningkatkan akurasi output. 
Skenario
Pencarian percakapan berbasis basis pengetahuan cocok untuk berbagai skenario, seperti pengambilan dan ringkasan basis pengetahuan pribadi atau pencarian percakapan di vertikal industri. AI Search Open Platform menggabungkan RAG dan LLM untuk memahami serta menanggapi kueri kompleks dalam bahasa alami berdasarkan basis pengetahuan spesifik domain perusahaan. Solusi berbasis RAG membantu perusahaan dengan cepat mengambil informasi dari file PDF dan WORD, tabel, serta gambar menggunakan bahasa alami.
Prasyarat
AI Search Open Platform harus diaktifkan. Untuk informasi lebih lanjut, lihat Aktifkan AI Search Open Platform.
Titik akhir layanan dan kunci API harus diperoleh. Untuk informasi lebih lanjut, lihat Kueri titik akhir layanan dan Kelola kunci API.
AI Search Open Platform memungkinkan Anda memanggil layanan melalui Internet atau virtual private cloud (VPC), serta mendukung pemanggilan lintas wilayah melalui VPC.
Kluster Elasticsearch Alibaba Cloud versi V8.5 atau lebih baru harus dibuat. Untuk informasi lebih lanjut, lihat Buat kluster Elasticsearch Alibaba Cloud. Alamat IP perangkat Anda harus ditambahkan ke daftar putih alamat IP publik atau privat dari kluster Elasticsearch yang ingin Anda akses melalui Internet atau VPC. Untuk informasi lebih lanjut, lihat Konfigurasikan daftar putih alamat IP publik atau privat untuk kluster Elasticsearch.
Python 3.7 atau lebih baru harus diinstal, serta dependensi Python aiohttp 3.8.6 dan elasticsearch 8.14 di lingkungan pengembangan.
Membangun solusi pengembangan berbasis RAG
Untuk memudahkan akses pengguna, AI Search Open Platform menawarkan kerangka pengembangan berikut:
SDK untuk Java.
SDK untuk Python.
Jika bisnis Anda menggunakan LangChain, pilih LangChain sebagai kerangka pengembangan.
Jika bisnis Anda menggunakan LlamaIndex, pilih LlamaIndex sebagai kerangka pengembangan.
Langkah 1: Pilih layanan dan unduh kode
Pilih layanan algoritma dan kerangka pengembangan yang akan digunakan dalam solusi berbasis RAG sesuai dengan pengetahuan. Dalam contoh ini, SDK untuk Python digunakan.
Masuk ke konsol AI Search Open Platform.
Pilih wilayah Jerman (Frankfurt). Beralih ke AI Search Open Platform dan ruang kerja target.
Di panel navigasi sisi kiri, klik Scene Center. Klik Enter di bagian RAG Scene-Knowledge Base Online Q & A.

Pilih layanan yang ingin Anda gunakan dari daftar drop-down. Kemudian, pada tab Service Details, tinjau detail layanan.
CatatanUntuk menggunakan layanan algoritma dalam solusi berbasis RAG melalui API, tentukan ID layanan menggunakan service_id. Misalnya, ID layanan penguraian konten dokumen adalah ops-document-analyze-001.
Setelah memilih layanan, parameter service_id dalam kode yang dihasilkan dimodifikasi secara otomatis. Setelah mengunduh kode ke lingkungan lokal, ubah parameter service_id dalam kode untuk memanggil layanan lain.
Layanan
Deskripsi
Penguraian konten dokumen
Layanan penguraian konten dokumen (ops-document-analyze-001) menyediakan layanan penguraian dokumen umum yang mendukung ekstraksi struktur hirarkis logis seperti judul dan segmen, serta teks, tabel, gambar, dan informasi lain dari dokumen tidak terstruktur, dan mengeluarkannya dalam format terstruktur.
Penguraian konten gambar
Layanan pengenalan teks gambar (ops-image-analyze-ocr-001) memungkinkan Anda menggunakan fitur OCR untuk mengenali teks dalam gambar dan mengekstrak informasi teks untuk pengambilan gambar dan pencarian percakapan.
Layanan pengenalan konten gambar (ops-image-analyze-vlm-001) memungkinkan Anda menguraikan konten gambar berdasarkan LLM multi-modal. Anda juga dapat menggunakan layanan ini untuk menguraikan teks dalam gambar dan menggunakan teks yang diuraikan untuk pengambilan gambar dan pencarian percakapan.
Pemotongan dokumen
Layanan Pemotongan Dokumen Umum (ops-document-split-001): menyediakan layanan pemotongan teks umum. Anda dapat menggunakan layanan ini untuk membagi data terstruktur dalam format HTML, MARKDOWN, dan TXT berdasarkan paragraf, semantik, dan aturan tertentu. Anda juga dapat mengekstrak kode, gambar, dan tabel dari teks kaya.
Penyematan teks
Layanan vektorisasi teks OpenSearch -001 (ops-text-embedding-001): menyediakan layanan vektorisasi teks yang mendukung lebih dari 40 bahasa. Panjang maksimum teks input dapat mencapai 300 token, dan dimensi vektor yang dihasilkan adalah 1.536.
Layanan Vektorisasi Teks Universal OpenSearch -002 (ops-text-embedding-002): menyediakan layanan vektorisasi teks yang mendukung lebih dari 100 bahasa. Panjang maksimum teks input dapat mencapai 8.192 token, dan dimensi vektor yang dihasilkan adalah 1.024.
Layanan vektorisasi teks OpenSearch-Tiongkok -001 (ops-text-embedding-zh-001): menyediakan layanan vektorisasi teks untuk teks Tiongkok. Panjang maksimum teks input dapat mencapai 1.024 token, dan dimensi vektor yang dihasilkan adalah 768.
Layanan vektorisasi teks OpenSearch-Inggris -001 (ops-text-embedding-en-001): menyediakan layanan vektorisasi teks untuk teks Inggris. Panjang maksimum teks input dapat mencapai 512 token, dan dimensi vektor yang dihasilkan adalah 768.
Penyematan teks jarang
Vektorisasi teks jarang mengubah data teks menjadi vektor jarang yang menempati lebih sedikit ruang penyimpanan. Anda dapat menggunakan vektor jarang untuk mengekspresikan kata kunci dan informasi tentang istilah yang sering digunakan. Anda dapat melakukan pencarian hibrida dengan menggunakan vektor jarang dan padat untuk meningkatkan kinerja pengambilan.
Layanan vektorisasi teks jarang OpenSearch-generik (ops-text-sparse-embedding-001): menyediakan layanan vektorisasi teks yang mendukung lebih dari 100 bahasa. Panjang maksimum teks input dapat mencapai 8.192 token.
Analisis kueri
Layanan Analisis Kueri 001 (ops-query-analyze-001): menyediakan layanan analisis kueri umum berbasis LLM untuk memahami niat pengguna dan memperluas pertanyaan serupa.
Mesin pencari
Elasticsearch Alibaba Cloud adalah layanan cloud sepenuhnya dikelola dan siap pakai yang dikembangkan berdasarkan Elasticsearch open source. Sepenuhnya kompatibel dengan fitur open source, Elasticsearch Alibaba Cloud mendukung metode penagihan bayar sesuai pemakaian dan menyediakan ketersediaan siap pakai.
CatatanJika Anda memilih Elasticsearch Alibaba Cloud sebagai mesin pencari, layanan vektorisasi teks jarang tidak tersedia karena masalah kompatibilitas. Dalam hal ini, kami sarankan Anda menggunakan layanan vektorisasi teks.
OpenSearch Vector Search Edition adalah mesin pencari vektor terdistribusi berskala besar yang dikembangkan oleh Alibaba Group. OpenSearch Vector Search Edition mendukung berbagai algoritma pencarian vektor dan berkinerja baik dalam pengambilan tingkat tinggi. Anda dapat menggunakan OpenSearch Vector Search Edition untuk pembuatan indeks skala besar dan pengambilan secara hemat biaya. Fitur berikut didukung: penskalabilitas horizontal dan penggabungan indeks, pembuatan indeks pipeline, kueri waktu nyata saat pembuatan, dan pembaruan dinamis data waktu nyata.
CatatanUntuk menggunakan OpenSearch Vector Search Edition, ganti konfigurasi mesin dan kode dalam solusi.
Pemeringkatan ulang
Model pengaturan ulang BGE (ops-bge-reranker-larger): menyediakan layanan penilaian dokumen umum. Anda dapat menggunakan layanan ini untuk menilai dokumen berdasarkan kueri dan relevansi konten, mengurutkan dokumen secara menurun berdasarkan skor, dan kemudian mengembalikan skor.
LLM
OpenSearch-Qwen-Turbo: Menggunakan qwen-turbo sebagai model dasar, dengan penyempurnaan model supervisi, peningkatan augmentasi pengambilan, dan pengurangan bahaya.
Qwen-Turbo: Model tercepat dan paling hemat biaya dalam seri Qwen, cocok untuk tugas sederhana. Untuk informasi lebih lanjut, lihat Qwen LLMs.
Qwen-Plus: Seimbang dalam kemampuan, dengan efektivitas penalaran, biaya, dan kecepatan antara Qwen-Max dan Qwen-Turbo, cocok untuk tugas yang cukup kompleks. Untuk informasi lebih lanjut, lihat Qwen LLMs.
Qwen-Max (qwen-max) adalah model bahasa ultra-besar Qwen yang mendukung ratusan miliar parameter dan berbagai bahasa input seperti Tiongkok dan Inggris. Untuk informasi lebih lanjut, lihat Qwen LLMs.
Setelah memilih layanan, klik After the configuration is completed, enter the code query untuk melihat dan mengunduh kode.
Kode ini terdiri dari dua bagian: pemrosesan dokumen offline dan pencarian percakapan online dalam solusi berbasis RAG.
Proses
Deskripsi
Prosedur
Pemrosesan dokumen offline
Proses ini terdiri dari penguraian dokumen, ekstraksi gambar, pemotongan dokumen, penyematan teks, dan menulis hasil pemrosesan ke indeks Elasticsearch.
Gunakan fungsi utama document_pipeline_execute untuk melakukan langkah-langkah berikut. Kirim dokumen yang akan diproses dengan menggunakan URL dokumen atau file yang dikodekan Base64.
Uraikan dokumen. Untuk informasi lebih lanjut, lihat Penguraian konten dokumen.
Panggil operasi penguraian dokumen asinkron untuk mengekstrak konten dari URL atau mendekode konten dari file yang dikodekan Base64.
Buat tugas penguraian dengan fungsi create_async_extraction_task dan polling status penyelesaian tugas dengan fungsi poll_task_result.
Ekstrak gambar. Untuk informasi lebih lanjut, lihat Ekstraksi konten gambar.
Panggil operasi penguraian gambar asinkron untuk mengekstrak konten gambar dari URL atau mendekode konten gambar dari file yang dikodekan Base64.
Buat tugas penguraian gambar dengan fungsi create_image_analyze_task dan polling status penyelesaian tugas dengan fungsi get_image_analyze_task_status.
Potong dokumen. Untuk informasi lebih lanjut, lihat Pemotongan dokumen.
Panggil operasi pemotongan dokumen untuk memotong dokumen yang diuraikan berdasarkan kebijakan tertentu.
Gunakan fungsi document_split untuk memotong dokumen. Proses ini mencakup pemotongan teks dan penguraian teks kaya.
Penyematan teks. Untuk informasi lebih lanjut, lihat Penyematan teks.
Panggil operasi penyematan teks untuk mengonversi teks yang dipotong menjadi vektor padat.
Gunakan fungsi text_embedding untuk menghasilkan vektor embedding setiap potongan.
Tulis hasil pemrosesan ke indeks Elasticsearch. Untuk informasi lebih lanjut, lihat Gunakan fitur pencarian kNN Elasticsearch.
Buat indeks Elasticsearch yang konfigurasinya mencakup bidang embedding dan konten.
PentingSaat Anda membuat indeks Elasticsearch, sistem akan menghapus indeks dengan nama yang sama. Untuk mencegah sistem menghapus indeks secara salah, ubah nama indeks dalam kode.
Panggil fungsi helpers.async_bulk untuk menulis hasil embedding ke indeks Elasticsearch.
Pencarian percakapan online
Proses ini terdiri dari menghasilkan vektor kueri, melakukan analisis kueri, mengambil potongan dokumen yang relevan, memeringkat ulang hasil pencarian, dan menghasilkan jawaban berdasarkan hasil pencarian.
Gunakan fungsi utama query_pipeline_execute untuk memproses kueri pengguna dan menghasilkan jawaban.
Lakukan penyematan teks pada kueri. Untuk informasi lebih lanjut, lihat Penyematan teks.
Panggil operasi vektorisasi teks untuk mengonversi kueri menjadi vektor padat.
Gunakan fungsi text_embedding untuk menghasilkan vektor kueri.
Panggil layanan analisis kueri. Untuk informasi lebih lanjut, lihat Analisis kueri.
Panggil operasi analisis kueri untuk mengidentifikasi niat pengguna dan menghasilkan pertanyaan serupa dengan menganalisis riwayat percakapan.
Ambil potongan yang disematkan. Untuk informasi lebih lanjut, lihat Gunakan fitur pencarian kNN Elasticsearch.
Gunakan indeks Elasticsearch untuk mengambil potongan yang disematkan yang mirip dengan vektor kueri.
Gunakan operasi pencarian AsyncElasticsearch dan fitur pencarian tetangga terdekat (kNN) untuk mengambil hasil berdasarkan kesamaan vektor.
Peringkat ulang hasil. Untuk informasi lebih lanjut, lihat Layanan peringkat ulang.
Panggil operasi peringkat ulang untuk menilai potongan yang diambil dan mengurutkan hasil berdasarkan skor.
Panggil fungsi documents_ranking untuk menilai dan memeringkat ulang dokumen berdasarkan vektor kueri.
Panggil operasi pembuatan teks untuk menghasilkan jawaban. Untuk informasi lebih lanjut, lihat Detail API.
Gunakan layanan pembuatan teks dan panggil fungsi llm_call untuk menghasilkan jawaban berdasarkan hasil yang diambil dan kueri pengguna.
Pilih Document processing flow dan Online Q & A Process di bawah Code Query. Di editor kode, klik Copy Code atau Download File.
Langkah 2: Uji kode di lingkungan lokal
Setelah mengunduh file kode ke perangkat Anda, tentukan parameter dalam kode. Dalam contoh ini, file online.py dan offline.py diunduh. File online.py digunakan untuk pencarian percakapan online, sedangkan file offline.py digunakan untuk pemrosesan dokumen offline. Tabel berikut menjelaskan parameter.
Bagian | Parameter | Deskripsi |
AI Search Open Platform | api_key | Kunci API. Untuk informasi lebih lanjut tentang cara mendapatkan kunci API, lihat Kelola Kunci API. |
aisearch_endpoint | Titik akhir API. Untuk informasi lebih lanjut tentang cara mendapatkan titik akhir API, lihat Kueri Titik Akhir Layanan. Catatan Anda harus menghapus "http://". Anda dapat memanggil operasi API melalui Internet atau VPC. | |
workspace_name | Nama ruang kerja di AI Search Open Platform. | |
service_id | ID layanan. Untuk memudahkan pengembangan kode, Anda dapat mengonfigurasi layanan dan menentukan ID layanan secara terpisah di file offline.py dan online.py dengan menggunakan parameter service_id_config.
| |
Mesin pencari Elasticsearch | es_host | Titik akhir kluster Elasticsearch. Jika Anda ingin mengakses kluster Elasticsearch melalui Internet atau VPC, tambahkan alamat IP perangkat Anda ke daftar putih alamat IP publik atau privat dari kluster Elasticsearch. Untuk informasi lebih lanjut, lihat Konfigurasikan daftar putih alamat IP publik atau privat untuk kluster Elasticsearch. |
es_auth | Nama pengguna dan kata sandi yang digunakan untuk mengakses kluster Elasticsearch. Nama pengguna adalah elastic dan kata sandi adalah kata sandi yang Anda tetapkan saat membuat kluster Elasticsearch. Jika Anda lupa kata sandi, Anda dapat menyetel ulang. Untuk informasi lebih lanjut, lihat Setel ulang kata sandi akses untuk kluster Elasticsearch. | |
Parameter lainnya | Anda tidak perlu memodifikasi parameter lain jika Anda menggunakan kode contoh. | |
Setelah menentukan parameter, jalankan kode secara terpisah di file offline.py dan online.py menggunakan Python 3.7 atau lebih baru untuk memeriksa apakah jawaban yang dihasilkan benar.
Sebagai contoh, dokumen Apa itu AI Search Open Platform? digunakan sebagai basis pengetahuan. Pertanyaan berikut diajukan berdasarkan dokumen: Fitur apa saja yang disediakan oleh AI Search Open Platform?
Gambar-gambar berikut menunjukkan hasil yang dikembalikan.
Hasil pemrosesan dokumen offline

Hasil pencarian percakapan online

File kode sumber
