Halaman ini menunjukkan cara menghubungkan korpus RAG Engine ke database Weaviate.
Anda juga dapat mengikutinya menggunakan notebook RAG Engine dengan Weaviate ini.
Anda dapat menggunakan instance database Weaviate, yang merupakan database open source, dengan RAG Engine untuk mengindeks dan melakukan penelusuran kemiripan berbasis vektor. Penelusuran kemiripan adalah cara untuk menemukan potongan teks yang mirip dengan teks yang Anda cari, yang memerlukan penggunaan model penyematan. 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 instance database vektor terkelola sepenuhnya, yang Anda tanggung jawab untuk menyediakannya. 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 dan koleksi database Weaviate. Ikuti petunjuk di Membuat koleksi Weaviate untuk menyiapkan koleksi berdasarkan skema Anda.
- Anda harus memberikan kunci Weaviate API, 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. Sebagai gantinya, Anda
harus melakukan hal berikut:
- Simpan kunci Anda di Google Cloud Secret Manager.
- Berikan izin akun layanan project Anda untuk mengakses secret.
- 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 satu-satu. File RAG disimpan dalam koleksi database Weaviate. Saat panggilan
dilakukan ke
CreateRagCorpus
API atauUpdateRagCorpus
API, korpus RAG akan dikaitkan dengan koleksi database. - Selain penelusuran semantik berbasis penyematan yang padat, penelusuran campuran juga didukung dengan RAG Engine melalui database 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
. - Sediakan akun layanan RAG Engine Anda.
Mengonfigurasi dan men-deploy instance database Weaviate
Anda harus mengikuti panduan memulai cepat Weaviate resmi. Namun, Anda dapat menggunakan Google Cloud Panduan marketplace, yang bersifat opsional.
Anda dapat menyiapkan instance Weaviate di mana saja selama endpoint Weaviate dapat diakses untuk dikonfigurasi dan di-deploy di project Anda. Kemudian, Anda dapat mengelola sepenuhnya instance database Weaviate.
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, 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.
Membuat koleksi Weaviate
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
Menyediakan kunci API Weaviate melibatkan langkah-langkah berikut:
- Buat 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 autentikasi dan otorisasi. Anda harus mengikuti panduan resmi Weaviate untuk autentikasi guna mengonfigurasi autentikasi berbasis kunci API di instance database Weaviate Anda.
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 di Secret Manager
Kunci API menyimpan Informasi Identitas Pribadi yang Sensitif (SPII), yang tunduk pada persyaratan hukum. Jika data SPII disusupi atau disalahgunakan, seseorang mungkin akan mengalami risiko atau bahaya yang signifikan. Untuk meminimalkan risiko bagi individu saat menggunakan RAG Engine, jangan menyimpan dan mengelola kunci API Anda, dan hindari membagikan kunci API yang tidak dienkripsi.
Untuk melindungi SPII, lakukan hal berikut:
- Simpan kunci API Anda di Secret Manager.
- Berikan izin ke akun layanan RAG Engine untuk secret Anda,
dan kelola kontrol akses di tingkat resource secret.
- Buka izin project Anda.
- Aktifkan opsi Sertakan pemberian peran yang disediakan 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 akun layanan.
- Selama pembuatan atau pembaruan korpus RAG, teruskan nama resource secret ke RAG Engine, dan simpan nama resource secret.
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 akan membuat akun layanan khusus. Anda dapat menemukan akun layanan dari halaman IAM project. Akun layanan mengikuti format berikut:
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 akan digunakan dalam 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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Instal atau update Vertex AI SDK untuk Python dengan menjalankan perintah berikut:
pip3 install --upgrade "google-cloud-aiplatform>=1.38"
Node.js
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Instal atau perbarui Vertex AI SDK untuk Node.js dengan menjalankan perintah berikut:
npm install @google-cloud/vertexai
Java
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
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
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Tinjau paket Vertex AI API Go yang tersedia untuk menentukan paket mana yang paling sesuai dengan kebutuhan project 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 yang mem-build 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 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#
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
REST
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Vertex AI API.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
- 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"
- Sediakan endpoint:
gcloud beta services identity create --service=aiplatform.googleapis.com --project=${PROJECT_ID}
-
Opsional: Jika Anda menggunakan Cloud Shell dan diminta untuk memberikan otorisasi pada Cloud Shell, klik Authorize.
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 CreateRagCorpus
API dan UpdateRagCorpus
API
Anda harus menentukan kolom berikut saat memanggil API CreateRagCorpus
dan
UpdateRagCorpus
:
rag_vector_db_config.weaviate
: Setelah Anda memanggilCreateRagCorpus
API, konfigurasi database vektor akan dipilih. Konfigurasi database vektor berisi semua kolom 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 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 Anda membuat korpus RAG pertama, pengaitan antara database Weaviate dan kunci API mungkin belum siap digunakan dalam pembuatan korpus RAG lainnya.
Jika database dan kunci Anda belum siap dikaitkan dengan korpus RAG, lakukan hal berikut pada korpus RAG:
Tetapkan kolom
weaviate
dirag_vector_db_config
.- Anda tidak dapat mengubah database vektor terkait.
- Biarkan kolom
http_endpoint
dancollection_name
kosong. Kedua kolom tersebut dapat diperbarui di lain waktu.
Jika tidak memiliki kunci API yang disimpan di Secret Manager, Anda dapat meninggalkan kolom
api_auth
kosong. Saat memanggil APIUpdateRagCorpus
, 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 menentukan kolom yang hanya dapat ditetapkan satu kali, seperti
http_endpoint
ataucollection_name
, Anda tidak dapat mengubahnya kecuali jika menghapus korpus RAG, dan membuat korpus RAG lagi. Kolom lain seperti kolom kunci API,api_key_secret_version
, dapat diperbarui.Saat memanggil
UpdateRagCorpus
, Anda dapat menetapkan kolomvector_db
.vector_db
harus ditetapkan keweaviate
oleh panggilan APICreateRagCorpus
Anda. Jika tidak, sistem akan memilih opsi Database Terkelola RAG, yang merupakan 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.
- Panggil
CreateRagCorpus
API untuk membuat korpus RAG dengan konfigurasi Weaviate kosong, dan panggilUpdateRagCorpus
API untuk memperbarui korpus RAG dengan informasi berikut:- Endpoint HTTPS atau HTTP Weaviate Anda.
- Nama koleksi Weaviate Anda.
- Nama resource kunci API.
Membuat korpus RAG lain
Jika akun layanan RAG Engine sudah ada, lakukan tindakan 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 yang mengikuti format ini:
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 Weaviate yang terisi, 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 menyajikan contoh kode yang menunjukkan cara menyiapkan database Weaviate, 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 dan Pengelola Rahasia.
REST
# 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.
Membuat Rahasia
Untuk mengaktifkan Secret Manager, lakukan hal berikut:
Konsol
Buka halaman Secret Manager.
Klik + Create Secret.
Masukkan Nama secret Anda. Nama rahasia hanya boleh berisi huruf Latin (A-Z), angka (0-9), tanda hubung (-), dan garis bawah (_).
Penentuan kolom berikut bersifat opsional:
- Untuk mengupload file dengan secret Anda, klik Browse.
- Baca Kebijakan replikasi.
- Jika Anda ingin mengelola lokasi untuk secret secara manual, centang Kelola lokasi secara manual untuk secret ini. 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, centang Tetapkan tanggal habis masa berlaku.
- Secara default, versi secret dihancurkan berdasarkan permintaan. Untuk menunda penghancuran versi secret, centang 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 Buat secret.
REST
# 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\": {}}}"
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Menetapkan izin
Anda harus memberikan izin Secret Manager ke akun layanan Anda.
Konsol
Di bagian IAM & Admin di konsol Google Cloud, temukan akun layanan, lalu klik ikon pensil untuk mengedit.
Di kolom Role, pilih Secret Manager Secret Accessor.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Menambahkan Versi Secret
REST
# TODO(developer): Update the variables.
# Select a resource name for your Secret, which contains your API Key.
SECRET_NAME="MyWeaviateApiKeySecret"
# 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}\"}}"
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Menggunakan Weaviate dengan Llama 3
Notebook Model Garden RAG API menunjukkan cara menggunakan Vertex AI SDK untuk Python dengan korpus Weaviate dan model Llama 3. Untuk menggunakan notebook, Anda harus melakukan hal berikut:
Untuk contoh lainnya, lihat Contoh.
Membuat korpus RAG
Contoh kode ini menunjukkan cara membuat korpus RAG, dan menetapkan instance Weaviate 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
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Panduan memulai Vertex AI menggunakan library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI.
Untuk melakukan autentikasi ke Vertex AI, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Menggunakan file RAG
RAG API menangani upload, 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 mengetahui 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 penyematan selama
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 mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Mencantumkan 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 bagian 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 mengetahui 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 mengetahui 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 rag 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 mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.
Penelusuran campuran
Penelusuran campuran didukung dengan database Weaviate, yang menggabungkan penelusuran semantik dan kata kunci untuk meningkatkan relevansi hasil penelusuran. Selama pengambilan hasil penelusuran, kombinasi skor kemiripan dari semantik (vektor padat) dan pencocokan kata kunci (vektor jarang) menghasilkan hasil terakhir yang diberi peringkat.
Penelusuran campuran menggunakan API pengambilan RAG Engine
Ini adalah contoh cara mengaktifkan penelusuran campuran menggunakan API pengambilan Mesin RAG.
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
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.
Menggunakan penelusuran campuran dan Mesin RAG untuk pembuatan yang di-grounding
Ini adalah contoh cara menggunakan penelusuran campuran dan RAG Engine untuk pembuatan yang beralasan.
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
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.