Halaman ini menunjukkan cara menyiapkan Vertex AI Feature Store sebagai database vektor yang akan digunakan dengan RAG Engine.
Anda juga dapat mengikuti menggunakan notebook RAG Engine with 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 besar dengan latensi rendah, yang membantu meningkatkan performa dan skalabilitas aplikasi RAG Anda.
Menyiapkan Vertex AI Feature Store
Vertex AI Feature Store, layanan terkelola berbasis cloud, adalah komponen penting Vertex AI. 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 penayangan fitur online dengan latensi rendah.
Untuk instance FeatureOnlineStore
yang dibuat dengan penayangan online yang dioptimalkan, Anda
dapat memanfaatkan penelusuran kesamaan vektor untuk mengambil daftar entity
yang serupa atau terkait secara semantik, yang dikenal sebagai
perkiraan terdekat.
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. 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 fitur online, gunakan Vertex AI Feature Store
CreateFeatureOnlineStore
API untuk menyiapkan instance FeatureOnlineStore
. Jika Anda
menyediakan FeatureOnlineStore
untuk pertama kalinya, operasi ini mungkin
memerlukan waktu sekitar lima menit untuk selesai.
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
FeatureOnlineStore
baru.
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
Isi JSON permintaan:
{ "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
Untuk 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 instanceFeatureOnlineStore
baru.
Buat resource FeatureView
Untuk menghubungkan tabel BigQuery, yang menyimpan sumber data fitur, ke instance FeatureOnlineStore
, panggil API CreateFeatureView
untuk membuat resource FeatureView
. Saat membuat resource FeatureView
, pilih
metrik jarak default DOT_PRODUCT_DISTANCE
, yang ditentukan sebagai
negatif dari perkalian titik (DOT_PRODUCT_DISTANCE
yang lebih kecil menunjukkan
kemiripan 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
Untuk 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 penayangan online
RAG API menangani upload data dan penyajian online.
Menggunakan Vertex AI Feature Store di RAG Engine
Setelah instance Vertex AI Feature Store disiapkan, bagian berikut menunjukkan cara menyiapkannya sebagai database vektor yang akan 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 dikaitkan secara otomatis 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
Untuk 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 dalam tabel BigQuery menggunakan RAG API
Gunakan ImportRagFiles
API untuk mengimpor file dari Google Cloud Storage atau
Google Drive ke tabel BigQuery di instance Vertex AI Feature Store. File disematkan dan disimpan dalam tabel BigQuery.
Contoh kode ini menunjukkan cara mengimpor file ke dalam 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
Untuk 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 dalam tabel BigQuery, jalankan proses sinkronisasi untuk menyediakan data Anda agar dapat disajikan secara 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
Untuk 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 Vertex AI Gemini API
Panggil Vertex AI GenerateContent
API 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.0-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
Untuk 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.