Vertex AI Vector Search untuk aplikasi SAP cerdas

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:

Vector Search untuk SAP

Arsitektur referensi ini mencakup komponen berikut:

# Komponen Detail
1 Titik awal kueri di SAP

Mulai penelusuran menggunakan salah satu opsi berikut:

  • Layanan OData: Berikan kueri penelusuran melalui layanan OData di aplikasi frontend SAP Anda.
  • Logika aplikasi SAP: Memberikan kueri penelusuran melalui logika aplikasi SAP, seperti peningkatan, laporan, atau tugas latar belakang SAP.
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:

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:

  1. Buat embedding vektor menggunakan model AI embedding teks atau multimodal di Vertex AI atau platform lainnya.
  2. Upload penyematan ke bucket Cloud Storage.
  3. Buat indeks vektor dengan bucket Cloud Storage yang berisi penyematan.
  4. 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:

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:

  1. Siapkan kueri penelusuran untuk mendapatkan konteks perusahaan.
  2. Lakukan Vector Search pada indeks yang memiliki data perusahaan.
  3. 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

Kontributor

Penulis: Devesh Singh | SAP Application Engineer

Kontributor lainnya: Vikash Kumar | Technical Writer