Halaman ini menunjukkan cara menghubungkan korpus RAG Engine ke Weaviate di skrip untuk menyiapkan database.
Anda dapat menggunakan instance database Weaviate, yang merupakan database open source, dengan RAG Engine untuk mengindeks dan melakukan penelusuran kemiripan berbasis vektor. J penelusuran kesamaan adalah cara untuk menemukan potongan teks yang mirip dengan teks yang Anda cari, yang memerlukan penggunaan penyematan model. Model penyematan menghasilkan data vektor untuk setiap bagian teks yang dibandingkan. Penelusuran kemiripan digunakan untuk mengambil konteks semantik untuk penjelasan guna menampilkan konten yang paling akurat dari LLM Anda.
Dengan RAG Engine, Anda dapat terus menggunakan vektor yang terkelola sepenuhnya instance database, yang menjadi tanggung jawab Anda. RAG Engine menggunakan database vektor untuk penyimpanan, pengelolaan indeks, dan penelusuran.
Pertimbangan
Pertimbangkan langkah-langkah berikut sebelum menggunakan database Weaviate:
- Anda harus membuat, mengonfigurasi, dan men-deploy instance database Weaviate, serta pengumpulan data. Ikuti petunjuk di Membuat koleksi Weaviate untuk menyiapkan koleksi berdasarkan skema Anda.
- Anda harus memberikan kunci API Weaviate, yang memungkinkan RAG Engine berinteraksi
dengan database Weaviate. RAG Engine mendukung
AuthN
danAuthZ
berbasis kunci API, yang terhubung ke database Weaviate Anda dan mendukung koneksi HTTPS. - RAG Engine tidak menyimpan dan mengelola kunci API Weaviate Anda. Sebaliknya, Anda dapat
harus melakukan hal berikut:
- Simpan kunci Anda di Google Cloud Secret Manager.
- Beri akun layanan project izin untuk mengakses secret Anda.
- Berikan akses RAG Engine ke nama resource secret Anda.
- Saat Anda berinteraksi dengan database Weaviate, RAG Engine akan mengakses resource rahasia menggunakan akun layanan Anda.
- Korpus RAG Engine dan koleksi Weaviate memiliki
pemetaan peta Google. File RAG disimpan dalam kumpulan database Weaviate. Saat panggilan
dilakukan ke
CreateRagCorpus
API atauUpdateRagCorpus
API, korpus RAG akan dikaitkan dengan koleksi database. - Selain penelusuran semantik berbasis embeddings padat, penelusuran campuran juga didukung dengan RAG Engine melalui sebuah {i>database<i} Weaviate. Anda juga dapat menyesuaikan bobot antara kesamaan vektor rapat dan jarang dalam penelusuran campuran.
Menyediakan database Weaviate
Sebelum menggunakan database Weaviate dengan RAG Engine, Anda harus melakukan hal berikut:
- Konfigurasikan dan deploy instance database Weaviate Anda.
- Siapkan endpoint HTTPS.
- Buat koleksi Weaviate Anda.
- Gunakan kunci API Anda untuk menyediakan Weaviate menggunakan
AuthN
danAuthZ
. - Menyediakan akun layanan RAG Engine Anda.
Mengonfigurasi dan men-deploy instance database Weaviate
Anda harus mengikuti panduan memulai cepat Weaviate resmi. Namun, Anda dapat menggunakan Panduan Google Cloud Marketplace, yang bersifat opsional.
Anda dapat menyiapkan instance Weaviate di mana saja selama endpoint Weaviate dapat diakses untuk dikonfigurasi dan di-deploy dalam project Anda. Anda kemudian dapat sepenuhnya mengelola instance database Weaviate Anda.
Karena RAG Engine tidak terlibat dalam tahap apa pun dalam siklus proses instance database Weaviate, Anda bertanggung jawab untuk memberikan izin ke RAG Engine agar dapat menyimpan dan menelusuri data di database Weaviate. Anda juga bertanggung jawab untuk memastikan bahwa data dalam database Anda dapat digunakan oleh RAG Engine. Misalnya, jika Anda mengubah data Anda, RAG Engine tidak bertanggung jawab atas perilaku yang tidak terduga karena perubahan tersebut.
Menyiapkan endpoint HTTPS
Selama penyediaan Weaviate, pastikan Anda membuat endpoint HTTPS. Meskipun koneksi HTTP didukung, sebaiknya traffic database RAG Engine dan Weaviate menggunakan koneksi HTTPS.
Buat koleksi Weaviate Anda
Karena korpus RAG Engine dan koleksi Weaviate memiliki pemetaan satu-satu, Anda harus membuat koleksi di database Weaviate sebelum mengaitkan koleksi dengan korpus RAG Engine. Atribusi satu kali ini
dibuat saat Anda memanggil CreateRagCorpus
API atau
UpdateRagCorpus
API.
Saat membuat koleksi di Weaviate, Anda harus menggunakan skema berikut:
Nama properti | Jenis data |
---|---|
fileId |
text |
corpusId |
text |
chunkId |
text |
chunkDataType |
text |
chunkData |
text |
fileOriginalUri |
text |
Menggunakan kunci API untuk menyediakan Weaviate menggunakan AuthN
dan AuthZ
Penyediaan kunci API Weaviate melibatkan langkah-langkah berikut:
- Membuat kunci API Weaviate.
- Konfigurasikan Weaviate menggunakan kunci API Weaviate Anda.
- Simpan kunci API Weaviate Anda di Secret Manager.
Membuat kunci API
RAG Engine hanya dapat terhubung ke instance database Weaviate menggunakan kunci API Anda untuk otentikasi dan otorisasi. Anda harus mengikuti Panduan resmi autentikasi untuk mengonfigurasi autentikasi berbasis kunci API di database Weaviate Anda di instance Compute Engine.
Jika pembuatan kunci API Weaviate memerlukan informasi identitas untuk dikaitkan dengan yang berasal dari RAG Engine, Anda harus membuat korpus pertama, dan menggunakan akun layanan RAG Engine sebagai identitas.
Menyimpan kunci API Anda di Secret Manager
Kunci API menyimpan Informasi Identitas Pribadi (SPII) yang Sensitif, yaitu tunduk pada persyaratan hukum. Jika data SPII disusupi atau disalahgunakan, individu mungkin akan mengalami risiko atau bahaya yang signifikan. Untuk meminimalkan risiko terhadap satu per satu saat menggunakan RAG Engine, jangan simpan dan kelola kunci API Anda, dan menghindari berbagi kunci API yang tidak dienkripsi.
Untuk melindungi SPII, lakukan hal berikut:
- Simpan kunci API Anda di Secret Manager.
- Beri akun layanan RAG Engine izin ke secret Anda,
dan mengelola kontrol akses di level resource secret.
- Buka izin project Anda.
- Aktifkan opsi Sertakan pemberian peran yang diberikan Google.
- Temukan akun layanan, yang memiliki format
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
- Edit akun utama akun layanan.
- Tambahkan peran Secret Manager Secret Accessor ke layanan menggunakan akun layanan.
- Selama pembuatan atau pembaruan korpus RAG, teruskan resource rahasia ke RAG Engine, dan menyimpan nama resource rahasia.
Saat Anda membuat permintaan API ke instance database Weaviate, RAG Engine menggunakan setiap akun layanan untuk membaca kunci API yang sesuai dengan resource rahasia Anda di Secret Manager dari project Anda.
Menyediakan akun layanan RAG Engine
Saat Anda membuat resource pertama dalam project, RAG Engine membuat akun layanan khusus. Anda dapat menemukan akun layanan dari halaman IAM project. Akun layanan mengikuti langkah ini format:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
Misalnya, service-123456789@gcp-sa-vertex-rag.iam.gserviceaccount.com
.
Saat berintegrasi dengan database Weaviate, akun layanan Anda digunakan di skenario berikut:
- Anda dapat menggunakan akun layanan untuk membuat kunci Weaviate API untuk autentikasi. Dalam beberapa kasus, pembuatan kunci API tidak memerlukan informasi pengguna, yang berarti akun layanan tidak diperlukan saat membuat kunci API.
- Anda dapat mengikat akun layanan dengan kunci API di database Weaviate
untuk mengonfigurasi autentikasi (
AuthN
) dan otorisasi (AuthZ
). Namun, akun layanan Anda tidak diperlukan. - Anda dapat menyimpan Secret Manager kunci API di project, dan Anda dapat memberikan izin akun layanan ke resource secret ini.
- RAG Engine menggunakan akun layanan untuk mengakses kunci API dari Secret Manager di project Anda.
Menyiapkan lingkungan konsol Google Cloud
Klik untuk mempelajari cara menyiapkan lingkungan Anda
Pelajari cara menyiapkan lingkungan Anda dengan memilih salah satu tab berikut:
Python
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Instal atau update Vertex AI SDK untuk Python dengan menjalankan perintah berikut:
pip3 install --upgrade "google-cloud-aiplatform>=1.38"
Node.js
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Instal atau perbarui Vertex AI SDK untuk Node.js dengan menjalankan perintah berikut:
npm install @google-cloud/vertexai
Java
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
-
Untuk menambahkan
google-cloud-vertexai
sebagai dependensi, tambahkan kode yang sesuai untuk lingkungan Anda:Maven dengan BOM
Tambahkan HTML berikut ke
pom.xml
Anda:<dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>libraries-bom</artifactId> <version>26.32.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-vertexai</artifactId> </dependency> </dependencies>
Maven tanpa BOM
Tambahkan HTML berikut ke
pom.xml
Anda:<dependency> <groupId>com.google.cloud</groupId> <artifactId>google-cloud-vertexai</artifactId> <version>0.4.0</version> </dependency>
Gradle without BOM
Add the following to your
build.gradle
implementation 'com.google.cloud:google-cloud-vertexai:0.4.0'
Go
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
Meninjau paket Vertex AI API Go yang tersedia untuk menentukan paket mana yang paling sesuai dengan kebutuhan proyek Anda:
Paket cloud.google.com/go/vertexai (direkomendasikan)
vertexai
adalah paket yang dibuat manusia yang memberikan akses ke kemampuan dan fitur umum.Paket ini direkomendasikan sebagai titik awal bagi sebagian besar developer membangun solusi dengan Vertex AI API. Untuk mengakses kemampuan dan fitur yang belum tercakup dalam paket ini, gunakan
aiplatform
yang dibuat otomatis.Paket cloud.google.com/go/aiplatform
aiplatform
adalah paket yang dibuat secara otomatis.Paket ini ditujukan untuk project yang memerlukan akses ke Kemampuan dan fitur Vertex AI API yang belum disediakan oleh paket
vertexai
yang ditulis manusia.
Instal paket Go yang diinginkan berdasarkan kebutuhan project Anda dengan menjalankan salah satu perintah berikut:
# Human authored package. Recommended for most developers. go get cloud.google.com/go/vertexai
# Auto-generated package. go get cloud.google.com/go/aiplatform
C#
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
-
Buat kredensial autentikasi lokal untuk Akun Google Anda:
gcloud auth application-default login
REST
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Aktifkan API Vertex AI.
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
- Konfigurasikan variabel lingkungan dengan memasukkan kode berikut. Ganti
PROJECT_ID
dengan ID project Google Cloud Anda.MODEL_ID="gemini-1.5-flash-002" PROJECT_ID="PROJECT_ID"
- Menyediakan endpoint:
gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID}
-
Opsional: Jika Anda menggunakan Cloud Shell dan diminta untuk mengotorisasi Cloud Shell, klik Izinkan.
Menyiapkan korpus RAG
Untuk mengakses data dari database Weaviate, RAG Engine harus memiliki akses ke korpus RAG. Bagian ini memberikan langkah-langkah untuk membuat satu korpus RAG dan korpus RAG tambahan.
Menggunakan API CreateRagCorpus
dan UpdateRagCorpus
Anda harus menentukan kolom berikut saat memanggil CreateRagCorpus
dan
UpdateRagCorpus
API:
rag_vector_db_config.weaviate
: Setelah memanggil APICreateRagCorpus
, konfigurasi database vektor dipilih. Konfigurasi database vektor berisi semua isian konfigurasi. Jika kolomrag_vector_db_config.weaviate
tidak ditetapkan,rag_vector_db_config.rag_managed_db
akan ditetapkan secara default.weaviate.http_endpoint
: Endpoint Weaviate HTTPS atau HTTP dibuat selama penyediaan instance database Weaviate.weaviate.collection_name
: Nama koleksi yang dibuat selama penyediaan instance Weaviate. Nama harus diawali dengan huruf kapital.api_auth.api_key_config
: Konfigurasi menentukan untuk menggunakan kunci API guna memberikan otorisasi akses Anda ke database vektor.api_key_config.api_key_secret_version
: Nama resource secret yang disimpan di Secret Manager, yang berisi kunci Weaviate API Anda.
Anda dapat membuat dan mengaitkan korpus RAG ke koleksi Weaviate di di instance database. Namun, Anda mungkin memerlukan akun layanan untuk membuat kunci API dan mengonfigurasi instance database Weaviate. Saat Anda membuat korpus RAG pertama, akun layanan akan dibuat. Setelah membuat Korpus RAG, hubungan antara {i> database Weaviate <i}dan kunci API mungkin belum siap digunakan dalam pembuatan korpus RAG lain.
Untuk berjaga-jaga jika {i>database<i} dan kunci Anda belum siap untuk dikaitkan dengan Korpus RAG, lakukan hal berikut pada korpus RAG Anda:
Tetapkan kolom
weaviate
dirag_vector_db_config
.- Anda tidak dapat mengubah database vektor terkait.
- Biarkan kolom
http_endpoint
dancollection_name
kosong. Keduanya dapat diperbarui di lain waktu.
Jika tidak memiliki kunci API yang tersimpan di Secret Manager, Anda dapat mengosongkan kolom
api_auth
. Saat Anda memanggilUpdateRagCorpus
Anda dapat memperbarui kolomapi_auth
. Weaviate mengharuskan hal berikut dilakukan:- Tetapkan
api_key_config
di kolomapi_auth
. Tetapkan
api_key_secret_version
kunci API Weaviate Anda di Secret Manager. Kolomapi_key_secret_version
menggunakan format berikut:projects/{project}/secrets/{secret}/versions/{version}
- Tetapkan
Jika Anda menentukan kolom yang hanya dapat ditetapkan satu kali, seperti
http_endpoint
ataucollection_name
, Anda tidak dapat mengubahnya kecuali jika Anda menghapus korpus RAG, dan buat korpus RAG Anda lagi. Kolom lain seperti kolom kunci API,api_key_secret_version
, dapat diperbarui.Saat memanggil
UpdateRagCorpus
, Anda dapat menetapkan kolomvector_db
. Tujuanvector_db
harus disetel keweaviate
oleh panggilan APICreateRagCorpus
Anda. Jika tidak, sistem akan memilih opsi RAG Managed Database, yang secara default. Opsi ini tidak dapat diubah saat Anda memanggil APIUpdateRagCorpus
. Saat memanggilUpdateRagCorpus
dan kolomvector_db
ditetapkan sebagian, Anda dapat memperbarui kolom yang ditandai sebagai Dapat Diubah (juga disebut sebagai dapat diubah).
Tabel ini mencantumkan kolom WeaviateConfig
yang dapat diubah dan tidak dapat diubah yang digunakan
dalam kode Anda.
Nama kolom | Dapat Diubah atau Tidak Dapat Diubah |
---|---|
http_endpoint |
Tidak dapat diubah setelah ditetapkan |
collection_name |
Tidak dapat diubah setelah ditetapkan |
api_key_authentication |
Dapat diubah |
Membuat korpus RAG pertama
Jika akun layanan RAG Engine tidak ada, lakukan tindakan berikut:
- Buat korpus RAG di RAG Engine dengan konfigurasi Weaviate kosong, yang memulai penyediaan RAG Engine untuk membuat akun layanan.
- Pilih nama untuk akun layanan RAG Engine Anda yang mengikuti format ini:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
Misalnya,
service-123456789@gcp-sa-vertex-rag.iam.gserviceaccount.com
. - Dengan menggunakan akun layanan, akses secret yang disimpan di Secret Manager project Anda, yang berisi kunci Weaviate API Anda.
- Dapatkan informasi berikut setelah penyediaan Weaviate selesai:
- Endpoint HTTPS atau HTTP Weaviate Anda.
- Nama koleksi Weaviate Anda.
- Memanggil
CreateRagCorpus
API untuk membuat korpus RAG dengan Konfigurasi Weaviate, dan panggilUpdateRagCorpus
API untuk mengupdate Korpus RAG dengan informasi berikut:- Endpoint HTTPS atau HTTP Weaviate Anda.
- Nama koleksi Weaviate Anda.
- Nama resource kunci API.
Buat korpus RAG lain
Jika akun layanan RAG Engine sudah ada, lakukan hal berikut:
- Dapatkan akun layanan RAG Engine dari izin project Anda.
- Aktifkan opsi "Sertakan pemberian peran yang disediakan Google"
- Pilih nama untuk akun layanan RAG Engine Anda setelah ini
format:
service-{project number}@gcp-sa-vertex-rag.iam.gserviceaccount.com
- Dengan menggunakan akun layanan, akses secret yang disimpan di Secret Manager project Anda, yang berisi kunci Weaviate API Anda.
- Selama penyediaan Weaviate, dapatkan informasi berikut:
- Endpoint HTTPS atau HTTP Weaviate.
- Nama koleksi Weaviate Anda.
- Buat korpus RAG di RAG Engine, dan hubungkan dengan koleksi Weaviate Anda dengan melakukan salah satu hal berikut:
- Lakukan panggilan API
CreateRagCorpus
untuk membuat korpus RAG dengan Konfigurasi bobot, yang merupakan opsi yang lebih disukai. - Lakukan panggilan API
CreateRagCorpus
untuk membuat korpus RAG dengan konfigurasi Weaviate kosong, dan lakukan panggilan APIUpdateRagCorpus
untuk memperbarui korpus RAG dengan informasi berikut:- Endpoint HTTP database Weaviate
- Nama Koleksi Weaviate
- Kunci API
- Lakukan panggilan API
Contoh
Bagian ini menampilkan kode contoh yang menunjukkan cara menyiapkan Weaviate {i>database<i}, Secret Manager, korpus RAG, dan file RAG. Kode contoh juga disediakan untuk menunjukkan cara mengimpor file, mengambil konteks, membuat konten, dan menghapus korpus RAG dan file RAG.
Untuk menggunakan notebook Model Garden RAG API, lihat Menggunakan Weaviate dengan Llama 3.
Menyiapkan database Weaviate
Contoh kode ini menunjukkan cara menyiapkan data Weaviate Anda dan {i>Secret Manager<i}.
# TODO(developer): Update the variables.
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate API Key.
WEAVIATE_API_KEY="example-api-key"
# Select your Weaviate collection name, which roughly corresponds to a Vertex AI Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weavaite will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# Create a collection in Weaviate which includes the required schema fields shown below.
echo '{
"class": "'${WEAVIATE_COLLECTION_NAME}'",
"properties": [
{ "name": "fileId", "dataType": [ "string" ] },
{ "name": "corpusId", "dataType": [ "string" ] },
{ "name": "chunkId", "dataType": [ "string" ] },
{ "name": "chunkDataType", "dataType": [ "string" ] },
{ "name": "chunkData", "dataType": [ "string" ] },
{ "name": "fileOriginalUri", "dataType": [ "string" ] }
]
}' | curl \
-X POST \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer "${WEAVIATE_API_KEY} \
-d @- \
${HTTP_ENDPOINT_NAME}/v1/schema
Menyiapkan Secret Manager
Untuk menyiapkan Secret Manager, Anda harus mengaktifkan Secret Manager, dan menetapkan izin akses.
Mengaktifkan Secret Manager
Untuk mengaktifkan Secret Manager, lakukan hal berikut:
- Buka halaman Secret Manager.
- Klik + Create Secret.
- Masukkan Nama rahasia Anda. Nama rahasia hanya boleh berisi huruf Latin (A-Z), angka (0-9), tanda hubung (-), dan garis bawah (_).
- Menentukan kolom berikut bersifat opsional:
- Untuk mengupload file dengan secret Anda, klik Browse.
- Baca Kebijakan replikasi.
- Jika ingin mengelola lokasi untuk secret Anda secara manual, centang Kelola lokasi untuk rahasia ini secara manual. Minimal satu region harus dipilih.
- Pilih opsi enkripsi Anda.
- Jika Anda ingin menetapkan periode rotasi secara manual, centang Tetapkan periode rotasi.
- Jika Anda ingin menentukan topik Publikasikan atau berlangganan untuk menerima notifikasi peristiwa, klik Tambahkan topik.
- Secara default, masa berlaku secret tidak pernah berakhir. Jika Anda ingin menetapkan tanggal habis masa berlaku, lalu centang Tetapkan tanggal habis masa berlaku.
- Secara default, versi secret dihancurkan sesuai permintaan. Untuk menunda penghancuran versi secret, periksa Set duration for delayed destruction.
- Jika Anda ingin menggunakan label untuk mengatur dan mengategorikan secret, klik + Tambahkan label.
- Jika Anda ingin menggunakan anotasi untuk melampirkan metadata non-identitas ke secret, klik + Tambahkan anotasi.
- Klik Create secret.
Menetapkan izin
Anda harus memberikan izin Secret Manager ke akun layanan Anda.
Di bagian IAM & Admin di konsol Google Cloud, temukan akun layanan Anda, lalu klik ikon pensil untuk mengedit.
Di kolom Role, pilih Secret Manager Secret Accessor.
Contoh kode ini menunjukkan cara menyiapkan Secret Manager Anda.
# TODO(developer): Update the variables.
# Select a resource name for your Secret, which contains your API Key.
SECRET_NAME="MyWeaviateApiKeySecret"
# Create a secret in SecretManager.
curl "https://secretmanager.googleapis.com/v1/projects/${PROJECT_ID}/secrets?secretId=${SECRET_NAME}" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"replication\": {\"automatic\": {}}}"
# Your Weaviate API Key.
WEAVIATE_API_KEY="example-api-key"
# Encode your WEAVIATE_API_KEY using base 64.
SECRET_DATA=$(echo ${WEAVIATE_API_KEY} | base64)
# Create a new version of your secret which uses SECRET_DATA as payload
curl.
"https://secretmanager.googleapis.com/v1/projects/${PROJECT_ID}/secrets/${SECRET_NAME}:addVersion" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"payload\": {\"data\": \"${SECRET_DATA}\"}}"
Menggunakan Weaviate dengan Llama 3
Notebook Model Garden RAG API menunjukkan cara menggunakan Vertex AI SDK untuk Python dengan model Weaviate corpus dan Llama 3. Untuk menggunakan Anda harus melakukan hal berikut:
Untuk contoh lainnya, lihat Contoh.
Membuat korpus RAG
Contoh kode ini menunjukkan cara membuat korpus RAG, dan menetapkan bobot sebagai database vektornya.
REST
# TODO(developer): Update the variables.
PROJECT_ID = "YOUR_PROJECT_ID"
# The HTTPS/HTTP Weaviate endpoint you created during provisioning.
HTTP_ENDPOINT_NAME="https://your.weaviate.endpoint.com"
# Your Weaviate collection name, which roughly corresponds to a Vertex AI Knowledge Engine Corpus.
# For example, "MyCollectionName"
# Note that the first letter needs to be capitalized.
# Otherwise, Weaviate will capitalize it for you.
WEAVIATE_COLLECTION_NAME="MyCollectionName"
# The resource name of your Weaviate API Key your Secret.
SECRET_NAME="MyWeaviateApiKeySecret"
# The Secret Manager resource name containing the API Key for your Weaviate endpoint.
# For example, projects/{project}/secrets/{secret}/versions/latest
APIKEY_SECRET_VERSION="projects/${PROJECT_ID}/secrets/${SECRET_NAME}/versions/latest"
# Select a Corpus display name.
CORPUS_DISPLAY_NAME="SpecialCorpus"
# Call CreateRagCorpus API and set all Vector DB Config parameters for Weaviate to create a new corpus associated to your selected Weaviate collection.
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" : {
"weaviate": {
"http_endpoint": '\""${HTTP_ENDPOINT_NAME}"\"',
"collection_name": '\""${WEAVIATE_COLLECTION_NAME}"\"'
},
"api_auth" : {
"api_key_config": {
"api_key_secret_version": '\""${APIKEY_SECRET_VERSION}"\"'
}
}
}
}'
# TODO(developer): Update the variables.
# Get operation_id returned in CreateRagCorpus.
OPERATION_ID="your-operation-id"
# Poll Operation status until done = true in the response.
curl -X GET \
-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/operations/${OPERATION_ID}
# 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
import vertexai
from vertexai.preview import rag
from vertexai.preview.generative_models import GenerativeModel, Tool
# Set Project
PROJECT_ID = "YOUR_PROJECT_ID" # @param {type:"string"}
vertexai.init(project=PROJECT_ID, location="us-central1")
# Configure a Google first-party embedding model
embedding_model_config = rag.EmbeddingModelConfig(
publisher_model="publishers/google/models/text-embedding-004"
)
# Configure a third-party model or a Google fine-tuned first-party model as a Vertex Endpoint resource
# See https://github.com/GoogleCloudPlatform/vertex-ai-samples/blob/main/notebooks/community/model_garden/model_garden_e5.ipynb for
# deploying 3P embedding models to endpoints
ENDPOINT_ID = "your-model-endpoint-id" # @param {type:"string"}
MODEL_ENDPOINT = "projects/{PROJECT_ID}/locations/us-central1/endpoints/{ENDPOINT_ID}"
embedding_model_config = rag.EmbeddingModelConfig(
endpoint=MODEL_ENDPOINT,
)
# Configure a Weaviate Vector Database Instance for the corpus
WEAVIATE_HTTP_ENDPOINT = "weaviate-http-endpoint" # @param {type:"string"}
COLLECTION_NAME = "weaviate-collection-name" # @param {type:"string"}
API_KEY = "your-secret-manager-resource-name" # @param {type:"string"}
vector_db = rag.Weaviate(
weaviate_http_endpoint=WEAVIATE_HTTP_ENDPOINT,
collection_name=COLLECTION_NAME,
api_key=API_KEY,
)
# Name your corpus
DISPLAY_NAME = "your-corpus-name" # @param {type:"string"}
rag_corpus = rag.create_corpus(
display_name=DISPLAY_NAME, embedding_model_config=embedding_model_config, vector_db=vector_db
)
# Check the corpus just created
rag.list_corpora()
Menggunakan file RAG
RAG API menangani unggahan, impor, listingan, dan penghapusan file.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID resource
RagCorpus
. - INPUT_FILE: Jalur file lokal.
- FILE_DISPLAY_NAME: Nama tampilan
RagFile
. - RAG_FILE_DESCRIPTION: Deskripsi
RagFile
.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload
Isi JSON permintaan:
{ "rag_file": { "display_name": "FILE_DISPLAY_NAME", "description": "RAG_FILE_DESCRIPTION" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama INPUT_FILE
,
lalu jalankan perintah berikut:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @INPUT_FILE \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"
PowerShell
Simpan isi permintaan dalam file bernama INPUT_FILE
,
dan jalankan perintah berikut:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile INPUT_FILE `
-Uri "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload" | Select-Object -Expand Content
RagFile
. Komponen terakhir kolom RagFile.name
adalah rag_file_id
yang dibuat server.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Dokumentasi referensi Python API.
Mengimpor file RAG
File dan folder dapat diimpor dari Drive atau Cloud Storage.
REST
Gunakan response.metadata
untuk melihat kegagalan sebagian, waktu permintaan, dan waktu respons
di objek response
SDK.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID resource
RagCorpus
. - GCS_URIS: Daftar lokasi Cloud Storage. Contoh:
gs://my-bucket1, gs://my-bucket2
. - DRIVE_RESOURCE_ID: ID resource Drive. Contoh:
https://drive.google.com/file/d/ABCDE
https://drive.google.com/corp/drive/u/0/folders/ABCDEFG
- DRIVE_RESOURCE_TYPE: Jenis resource Drive. Opsi:
RESOURCE_TYPE_FILE
- FileRESOURCE_TYPE_FOLDER
- Folder- CHUNK_SIZE: Opsional: Jumlah token yang harus dimiliki setiap bagian.
- CHUNK_OVERLAP: Opsional: Jumlah token yang tumpang-tindih di antara bagian.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
Isi JSON permintaan:
{ "import_rag_files_config": { "gcs_source": { "uris": GCS_URIS }, "google_drive_source": { "resource_ids": { "resource_id": DRIVE_RESOURCE_ID, "resource_type": DRIVE_RESOURCE_TYPE }, } } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
ImportRagFilesOperationMetadata
.
Contoh berikut menunjukkan cara mengimpor file dari Cloud Storage. Gunakan kolom kontrol max_embedding_requests_per_min
untuk membatasi kecepatan RAG Engine memanggil model penyematan selama
proses pengindeksan ImportRagFiles
. Kolom ini memiliki nilai default 1000
panggilan
per menit.
// Cloud Storage bucket/file location.
// Such as "gs://rag-e2e-test/"
GCS_URIS=YOUR_GCS_LOCATION
// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID, GCS_URIS
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"gcs_source": {
"uris": '\""${GCS_URIS}"\"'
},
"rag_file_chunking_config": {
"chunk_size": 512
},
"max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}
Contoh berikut menunjukkan cara mengimpor file dari Drive. Gunakan kolom kontrol max_embedding_requests_per_min
untuk
membatasi kecepatan RAG Engine memanggil model embedding
Proses pengindeksan ImportRagFiles
. Kolom ini memiliki nilai default 1000
panggilan
per menit.
// Google Drive folder location.
FOLDER_RESOURCE_ID=YOUR_GOOGLE_DRIVE_FOLDER_RESOURCE_ID
// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID, FOLDER_RESOURCE_ID
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
"import_rag_files_config": {
"google_drive_source": {
"resource_ids": {
"resource_id": '\""${FOLDER_RESOURCE_ID}"\"',
"resource_type": "RESOURCE_TYPE_FOLDER"
}
},
"max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${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.
Mendapatkan file RAG
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID resource
RagCorpus
. - RAG_FILE_ID: ID resource
RagFile
.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
Jalankan perintah berikut:
$headers = @{ }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
RagFile
.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Dokumentasi referensi Python API.
Membuat daftar file RAG
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID resource
RagCorpus
. - PAGE_SIZE: Ukuran halaman daftar standar. Anda dapat menyesuaikan jumlah
RagFiles
yang akan ditampilkan per halaman dengan memperbarui parameterpage_size
. - PAGE_TOKEN: Token halaman daftar standar. Biasanya diperoleh menggunakan
ListRagFilesResponse.next_page_token
dari panggilanVertexRagDataService.ListRagFiles
sebelumnya.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
PowerShell
Jalankan perintah berikut:
$headers = @{ }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
RagFiles
di bawah RAG_CORPUS_ID
yang diberikan.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Dokumentasi referensi Python API.
Menghapus file RAG
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID resource
RagCorpus
. - RAG_FILE_ID: ID resource
RagFile
. Format:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}
.
Metode HTTP dan URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X DELETE \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
Jalankan perintah berikut:
$headers = @{ }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
DeleteOperationMetadata
.
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.
Mengambil konteks
Saat pengguna mengajukan pertanyaan atau memberikan perintah, komponen pengambilan di RAG akan menelusuri pusat informasinya untuk menemukan informasi yang relevan dengan kueri.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region untuk memproses permintaan.
- PROJECT_ID: Project ID Anda.
- RAG_CORPUS_RESOURCE: Nama resource
RagCorpus
. Format:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - VECTOR_DISTANCE_THRESHOLD: Hanya konteks dengan jarak vektor yang lebih kecil dari nilai minimum yang ditampilkan.
- TEXT: Teks kueri untuk mendapatkan konteks yang relevan.
- SIMILARITY_TOP_K: Jumlah konteks teratas yang akan diambil.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts
Isi JSON permintaan:
{ "vertex_rag_store": { "rag_resources": { "rag_corpus": "RAG_CORPUS_RESOURCE", }, "vector_distance_threshold": 0.8 }, "query": { "text": "TEXT", "similarity_top_k": SIMILARITY_TOP_K } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
RagFiles
terkait.
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Dokumentasi referensi Python API.
Membuat konten
Prediksi mengontrol metode LLM yang menghasilkan konten.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- MODEL_ID: Model LLM untuk pembuatan konten. Contoh:
gemini-1.5-pro-002
- GENERATION_METHOD: Metode LLM untuk pembuatan konten. Opsi:
generateContent
,streamGenerateContent
- INPUT_PROMPT: Teks yang dikirim ke LLM untuk pembuatan konten. Coba gunakan perintah yang relevan dengan File kain yang diupload.
- RAG_CORPUS_RESOURCE: Nama resource
RagCorpus
. Format:projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
. - SIMILARITY_TOP_K: Opsional: Jumlah konteks teratas yang akan diambil.
- VECTOR_DISTANCE_THRESHOLD: Opsional: Konteks dengan jarak vektor yang lebih kecil dari nilai minimum akan ditampilkan.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD
Isi JSON permintaan:
{ "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, "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD } } } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
dan jalankan perintah berikut:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat Dokumentasi referensi Python API.
Penelusuran campuran
Penelusuran campuran didukung dengan database Weaviate, yang menggabungkan kedua model dan kata kunci untuk meningkatkan relevansi hasil penelusuran. Selama pengambilan hasil penelusuran, kombinasi skor kesamaan dari vektor padat) dan pencocokan kata kunci (vektor renggang) menghasilkan vektor padat hasil pengujian tersebut.
Penelusuran campuran menggunakan API pengambilan RAG Engine
Ini adalah contoh cara mengaktifkan penelusuran campuran menggunakan API pengambilan Mesin RAG.
REST
Variabel berikut digunakan dalam contoh kode:
- PROJECT_ID: Project ID Google Cloud Anda.
- RAG_CORPUS_RESOURCE: Nama resource lengkap untuk korpus
RAG Anda dalam format
projects/*/locations/us-central1/ragCorpora/*
. - DISTANCE_THRESHOLD: Nilai minimum yang ditetapkan untuk penelusuran vektor
jarak dalam rentang
[0, 1.0]
. Nilai defaultnya ditetapkan ke0.3
. - ALPHA: Nilai alfa mengontrol bobot antar-semantik
dan hasil penelusuran kata kunci. Rentangnya adalah
[0, 1]
dengan0
adalah sparse penelusuran vektor dan1
adalah penelusuran vektor padat. Nilai defaultnya adalah0.5
, yang menyeimbangkan penelusuran vektor jarang dan padat. - RETRIEVAL_QUERY: Kueri pengambilan Anda.
- TOP_K: Jumlah hasil
k
teratas yang akan diambil.
Contoh ini menunjukkan cara memanggil metode HTTP di URL.
POST https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1:retrieveContexts
Contoh kode ini menunjukkan cara menggunakan isi JSON permintaan.
{
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": '\""${RAG_CORPUS_RESOURCE}"\"',
},
"vector_distance_threshold": ${DISTANCE_THRESHOLD}
},
"query": {
"text": '\""${RETRIEVAL_QUERY}"\"',
"similarity_top_k": ${TOP_K},
"ranking": { "alpha" : ${ALPHA}}
}
}
Python
from vertexai.preview import rag
import vertexai
# TODO(developer): Update the variables.
# PROJECT_ID = "your-project-id"
# rag_corpus_id = "your-rag-corpus-id"
# Only one corpus is supported at this time
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")
response = rag.retrieval_query(
rag_resources=[
rag.RagResource(
rag_corpus=rag_corpus_id,
# Optional: supply IDs from `rag.list_files()`.
# rag_file_ids=["rag-file-1", "rag-file-2", ...],
)
],
text="What is RAG and why it is helpful?",
similarity_top_k=10, # Optional
vector_distance_threshold=0.5, # Optional
ranking=rag.RagQuery.Ranking(
alpha=0.5
), # Optional
)
print(response)
Gunakan penelusuran hybrid dan RAG Engine untuk generasi yang tidak terhubung
Ini adalah contoh cara menggunakan penelusuran campuran dan RAG Engine untuk pembuatan yang beralasan.
REST
Variabel berikut digunakan dalam contoh kode:
- PROJECT_ID: ID project Google Cloud Anda.
- RAG_CORPUS_RESOURCE: Nama referensi lengkap korpus RAG Anda di
dalam format
projects/*/locations/us-central1/ragCorpora/*
. - DISTANCE_THRESHOLD: Nilai minimum yang ditetapkan untuk penelusuran vektor
jarak dalam rentang
[0, 1.0]
. Nilai default ditetapkan ke0.3
. - ALPHA: Nilai alfa mengontrol bobot antara hasil penelusuran kata kunci
dan semantik. Rentangnya adalah
[0, 1]
dengan0
adalah penelusuran vektor yang jarang dan1
adalah penelusuran vektor yang rapat. Nilai defaultnya adalah0.5
, yang menyeimbangkan penelusuran vektor jarang dan padat. - INPUT_PROMPT: Perintah input Anda.
- TOP_K: Jumlah hasil
k
teratas yang akan diambil.
Contoh ini menunjukkan cara memanggil metode HTTP di URL.
POST https://us-central1-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/us-central1/publishers/google/models/gemini-pro:generateContent
Contoh kode ini menunjukkan cara menggunakan isi JSON permintaan.
{
"contents": {
"role": "user",
"parts": {
"text": '\""${INPUT_PROMPT}"\"'
}
},
"tools": {
"retrieval": {
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": '\""${RAG_CORPUS_RESOURCE}"\"',
},
"similarity_top_k": ${TOP_K},
"vector_distance_threshold": ${DISTANCE_THRESHOLD},
"ranking": { "alpha" : ${ALPHA}}
}
}
}
}
Python
from vertexai.preview import rag
from vertexai.preview.generative_models import GenerativeModel, Tool
import vertexai
# TODO(developer): Update the variables.
# PROJECT_ID = "your-project-id"
# rag_corpus_id = "your-rag-corpus-id" # Only one corpus is supported at this time
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")
rag_retrieval_tool = Tool.from_retrieval(
retrieval=rag.Retrieval(
source=rag.VertexRagStore(
rag_resources=[
rag.RagResource(
rag_corpus=rag_corpus_id, # Currently only 1 corpus is allowed.
# Optional: supply IDs from `rag.list_files()`.
# rag_file_ids=["rag-file-1", "rag-file-2", ...],
)
],
similarity_top_k=3, # Optional
vector_distance_threshold=0.5, # Optional
ranking=rag.RagQuery.Ranking(
alpha=0.5
), # Optional
),
)
)
rag_model = GenerativeModel(
model_name="gemini-1.5-flash-001", tools=[rag_retrieval_tool]
)
response = rag_model.generate_content("Why is the sky blue?")
print(response.text)
Langkah selanjutnya
- Untuk mempelajari lebih lanjut pentanahan, lihat Ringkasan pentanahan.
- Untuk mempelajari RAG Engine lebih lanjut, lihat Menggunakan RAG Engine.
- Untuk mempelajari lebih lanjut grounding dan RAG, lihat Respons ground menggunakan RAG.