BigQuery AI dan ML SDK untuk ABAP memungkinkan Anda melakukan penelusuran vektor pada data perusahaan yang di-vektorisasi di BigQuery melalui string penelusuran berbasis bahasa alami, dan menampilkan kembali hasilnya, dari agen atau aplikasi berbasis ABAP.
BigQuery Vector Search memungkinkan Anda menggunakan GoogleSQL untuk melakukan penelusuran semantik menggunakan indeks vektor untuk hasil perkiraan.
Dengan Vector Search, Anda dapat menemukan titik data yang serupa secara semantik dalam set data besar menggunakan vektor atau penyematan berdimensi tinggi.
Anda dapat menyimpan penyematan vektor di BigQuery, sehingga BigQuery menjadi database vektor Anda dan menerapkan penelusuran kemiripan vektor di dalamnya menggunakan fungsi BigQuery VECTOR_SEARCH
.
Sebelum memulai
Sebelum menggunakan BigQuery AI dan ML SDK untuk ABAP dengan model Gemini, pastikan Anda atau administrator telah menyelesaikan prasyarat berikut:
- Mengaktifkan BigQuery API di project Google Cloud Anda. Untuk mengetahui informasi tentang cara mengaktifkan Google Cloud API, lihat Mengaktifkan API.
- Penagihan diaktifkan untuk Google Cloud project Anda.
- Anda telah membuat dan menyimpan penyematan vektor dalam set data vektor di BigQuery. Untuk mengetahui informasi tentang cara melakukannya dari aplikasi SAP menggunakan BigQuery AI dan ML SDK untuk ABAP, lihat Membuat penyematan.
- Anda telah membuat indeks vektor data perusahaan. Untuk mengetahui informasi selengkapnya, lihat Membuat indeks vektor.
- Memberikan izin yang diperlukan ke akun layanan yang dikonfigurasi di kunci klien untuk autentikasi.
- Menginstal BigQuery AI dan ML SDK untuk ABAP di lingkungan SAP Anda.
Harga
BigQuery AI dan ML SDK untuk ABAP ditawarkan tanpa biaya. Namun, Anda bertanggung jawab atas tagihan untuk pernyataan CREATE VECTOR INDEX
dan fungsi VECTOR_SEARCH
, yang menggunakan harga komputasi BigQuery.
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga.
Untuk mengetahui informasi selengkapnya tentang harga BigQuery, lihat halaman harga BigQuery.
Melakukan penelusuran vektor di BigQuery
Bagian ini menjelaskan cara melakukan penelusuran semantik vektor pada data perusahaan Anda yang disimpan di BigQuery dari aplikasi ABAP menggunakan BigQuery AI dan ML SDK untuk ABAP.
Membuat instance class pemanggil penelusuran vektor BigQuery
Untuk melakukan penelusuran vektor menggunakan string penelusuran, Anda membuat instance class /GOOG/CL_BQ_VECTOR_SEARCH
.
TRY.
DATA(lo_bq_vector_search) = NEW /goog/cl_bq_vector_search( iv_key = 'CLIENT_KEY' ).
CATCH /goog/cx_sdk INTO DATA(lo_cx_sdk).
cl_demo_output=>display( lo_cx_sdk->get_text( ) ).
ENDTRY.
Ganti CLIENT_KEY
dengan kunci klien yang telah Anda konfigurasikan untuk autentikasi ke Google Cloud selama penyiapan autentikasi.
Menemukan item serupa untuk string penelusuran
Untuk menjalankan kueri guna melakukan penelusuran vektor dengan fungsi BigQuery VECTOR_SEARCH
,
gunakan metode FIND_NEAREST_NEIGHBORS
dari class /GOOG/CL_BQ_VECTOR_SEARCH
.
Objek class /GOOG/CL_BQ_QUERY
yang ditetapkan dengan kueri diteruskan sebagai input ke metode.
lo_bq_vector_search->find_nearest_neighbors( io_query = lo_bq_query ).
LO_BQ_QUERY
adalah referensi class /GOOG/CL_BQ_QUERY
setelah menetapkan kueri. Anda dapat meneruskan string penelusuran dari teks kueri.
Mengganti parameter penelusuran vektor
Anda dapat menentukan parameter penelusuran vektor (di bagian definisi fungsi VECTOR_SEARCH
)
dalam kueri tersimpan di BigQuery atau teks kueri yang diteruskan. Namun, jika perlu
mengganti parameter untuk kueri yang sama dari logika aplikasi ABAP, Anda
dapat menggunakan metode SET_SEARCH_PARAMETERS
dari class /GOOG/CL_BQ_VECTOR_SEARCH
untuk melakukannya.
Parameter penelusuran dalam kueri awal sepenuhnya diganti dengan parameter
yang diteruskan melalui metode ini.
lo_bq_vector_search->set_search_parameters( iv_top_k = TOP_K
iv_distance_type = DISTANCE_TYPE
iv_fraction_lists_to_search = 'FRACTION_LISTS_TO_SEARCH' ).
Ganti kode berikut:
TOP_K
: NilaiINT64
yang menentukan jumlah tetangga terdekat yang akan ditampilkan.DISTANCE_TYPE
: Nilai string yang menentukan jenis metrik yang akan digunakan untuk menghitung jarak antara dua vektor, cari kemungkinan nilai dari argumenDISTANCE_TYPE
di bagian definisi untuk fungsiVECTOR_SEARCH
.FRACTION_LISTS_TO_SEARCH
: Nilai string yang menentukan persentase daftar yang akan ditelusuri, cari kemungkinan nilai dari argumenFRACTION_LISTS_TO_SEARCH
di bagian opsi definisi fungsiVECTOR_SEARCH
.
Mendapatkan respons penelusuran vektor
Untuk menerima respons yang diproses dari BigQuery ML untuk kueri penelusuran
vektor dan menampilkannya dengan cara yang bermakna, gunakan class /GOOG/CL_BQ_SEARCH_RESPONSE
.
Respons yang diambil oleh class /GOOG/CL_BQ_SEARCH_RESPONSE
dirantai
ke permintaan yang dibuat melalui metode class /GOOG/CL_BQ_VECTOR_SEARCH
,
sehingga Anda dapat langsung mengakses respons dalam satu pernyataan tanpa
memerlukan variabel untuk menyimpan hasil perantara.
Mendapatkan tetangga terdekat untuk string penelusuran
Untuk mendapatkan tetangga terdekat untuk string penelusuran, gunakan metode GET_NEAREST_NEIGHBORS
.
Jumlah tetangga yang ditampilkan bergantung pada nilai yang ditentukan atau ditetapkan dalam parameter TOP_K
fungsi VECTOR_SEARCH
dalam kueri yang dipanggil.
DATA(lt_search_response) = lo_bq_vector_search->find_nearest_neighbors( io_query = lo_bq_query
)->get_nearest_neighbors( ).
LT_SEARCH_RESPONSE
juga berisi jarak item respons penelusuran
dari string penelusuran untuk menunjukkan tingkat kesamaan.
Mendapatkan tetangga terdekat untuk string penelusuran
Untuk mendapatkan tetangga terdekat untuk string penelusuran, gunakan metode GET_NEAREST_NEIGHBOR
.
Dengan demikian, hanya tetangga terdekat yang diambil berdasarkan string penelusuran,
terlepas dari nilai yang ditentukan atau ditetapkan dalam parameter TOP_K
dari
fungsi VECTOR_SEARCH
dalam kueri yang dipanggil.
DATA(ls_search_response) = lo_bq_vector_search->find_nearest_neighbors( io_query = lo_bq_query
)->get_nearest_neighbor( ).
LS_SEARCH_RESPONSE
juga berisi jarak respons penelusuran
dari string penelusuran untuk menunjukkan tingkat kesamaan.