Dokumen ini menjelaskan arsitektur referensi untuk mem-build aplikasi SAP cerdas dengan Vertex AI Vector Search, menggunakan Vertex AI SDK untuk ABAP. Dengan Penelusuran Vektor, Anda dapat membuat aplikasi SAP yang melampaui pencocokan kata kunci, menggunakan pemahaman semantik untuk membantu pengguna menemukan dengan tepat apa yang mereka butuhkan dari data perusahaan mereka. Anda juga dapat menggunakan Vector Search dengan Retrieval-augmented generation (RAG) untuk membuat aplikasi AI yang canggih di lingkungan SAP Anda. RAG meningkatkan kualitas respons model AI Anda dengan memberikan konteks yang relevan dari data perusahaan Anda, sehingga memastikan bahwa model AI tetap didasarkan pada data perusahaan Anda.
Audiens yang dituju untuk dokumen ini mencakup developer ABAP, arsitek solusi SAP, dan arsitek cloud. Dokumen ini mengasumsikan bahwa Anda sudah memahami terminologi Vector Search.
Arsitektur
Diagram berikut menunjukkan arsitektur referensi untuk menggunakan Vector Search di lanskap aplikasi SAP:
Arsitektur referensi ini mencakup komponen berikut:
# | Komponen | Detail |
---|---|---|
1 | Titik awal kueri di SAP | Mulai penelusuran menggunakan salah satu opsi berikut:
|
2 | Vertex AI SDK for ABAP | Modul Vector Search Invoker dari SDK melakukan penelusuran vektor berdasarkan kueri penelusuran Anda. |
3 | Vector Search Vertex AI | Data perusahaan diindeks sebagai penyematan vektor dan diatur dalam indeks yang di-deploy. Saat kueri penelusuran dimasukkan, penelusuran vektor akan dilakukan pada data yang diindeks ini untuk menemukan kecocokan terdekat. Pencocokan terdekat ini kemudian ditampilkan ke aplikasi SAP, yang memungkinkan fitur seperti penelusuran semantik dan RAG. |
Produk yang digunakan
Arsitektur referensi ini menggunakan produk Google Cloud berikut:
- Vertex AI SDK untuk ABAP: Memberikan modul dan rangkaian alat untuk mem-build aplikasi yang berfokus pada AI secara native dari ABAP.
- Vertex AI Vector Search: Memungkinkan penelusuran berskala tinggi dan efisien di seluruh data perusahaan Anda menggunakan penyematan vektor. Artinya, Anda dapat menelusuri berdasarkan makna dan konteks, bukan hanya kata kunci.
Kasus Penggunaan
Daftar berikut menunjukkan kasus penggunaan Penelusuran Vektor di aplikasi SAP:
- Membuat mesin rekomendasi: Menganalisis input dan perilaku pengguna untuk menyarankan item yang relevan di seluruh bisnis SAP seperti produk, kode perusahaan, dan akun GL, yang tidak hanya cocok dengan kata kunci.
- Mem-build pipeline RAG: Mengakses dan mengintegrasikan informasi dari berbagai sumber untuk memperkaya konteks model AI dengan informasi SAP dan non-SAP yang relevan untuk menghasilkan respons model yang akurat dan relevan.
- Melakukan penelusuran gambar semantik: Mengaktifkan penelusuran gambar yang mirip secara visual, yang berguna untuk belanja, penemuan visual, dan analisis pencitraan medis.
- Melakukan penelusuran teks semantik: Memahami makna dan konteks teks untuk meningkatkan akurasi penelusuran dalam analisis masukan hukum, akademis, dan pelanggan.
- Melakukan penelusuran berbasis Natural Language: Memberikan jawaban instan atas pertanyaan pengguna, meningkatkan kualitas FAQ, pusat informasi, dan alat pendidikan.
- Melakukan deteksi anomali: Mengidentifikasi pola yang tidak biasa dan potensi ancaman dalam keuangan, keamanan jaringan, dan manufaktur.
Pertimbangan desain
Bagian ini memberikan panduan untuk membantu Anda menggunakan arsitektur referensi ini untuk mengembangkan arsitektur yang membantu Anda memenuhi persyaratan tertentu dalam hal keamanan, privasi, kepatuhan, biaya, dan performa.
Keamanan, privasi, dan kepatuhan:
Keamanan dan kepatuhan adalah tanggung jawab bersama. Untuk mengetahui informasi selengkapnya, lihat Tanggung jawab bersama Vertex AI.
Untuk informasi tentang komitmen Google Cloud terhadap privasi data, lihat Pusat Referensi Privasi.
Pengoptimalan biaya
Untuk menurunkan biaya, pertimbangkan untuk memilih ukuran shard yang lebih rendah dan penyematan dimensi yang lebih rendah untuk indeks Anda, yang memungkinkan Anda menggunakan mesin komputasi yang lebih kecil untuk men-deploy indeks.
Vertex AI adalah penawaran yang dapat ditagih dari Google Cloud. Untuk mengetahui informasi tentang harga, lihat Harga Vertex AI dan Harga Penelusuran Vektor. Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan Kalkulator Harga.
Pengoptimalan performa
Untuk meningkatkan latensi guna mencari set data besar, sebaiknya pilih ukuran shard yang lebih tinggi saat membuat indeks dan mesin komputasi berperforma tinggi saat men-deploy indeks. Untuk mempelajari ukuran shard untuk indeks lebih lanjut, lihat Ukuran indeks.
Untuk meningkatkan relevansi respons penelusuran, buat penyematan data perusahaan Anda dalam dimensi yang lebih tinggi. Mesin komputasi dan dimensi penyematan yang lebih tinggi memerlukan biaya yang besar. Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan Kalkulator Harga.
Sebelum memulai
Sebelum menggunakan Vector Search di lanskap aplikasi SAP, pastikan Anda atau administrator Anda telah menyelesaikan hal berikut:
- Menginstal ABAP SDK untuk Google Cloud edisi cloud atau versi lokal versi terbaru.
- Mengaktifkan Vertex AI API di project Google Cloud Anda.
- Siapkan autentikasi untuk mengakses Vertex AI API.
- Mengonfigurasi parameter Vector Search.
Membuat dan mengelola indeks vektor
Untuk menggunakan Vector Search, Anda harus mengindeks dan men-deploy data perusahaan dalam bentuk penyematan vektor. Untuk melakukannya, ikuti langkah-langkah berikut:
- Buat embedding vektor menggunakan model AI embedding teks atau multimodal di Vertex AI atau platform lainnya.
- Upload penyematan ke bucket Cloud Storage.
- Buat indeks vektor dengan bucket Cloud Storage yang berisi penyematan.
- Buat endpoint indeks dan deploy indeks vektor ke endpoint untuk melakukan penelusuran semantik pada data perusahaan yang diindeks.
Anda dapat melakukan langkah-langkah sebelumnya dari konsol Google Cloud atau menggunakan Vertex AI SDK untuk ABAP untuk memicunya dari lingkungan SAP Anda.
Untuk mendapatkan hasil Vector Search yang paling akurat untuk solusi AI perusahaan, Anda juga harus terus memperbarui indeks dengan data perusahaan terbaru. Untuk informasi selengkapnya, lihat Memperbarui dan membuat ulang indeks vektor.
Memanggil Penelusuran Vektor dari aplikasi SAP
Dari aplikasi SAP, Anda dapat menggunakan Vertex AI SDK untuk ABAP untuk melakukan penelusuran semantik pada data perusahaan yang diindeks dengan cara berikut:
- Menelusuri menggunakan perintah teks: Lakukan penelusuran semantik pada data teks dan multimodal Anda menggunakan string penelusuran.
- Menelusuri menggunakan perintah multimodal: Lakukan penelusuran semantik pada data multimodal menggunakan input multimodal seperti gambar atau video.
- Telusuri menggunakan ID entitas perusahaan: Lakukan penelusuran semantik pada data perusahaan Anda menggunakan ID khusus perusahaan, seperti ID produk, ID pesanan, atau ID pelanggan.
Anda dapat menggunakan hasil dari Penelusuran Vektor untuk meningkatkan konteks model AI dengan konteks perusahaan menggunakan RAG. Hal ini membuat respons model tetap didasarkan pada data perusahaan Anda. Anda juga dapat menggunakan hasil ini sebagai input untuk proses bisnis atau untuk membuat rekomendasi.
Penelusuran semantik menggunakan perintah teks
Untuk menelusuri teks yang diindeks dan data multimodal menggunakan perintah teks, Anda dapat menggunakan
metode FIND_NEIGHBORS_BY_STRING
dari class /GOOG/CL_VECTOR_SEARCH
Vertex AI SDK untuk ABAP. Anda dapat membuat rantai panggilan
GET_NEAREST_NEIGHBORS
metode dengan panggilan FIND_NEIGHBORS_BY_STRING
metode
untuk mendapatkan respons penelusuran.
Contoh kode berikut menggambarkan cara melakukan penelusuran semantik menggunakan perintah teks:
TRY.
DATA(lo_vector_search) = NEW /goog/cl_vector_search( iv_search_key = 'SEARCH_KEY' ).
DATA(lt_vector_search_response) = lo_vector_search->find_neighbors_by_string(
iv_search_string = 'SEARCH_STRING'
iv_embeddings_model_key = 'MODEL_KEY'
iv_neighbor_count = NEIGHBOR_COUNT
)->get_nearest_neighbors( ).
cl_demo_output=>display( lt_vector_search_response ).
CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
cl_demo_output=>display( 'Search not successful.' && lo_cx_sdk->get_text( ) ).
ENDTRY.
Ganti kode berikut:
SEARCH_KEY
: Kunci penelusuran, yang dikonfigurasi di parameter Vector Search.SEARCH_STRING
: Perintah teks input.MODEL_KEY
: Kunci model yang dikonfigurasi di parameter pembuatan model. Model ini digunakan untuk mengonversi kueri penelusuran Anda menjadi penyematan.NEIGHBOR_COUNT
: Jumlah tetangga terdekat yang akan diambil oleh kueri penelusuran.
Untuk menemukan contoh penelusuran berbasis teks pada contoh data multimodal dan teks perusahaan, lihat contoh kode GitHub untuk Penelusuran semantik pada set data teks menggunakan perintah teks dan Penelusuran semantik pada gambar menggunakan perintah teks.
Penelusuran semantik menggunakan perintah multimodal
Jenis penelusuran ini berguna saat Anda ingin menemukan kecocokan terdekat dari
data multimodal, yang dapat berupa gambar atau video. Misalnya, jika Anda memiliki
aplikasi web SAP (Fiori
atau UI5
) dan ingin mengambil gambar
pakaian, produk, atau bagian peralatan, dan menemukan kecocokan terdekat
sehubungan dengan gambar, Anda dapat memilih opsi penelusuran ini.
Untuk menelusuri data multimodal yang diindeks menggunakan perintah multimodal, Anda dapat menggunakan
metode FIND_NEIGHBORS_BY_EMBEDDING
dari class /GOOG/CL_VECTOR_SEARCH
Vertex AI SDK untuk ABAP. Anda dapat membuat rantai panggilan metode GET_NEAREST_NEIGHBORS
dengan panggilan metode FIND_NEIGHBORS_BY_EMBEDDING
untuk mendapatkan respons penelusuran.
Contoh kode berikut menggambarkan cara melakukan penelusuran semantik menggunakan gambar:
DATA lv_search_string TYPE string,
DATA ls_image TYPE /goog/cl_embeddings_model=>ty_image.
TRY.
DATA(lo_vector_search) = NEW /goog/cl_vector_search( iv_search_key = 'SEARCH_KEY' ).
DATA(lo_embeddings_model) = NEW /goog/cl_embeddings_model( iv_model_key = 'MODEL_KEY' ).
ls_image-bytes_base64_encoded = 'RAW_DATA'.
DATA(lt_embeddings) = lo_embeddings_model->gen_image_embeddings( iv_image = ls_image
iv_dimension = 'DIMENSION'
)->get_vector( ).
DATA(lt_vector_search_response) = lo_vector_search->find_neighbors_by_embedding(
iv_neighbor_count = NEIGHBOR_COUNT
it_embeddings = lt_embeddings
)->get_nearest_neighbors( ).
cl_demo_output=>display( lt_vector_search_response ).
CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
cl_demo_output=>display( 'Search not successful.' && lo_cx_sdk->get_text( ) ).
ENDTRY.
Ganti kode berikut:
SEARCH_KEY
: Kunci penelusuran, yang dikonfigurasi di parameter Vector Search.MODEL_KEY
: Kunci model yang dikonfigurasi di parameter pembuatan model. Model ini digunakan untuk mengonversi kueri penelusuran Anda menjadi penyematan.RAW_DATA
: Data mentah gambar, PDF, atau video yang dienkode Base64 untuk disertakan secara inline dalam kueri.DIMENSION
: Jumlah dimensi untuk penyematan output.NEIGHBOR_COUNT
: Jumlah tetangga terdekat yang akan diambil oleh kueri penelusuran.
Untuk menemukan contoh penelusuran berbasis gambar pada contoh data perusahaan, lihat contoh kode GitHub.
Penelusuran semantik menggunakan ID entity perusahaan
Jenis penelusuran ini dapat berguna untuk kasus penggunaan SAP saat Anda ingin mencari entitas perusahaan serupa untuk ID entitas tertentu, misalnya menemukan atau merekomendasikan produk serupa jika produk tertentu kehabisan stok. ID entity sesuai dengan titik data yang disimpan dalam indeks vektor Anda.
Untuk menelusuri indeks vektor menggunakan ID entitas perusahaan, Anda dapat menggunakan
metode FIND_NEIGHBORS_BY_ENTITY_ID
dari class /GOOG/CL_VECTOR_SEARCH
Vertex AI SDK untuk ABAP. Anda dapat membuat rantai panggilan
GET_NEAREST_NEIGHBORS
metode dengan panggilan FIND_NEIGHBORS_BY_ENTITY_ID
metode
untuk mendapatkan respons penelusuran.
Contoh kode berikut mengilustrasikan cara melakukan penelusuran semantik menggunakan ID entity perusahaan:
Below is a code snippet that can be taken as reference for an entity id search.
TRY.
DATA(lo_vector_search) = NEW /goog/cl_vector_search( iv_search_key = 'SEARCH_KEY' ).
DATA(lt_vector_search_response) = lo_vector_search->find_neighbors_by_entity_id(
iv_entity_id = 'ENTITY_ID'
)->get_nearest_neighbors( ).
cl_demo_output=>display( lt_vector_search_response ).
CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
cl_demo_output=>display( 'Search not successful.' && lo_cx_sdk->get_text( ) ).
ENDTRY.
Ganti kode berikut:
SEARCH_KEY
: Kunci penelusuran, yang dikonfigurasi di parameter Vector Search.ENTITY_ID
: ID entity yang akan ditelusuri.
Untuk menemukan contoh penelusuran menggunakan ID entitas pada contoh data perusahaan, lihat contoh kode GitHub.
Menggunakan Penelusuran Vektor dengan RAG untuk memberikan konteks tambahan ke model AI Anda
Penelusuran Vektor menampilkan data perusahaan yang paling relevan sebagai respons berdasarkan kueri penelusuran Anda. Anda dapat memberikan konteks tambahan ke model AI dengan memberinya respons penelusuran dari Penelusuran Vektor menggunakan RAG. RAG meningkatkan kualitas respons model AI Anda dengan memberikan konteks yang relevan dari data perusahaan yang diambil, sehingga memastikan respons model tetap berdasar pada data perusahaan Anda.
Untuk memberikan konteks tambahan ke model AI Anda menggunakan Penelusuran Vektor dengan RAG, lakukan langkah-langkah berikut:
- Siapkan kueri penelusuran untuk mendapatkan konteks perusahaan.
- Lakukan Vector Search pada indeks yang memiliki data perusahaan.
- Gabungkan atau tambahkan respons penelusuran ke perintah akhir dengan mengikuti praktik terbaik untuk perintah yang efisien.
Untuk mendapatkan respons yang paling relevan dari model AI untuk arsitektur berbasis RAG, update indeks Anda dengan penyematan data perusahaan terbaru. Untuk informasi selengkapnya, lihat Memperbarui dan membuat ulang indeks vektor.
Untuk bereksperimen dengan kasus penggunaan perusahaan dengan set data contoh, coba solusi contoh Penelusuran Vektor yang didukung oleh Penyematan dari SAP di GitHub. Solusi contoh ini menampilkan mesin rekomendasi produk di ABAP, yang memberikan panduan tentang konfigurasi dan detail penerapan yang diperlukan. Anda dapat menggunakan contoh kode dan referensi sebagai dasar untuk sistem rekomendasi lain, tempat Anda dapat menjalankan penelusuran semantik langsung dari aplikasi SAP.
Langkah selanjutnya
- Untuk menentukan relevansi setiap hasil penelusuran dengan kueri Anda, lihat Mendapatkan jarak tetangga yang diambil.
- Untuk mempelajari cara menggunakan Vector Search dengan Vertex AI SDK untuk ABAP, lihat Menggunakan Vertex AI Vector Search.
Jika Anda memerlukan bantuan untuk menyelesaikan masalah terkait ABAP SDK untuk Google Cloud, lakukan hal berikut:
- Lihat panduan pemecahan masalah ABAP SDK untuk Google Cloud.
- Ajukan pertanyaan dan diskusikan ABAP SDK untuk Google Cloud dengan komunitas di Cloud Forum.
- Kumpulkan semua informasi diagnostik yang tersedia dan hubungi Cloud Customer Care. Untuk mengetahui informasi tentang cara menghubungi Layanan Pelanggan, lihat Mendapatkan dukungan untuk SAP di Google Cloud.
Kontributor
Penulis: Devesh Singh | SAP Application Engineer
Kontributor lainnya: Vikash Kumar | Technical Writer