Halaman ini menunjukkan cara menyiapkan Vertex AI Feature Store sebagai database vektor untuk digunakan dengan RAG Engine.
Anda juga dapat mengikuti langkah-langkahnya menggunakan notebook RAG Engine dengan Vertex AI Feature Store.
Dengan mengintegrasikan Vertex AI Feature Store sebagai database vektor tambahan, RAG Engine dapat menggunakan Vertex AI Feature Store untuk menangani volume data yang besar dengan latensi rendah, sehingga membantu meningkatkan performa dan skalabilitas aplikasi RAG Anda.
Menyiapkan Vertex AI Feature Store
Vertex AI Feature Store, layanan terkelola berbasis cloud, adalah komponen penting dari Gemini Enterprise Agent Platform. Solusi ini menyederhanakan pengelolaan fitur machine learning (ML) dan penyaluran online dengan memungkinkan Anda mengelola data fitur dalam tabel atau tampilan BigQuery. Hal ini memungkinkan penyajian fitur online dengan latensi rendah.
Untuk instance FeatureOnlineStore yang dibuat dengan penyaluran online yang dioptimalkan, Anda dapat memanfaatkan penelusuran kesamaan vektor untuk mengambil daftar entity yang serupa atau terkait secara semantik, yang dikenal sebagai approximate nearest neighbor.
Bagian berikut menunjukkan cara menyiapkan instance Vertex AI Feature Store untuk aplikasi RAG Anda.
Membuat skema tabel BigQuery
Gunakan konsol Google Cloud untuk membuat skema tabel BigQuery. File ini harus berisi kolom berikut untuk berfungsi sebagai sumber data.
| Nama kolom | Jenis data | Status |
|---|---|---|
corpus_id |
String |
Wajib |
file_id |
String |
Wajib |
chunk_id |
String |
Wajib |
chunk_data_type |
String |
Nullable |
chunk_data |
String |
Nullable |
file_original_uri |
String |
Nullable |
embeddings |
Float |
Berulang |
Contoh kode ini menunjukkan cara menentukan skema tabel BigQuery.
SQL
CREATE TABLE `PROJECT_ID.input_us_central1.rag_source_new` (
`corpus_id` STRING NOT NULL,
`file_id` STRING NOT NULL,
`chunk_id` STRING NOT NULL,
`chunk_data_type` STRING,
`chunk_data` STRING,
`embeddings` ARRAY<FLOAT64>,
`file_original_uri` STRING
);
Menyediakan instance FeatureOnlineStore
Untuk mengaktifkan penyaluran online fitur, gunakan CreateFeatureOnlineStore API Vertex AI Feature Store untuk menyiapkan instance FeatureOnlineStore. Jika Anda
menyediakan FeatureOnlineStore untuk pertama kalinya, operasi ini mungkin
memerlukan waktu sekitar lima menit untuk diselesaikan.
REST
Untuk membuat instance toko online, kirim permintaan POST menggunakan
metode
featureOnlineStores.create.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat Anda ingin membuat instance
FeatureOnlineStore, sepertius-central1. - PROJECT_ID: Project ID Anda.
- FEATUREONLINESTORE_NAME: Nama instance
FeatureOnlineStorebaru.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores?feature_online_store_id=FEATUREONLINESTORE_NAME
Meminta isi JSON:
{
"optimized": {}
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores?feature_online_store_id=FEATUREONLINESTORE_NAME"
PowerShell
Simpan isi permintaan dalam file bernama request.json,
dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores?feature_online_store_id=FEATUREONLINESTORE_NAME" | Select-Object -Expand Content
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateFeatureOnlineStoreOperationMetadata",
"genericMetadata": {
"createTime": "2023-09-18T17:49:23.847496Z",
"updateTime": "2023-09-18T17:49:23.847496Z"
}
}
}
Python
Guna mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python.
project: Project ID Anda.location: Region tempat Anda ingin membuat instanceFeatureOnlineStore, sepertius-central1.feature_online_store_id: Nama instanceFeatureOnlineStorebaru.
Membuat resource FeatureView
Untuk menghubungkan tabel BigQuery, yang menyimpan sumber data fitur, ke
instance FeatureOnlineStore, panggil CreateFeatureView API untuk membuat
resource FeatureView. Saat Anda membuat resource FeatureView, pilih metrik jarak default DOT_PRODUCT_DISTANCE, yang didefinisikan sebagai negatif dari perkalian titik (DOT_PRODUCT_DISTANCE yang lebih kecil menunjukkan kesamaan yang lebih tinggi).
Contoh kode ini menunjukkan cara membuat resource FeatureView.
REST
# TODO(developer): Update and uncomment the following lines:
# Set feature_view_id
# Example: "feature_view_test"
# FEATURE_VIEW_ID = "your-feature-view-id"
#
# The big_query_uri generated in the above BigQuery table schema creation step
# The format should be "bq://" + BigQuery table ID
# Example: "bq://tester.ragtest1.rag_testdata"
# BIG_QUERY_URI=YOUR_BIG_QUERY_URI
# Call CreateFeatureView API to create a FeatureView
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/featureOnlineStores/${FEATURE_ONLINE_STORE_ID}/featureViews?feature_view_id=${FEATURE_VIEW_ID} \
-d '{
"vertex_rag_source": {
"uri": '\""${BIG_QUERY_URI}"\"'
}
}'
# Call ListFeatureViews API to verify the FeatureView is created successfully
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" -H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/us-central1/featureOnlineStores/${FEATURE_ONLINE_STORE_ID}/featureViews
Python
Guna mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python.
Mengupload data dan inferensi online
RAG API menangani upload data dan penyaluran online. Untuk mempelajari lebih lanjut RAG Engine di Gemini Enterprise Agent Platform API, lihat referensi berikut:
Menggunakan Vertex AI Feature Store di RAG Engine
Setelah instance Vertex AI Feature Store disiapkan, bagian berikut menunjukkan cara menyiapkannya sebagai database vektor untuk digunakan dengan aplikasi RAG.
Menggunakan instance Vertex AI Feature Store sebagai database vektor untuk membuat korpus RAG
Untuk membuat korpus RAG, Anda harus menggunakan FEATURE_VIEW_RESOURCE_NAME. Korpus RAG dibuat dan otomatis dikaitkan dengan instance Vertex AI Feature Store. API RAG menggunakan rag_corpus_id yang dihasilkan untuk menangani upload data ke instance Vertex AI Feature Store dan untuk mengambil konteks yang relevan dari rag_corpus_id.
Contoh kode ini menunjukkan cara menggunakan instance Vertex AI Feature Store sebagai database vektor untuk membuat korpus RAG.
REST
# TODO(developer): Update and uncomment the following lines:
# CORPUS_DISPLAY_NAME = "your-corpus-display-name"
#
# Full feature view resource name
# Format: projects/${PROJECT_ID}/locations/us-central1/featureOnlineStores/${FEATURE_ONLINE_STORE_ID}/featureViews/${FEATURE_VIEW_ID}
# FEATURE_VIEW_RESOURCE_NAME = "your-feature-view-resource-name"
# Call CreateRagCorpus API to create a new RAG corpus
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/{PROJECT_ID}/locations/us-central1/ragCorpora -d '{
"display_name" : '\""${CORPUS_DISPLAY_NAME}"\"',
"rag_vector_db_config" : {
"vertex_feature_store": {
"feature_view_resource_name":'\""${FEATURE_VIEW_RESOURCE_NAME}"\"'
}
}
}'
# Call ListRagCorpora API to verify the RAG corpus is created successfully
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora"
Python
Guna mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python.
Mengimpor file ke tabel BigQuery menggunakan RAG API
Gunakan ImportRagFiles API untuk mengimpor file dari Google Cloud Storage atau
Google Drive ke tabel BigQuery instance
Vertex AI Feature Store. File disematkan dan disimpan di tabel BigQuery.
Contoh kode ini menunjukkan cara mengimpor file ke tabel BigQuery menggunakan RAG API.
REST
# TODO(developer): Update and uncomment the following lines:
# RAG_CORPUS_ID = "your-rag-corpus-id"
#
# Google Cloud Storage bucket/file location.
# For example, "gs://rag-fos-test/"
# GCS_URIS= "your-gcs-uris"
# Call ImportRagFiles API to embed files and store in the BigQuery table
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"gcs_source": {
"uris": '\""${GCS_URIS}"\"'
},
"rag_file_chunking_config": {
"chunk_size": 512
}
}
}'
# Call ListRagFiles API to verify the files are imported successfully
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}/ragFiles
Python
Guna mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python.
Menjalankan proses sinkronisasi untuk membuat indeks FeatureOnlineStore
Setelah mengupload data ke tabel BigQuery, jalankan
proses sinkronisasi agar data Anda tersedia untuk penyaluran online. Anda harus
membuat indeks FeatureOnlineStore menggunakan FeatureView, dan
proses sinkronisasi mungkin memerlukan waktu 20 menit untuk diselesaikan.
Contoh kode ini menunjukkan cara menjalankan proses sinkronisasi untuk membuat indeks FeatureOnlineStore.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION_ID: Region tempat toko online berada, seperti
us-central1. - PROJECT_ID: Project ID Anda.
- FEATUREONLINESTORE_NAME: Nama penyimpanan online yang berisi tampilan fitur.
- FEATUREVIEW_NAME: Nama tampilan fitur tempat Anda ingin memulai sinkronisasi data secara manual.
Metode HTTP dan URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:sync
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:sync"
PowerShell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME:sync" | Select-Object -Expand Content
Anda akan melihat respons JSON seperti berikut:
{
"featureViewSync": "projects/PROJECT_ID/locations/LOCATION_ID/featureOnlineStores/FEATUREONLINESTORE_NAME/featureViews/FEATUREVIEW_NAME/featureViewSyncs/OPERATION_ID"
}
Mengambil konteks yang relevan menggunakan RAG API
Setelah proses sinkronisasi selesai, Anda dapat mengambil konteks yang relevan
dari indeks FeatureOnlineStore melalui RetrieveContexts API.
REST
# TODO(developer): Update and uncomment the following lines:
# RETRIEVAL_QUERY="your-retrieval-query"
#
# Full RAG corpus resource name
# Format:
# "projects/${PROJECT_ID}/locations/us-central1/ragCorpora/${RAG_CORPUS_ID}"
# RAG_CORPUS_RESOURCE="your-rag-corpus-resource"
# Call RetrieveContexts API to retrieve relevant contexts
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1:retrieveContexts \
-d '{
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": '\""${RAG_CORPUS_RESOURCE}"\"',
},
},
"query": {
"text": '\""${RETRIEVAL_QUERY}"\"',
"similarity_top_k": 10
}
}'
Python
Guna mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python.
Membuat konten menggunakan Agent Platform Gemini API
Panggil API GenerateContent Agent Platform untuk menggunakan model Gemini guna membuat konten, dan tentukan RAG_CORPUS_RESOURCE dalam permintaan untuk mengambil data dari indeks FeatureOnlineStore.
REST
# TODO(developer): Update and uncomment the following lines:
# MODEL_ID=gemini-2.5-flash
# GENERATE_CONTENT_PROMPT="your-generate-content-prompt"
# GenerateContent with contexts retrieved from the FeatureStoreOnline index
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/${MODEL_ID}:generateContent \
-d '{
"contents": {
"role": "user",
"parts": {
"text": '\""${GENERATE_CONTENT_PROMPT}"\"'
}
},
"tools": {
"retrieval": {
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": '\""${RAG_CORPUS_RESOURCE}"\"',
},
"similarity_top_k": 8,
}
}
}
}'
Python
Guna mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi API Python.