Halaman ini memperkenalkan integrasi Vertex AI Search dengan Mesin RAG.
Vertex AI Search menyediakan solusi untuk mengambil dan mengelola data dalam aplikasi Vertex AI RAG Anda. Dengan menggunakan Vertex AI Search sebagai backend pengambilan, Anda dapat meningkatkan performa, skalabilitas, dan kemudahan integrasi.
Performa dan skalabilitas yang ditingkatkan: Vertex AI Search dirancang untuk menangani data dalam volume besar dengan latensi yang sangat rendah. Hal ini berarti waktu respons yang lebih cepat dan performa yang lebih baik untuk aplikasi RAG Anda, terutama saat menangani basis pengetahuan yang kompleks atau luas.
Pengelolaan data yang disederhanakan: Impor data Anda dari berbagai sumber, seperti situs, set data BigQuery, dan bucket Cloud Storage, yang dapat menyederhanakan proses penyerapan data.
Integrasi yang lancar: Vertex AI menyediakan integrasi bawaan dengan Vertex AI Search, yang memungkinkan Anda memilih Vertex AI Search sebagai backend korpus untuk aplikasi RAG Anda. Hal ini menyederhanakan proses integrasi dan membantu memastikan kompatibilitas yang optimal antarkomponen.
Kualitas output LLM yang ditingkatkan: Dengan menggunakan kemampuan pengambilan Vertex AI Search, Anda dapat membantu memastikan bahwa aplikasi RAG mengambil informasi yang paling relevan dari korpus, yang mengarah pada output yang dihasilkan LLM yang lebih akurat dan informatif.
Vertex AI Search
Vertex AI Search menggabungkan pengambilan informasi yang mendalam, pemrosesan bahasa alami, dan fitur terbaru dalam pemrosesan model bahasa besar (LLM), yang membantu memahami intent pengguna dan menampilkan hasil yang paling relevan bagi pengguna.
Dengan Vertex AI Search, Anda dapat membuat aplikasi penelusuran berkualitas Google menggunakan data yang Anda kontrol.
Mengonfigurasi Vertex AI Search
Untuk menyiapkan Vertex AI Search, lakukan hal berikut:
Menggunakan Vertex AI Search sebagai backend pengambilan untuk RAG Engine
Setelah Vertex AI Search disiapkan, ikuti langkah-langkah berikut untuk menetapkannya sebagai backend pengambilan untuk aplikasi RAG.
Menetapkan Vertex AI Search sebagai backend pengambilan untuk membuat korpus RAG
Contoh kode ini menunjukkan cara mengonfigurasi Vertex AI Search sebagai backend pengambilan untuk korpus RAG.
REST
Untuk menggunakan command line guna membuat korpus RAG, lakukan tindakan berikut:
Membuat korpus RAG
Ganti variabel berikut yang digunakan dalam contoh kode:
- PROJECT_ID: ID project Google Cloud Anda.
- LOCATION: Region untuk memproses permintaan.
- DISPLAY_NAME: Nama tampilan korpus RAG yang ingin Anda buat.
- ENGINE_NAME: Nama resource lengkap dari mesin Vertex AI Search atau Datastore Vertex AI Search.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" \ -d '{ "display_name" : "DISPLAY_NAME", "vertex_ai_search_config" : { "serving_config": "ENGINE_NAME/servingConfigs/default_search" } }'
Memantau progres
Ganti variabel berikut yang digunakan dalam contoh kode:
- PROJECT_ID: ID project Google Cloud Anda.
- LOCATION: Region untuk memproses permintaan.
- OPERATION_ID: ID operasi pembuatan korpus RAG.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID"
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 Python API.
Ganti variabel berikut yang digunakan dalam kode contoh:
- PROJECT_ID: ID project Google Cloud Anda.
- LOCATION: Region untuk memproses permintaan.
- DISPLAY_NAME: Nama tampilan korpus RAG yang ingin Anda buat.
- ENGINE_NAME: Nama resource lengkap dari mesin Vertex AI Search atau Datastore Vertex AI Search.
from vertexai.preview import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"
DISPLAY_NAME = "DISPLAY_NAME"
ENGINE_NAME = "ENGINE_NAME"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")
# Create a corpus
vertex_ai_search_config = rag.VertexAiSearchConfig(
serving_config=f"ENGINE_NAME/servingConfigs/default_search",
)
rag_corpus = rag.create_corpus(
name=DISPLAY_NAME,
vertex_ai_search_config=vertex_ai_search_config,
)
# Check the corpus just created
new_corpus = rag.get_corpus(name=rag_corpus.name)
print(new_corpus)
Mengambil konteks menggunakan RAG API
Setelah pembuatan korpus RAG, konteks yang relevan dapat diambil dari
Vertex AI Search melalui RetrieveContexts
API.
REST
Contoh kode ini menunjukkan cara mengambil konteks menggunakan REST.
Ganti variabel berikut yang digunakan dalam contoh kode:
- PROJECT_ID: ID project Google Cloud Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_RESOURCE: Nama resource korpus
RAG.
Format:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
- TEXT: Teks kueri untuk mendapatkan konteks yang relevan.
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" \
-d '{
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": "RAG_CORPUS_RESOURCE"
}
},
"query": {
"text": "TEXT"
}
}'
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 Python API.
Ganti variabel berikut yang digunakan dalam contoh kode:
- PROJECT_ID: ID project Google Cloud Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_RESOURCE: Nama resource korpus
RAG.
Format:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}.
- TEXT: Teks kueri untuk mendapatkan konteks yang relevan.
from vertexai.preview import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
CORPUS_NAME = "projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
response = rag.retrieval_query(
rag_resources=[
rag.RagResource(
rag_corpus=CORPUS_NAME,
)
],
text="TEXT",
similarity_top_k=10, # Optional
)
print(response)
# Example response:
# contexts {
# contexts {
# source_uri: "gs://your-bucket-name/file.txt"
# text: "....
# ....
Membuat konten menggunakan Vertex AI Gemini API
REST
Untuk membuat konten menggunakan model Gemini, lakukan panggilan ke
Vertex AI GenerateContent
API. Dengan menentukan
RAG_CORPUS_RESOURCE
dalam permintaan, data akan otomatis diambil dari
Vertex AI Search.
Ganti variabel berikut yang digunakan dalam kode contoh:
- PROJECT_ID: ID project Google Cloud Anda.
- LOCATION: Region untuk memproses permintaan.
- MODEL_ID: Model LLM untuk pembuatan konten. Contohnya,
gemini-1.5-flash-002
. - GENERATION_METHOD: Metode LLM untuk pembuatan konten.
Contoh,
generateContent
,streamGenerateContent
. - INPUT_PROMPT: Teks yang dikirim ke LLM untuk pembuatan konten. Coba gunakan perintah yang relevan dengan dokumen di Vertex AI Search.
- RAG_CORPUS_RESOURCE: Nama resource korpus
RAG. Format:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Opsional: Jumlah konteks teratas yang akan diambil.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" \
-d '{
"contents": {
"role": "user",
"parts": {
"text": "INPUT_PROMPT"
}
},
"tools": {
"retrieval": {
"disable_attribution": false,
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": "RAG_CORPUS_RESOURCE"
},
"similarity_top_k": SIMILARITY_TOP_K
}
}
}
}'
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 Python API.
Ganti variabel berikut yang digunakan dalam kode contoh:
- PROJECT_ID: ID project Google Cloud Anda.
- LOCATION: Region untuk memproses permintaan.
- MODEL_ID: Model LLM untuk pembuatan konten. Contohnya,
gemini-1.5-flash-002
. - GENERATION_METHOD: Metode LLM untuk pembuatan konten.
Contoh,
generateContent
,streamGenerateContent
. - INPUT_PROMPT: Teks yang dikirim ke LLM untuk pembuatan konten. Coba gunakan perintah yang relevan dengan dokumen di Vertex AI Search.
- RAG_CORPUS_RESOURCE: Nama resource korpus
RAG. Format:
projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Opsional: Jumlah konteks teratas yang akan diambil.
from vertexai.preview import rag
from vertexai.preview.generative_models import GenerativeModel, Tool
import vertexai
PROJECT_ID = "PROJECT_ID"
CORPUS_NAME = "projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_RESOURCE"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_retrieval_tool = Tool.from_retrieval(
retrieval=rag.Retrieval(
source=rag.VertexRagStore(
rag_resources=[
rag.RagResource(
rag_corpus=RAG_CORPUS_RESOURCE,
)
],
similarity_top_k=10, # Optional
),
)
)
rag_model = GenerativeModel(
model_name="MODEL_ID", tools=[rag_retrieval_tool]
)
response = rag_model.generate_content("INPUT_PROMPT")
print(response.text)
# Example response:
# The sky appears blue due to a phenomenon called Rayleigh scattering.
# Sunlight, which contains all colors of the rainbow, is scattered
# by the tiny particles in the Earth's atmosphere....
# ...