Mesin RAG Vertex AI adalah komponen dari platform Vertex AI, yang memfasilitasi Retrieval-Augmented Generation (RAG). RAG Engine memungkinkan Model Bahasa Besar (LLM) mengakses dan menggabungkan data dari sumber pengetahuan eksternal, seperti dokumen dan database. Dengan menggunakan RAG, LLM dapat menghasilkan respons LLM yang lebih akurat dan informatif.
Contoh sintaksis
Bagian ini memberikan sintaksis untuk membuat korpus RAG.
curl
PROJECT_ID: Your project ID. LOCATION: The region to process the request. curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora\ -d '{ "display_name" : "...", "description": "..." }'
Python
corpus = rag.create_corpus(display_name=..., description=...) print(corpus)
Daftar parameter
Bagian ini mencantumkan hal berikut:
Parameter | Contoh |
---|---|
Lihat Parameter pengelolaan korpus. | Lihat Contoh pengelolaan korpus. |
Lihat Parameter pengelolaan file. | Lihat Contoh pengelolaan file. |
Parameter pengelolaan korpus
Untuk informasi tentang korpus RAG, lihat Pengelolaan korpus.
Membuat korpus RAG
Tabel ini mencantumkan parameter yang digunakan untuk membuat korpus RAG.
Permintaan Isi
Parameter | |
---|---|
|
Wajib: Nama tampilan korpus RAG. |
|
Opsional: Deskripsi korpus RAG. |
|
Opsional: Tidak dapat diubah: Konfigurasi untuk DB Vektor. |
RagVectorDbConfig
Parameter | |
---|---|
|
Jika tidak ada database vektor yang ditentukan, |
|
Menentukan instance Pinecone Anda. |
|
Ini adalah nama yang digunakan untuk membuat indeks Pinecone yang digunakan dengan korpus RAG. Nilai ini tidak dapat diubah setelah ditetapkan. Anda dapat membiarkannya kosong dalam
panggilan API |
|
Menentukan instance Vertex Vector Search Anda. |
|
Ini adalah nama resource indeks Penelusuran Vektor yang digunakan dengan korpus RAG. Format: Nilai ini tidak dapat diubah setelah ditetapkan. Anda dapat membiarkannya kosong dalam
panggilan API |
|
Ini adalah nama resource endpoint indeks Vector Search yang digunakan dengan korpus RAG. Format: Nilai ini tidak dapat diubah setelah ditetapkan. Anda dapat membiarkannya kosong dalam
panggilan API |
|
Ini adalah nama resource lengkap secret yang disimpan di Secret Manager, yang berisi kunci API Pinecone Anda. Format: Anda dapat membiarkannya kosong dalam panggilan API |
|
Opsional: Tidak dapat diubah: Model penyematan yang akan digunakan untuk korpus RAG. Nilai ini tidak dapat diubah setelah ditetapkan. Jika Anda membiarkannya kosong, kami akan menggunakan text-embedding-004 sebagai model penyematan. |
Memperbarui korpus RAG
Tabel ini mencantumkan parameter yang digunakan untuk memperbarui korpus RAG.
Permintaan Isi
Parameter | |
---|---|
|
Opsional: Nama tampilan korpus RAG. |
|
Opsional: Deskripsi korpus RAG. |
|
Ini adalah nama yang digunakan untuk membuat indeks Pinecone yang digunakan dengan korpus RAG. Jika |
|
Ini adalah nama resource indeks Penelusuran Vektor yang digunakan dengan korpus RAG. Format: Jika |
|
Ini adalah nama resource endpoint indeks Vector Search yang digunakan dengan korpus RAG. Format: Jika |
|
Nama resource lengkap secret yang disimpan di Secret Manager, yang berisi kunci API Pinecone Anda. Format: |
Mencantumkan korpus RAG
Tabel ini mencantumkan parameter yang digunakan untuk mencantumkan korpus RAG.
Parameter | |
---|---|
|
Opsional: Ukuran halaman daftar standar. |
|
Opsional: Token halaman daftar standar. Biasanya diperoleh dari |
Mendapatkan korpus RAG
Tabel ini mencantumkan parameter yang digunakan untuk mendapatkan korpus RAG.
Parameter | |
---|---|
|
Nama resource |
Menghapus korpus RAG
Tabel ini mencantumkan parameter yang digunakan untuk menghapus korpus RAG.
Parameter | |
---|---|
|
Nama resource |
Parameter pengelolaan file
Untuk informasi tentang file RAG, lihat Pengelolaan file.
Mengupload file RAG
Tabel ini mencantumkan parameter yang digunakan untuk mengupload file RAG.
Permintaan Isi
Parameter | |
---|---|
|
Nama resource |
|
Wajib: File yang akan diupload. |
|
Wajib: Konfigurasi untuk |
RagFile |
|
---|---|
|
Wajib: Nama tampilan file RAG. |
|
Opsional: Deskripsi file RAG. |
UploadRagFileConfig |
|
---|---|
|
Jumlah token yang dimiliki setiap bagian. |
|
Tumpang-tindih antar-potongan. |
Mengimpor file RAG
Tabel ini mencantumkan parameter yang digunakan untuk mengimpor file RAG.
Parameter | |
---|---|
|
Wajib: Nama resource Format: |
|
Lokasi Cloud Storage. Mendukung pengimporan setiap file serta seluruh direktori Cloud Storage. |
|
Cloud Storage URI yang berisi file upload. |
|
Lokasi Google Drive. Mendukung pengimporan file individual serta folder Google Drive. |
|
Channel Slack tempat file diupload. |
|
Kueri Jira tempat file diupload. |
|
Sumber SharePoint tempat file diupload. |
|
Jumlah token yang dimiliki setiap bagian. |
|
Tumpang-tindih antar-potongan. |
|
Opsional: Jumlah maksimum kueri per menit yang diizinkan untuk dilakukan tugas ini ke model penyematan yang ditentukan di korpus. Nilai ini khusus untuk tugas ini dan tidak dibagikan di seluruh tugas impor lainnya. Lihat halaman Kuota di project untuk menetapkan nilai yang sesuai. Jika tidak ditentukan, nilai default 1.000 QPM akan digunakan. |
GoogleDriveSource |
|
---|---|
|
Wajib: ID resource Google Drive. |
|
Wajib: Jenis resource Google Drive. |
SlackSource |
|
---|---|
|
Berulang: Informasi saluran Slack, termasuk ID dan rentang waktu yang akan diimpor. |
|
Wajib: ID channel Slack. |
|
Opsional: Stempel waktu awal untuk pesan yang akan diimpor. |
|
Opsional: Stempel waktu akhir untuk pesan yang akan diimpor. |
|
Wajib: Nama resource lengkap secret yang disimpan di Secret Manager,
yang berisi token akses saluran Slack yang memiliki akses ke ID saluran Slack.
Format: |
JiraSource |
|
---|---|
|
Berulang: Daftar project Jira yang akan diimpor secara keseluruhan. |
|
Berulang: Daftar kueri Jira kustom yang akan diimpor. Untuk informasi tentang JQL (Jira Query Language), lihat
|
|
Wajib: Alamat email Jira. |
|
Wajib: URI server Jira. |
|
Wajib: Nama resource lengkap secret yang disimpan di Secret Manager, yang berisi kunci API Jira yang memiliki akses ke ID saluran Slack.
Format: |
SharePointSources |
|
---|---|
|
Jalur folder SharePoint tempat file akan didownload. |
|
ID folder SharePoint tempat file akan didownload. |
|
Nama drive tempat mendownload. |
|
ID drive tempat file akan didownload. |
|
ID Aplikasi untuk aplikasi yang terdaftar di Portal Microsoft Azure.
|
|
Wajib: Nama resource lengkap secret yang disimpan di Secret Manager, yang berisi secret aplikasi untuk aplikasi yang terdaftar di Azure. Format: |
|
ID unik Instance Azure Active Directory. |
|
Nama situs SharePoint tempat file akan didownload. Ini dapat berupa nama situs atau ID situs. |
Mendapatkan file RAG
Tabel ini mencantumkan parameter yang digunakan untuk mendapatkan file RAG.
Parameter | |
---|---|
|
Nama resource |
Menghapus file RAG
Tabel ini mencantumkan parameter yang digunakan untuk menghapus file RAG.
Parameter | |
---|---|
|
Nama resource |
Pengambilan dan prediksi
Bagian ini mencantumkan parameter pengambilan dan prediksi.
Parameter pengambilan
Tabel ini mencantumkan parameter untuk RetrieveContexts
API.
Parameter | |
---|---|
|
Wajib: Nama resource Lokasi untuk mengambil Format: |
|
Sumber data untuk Vertex RagStore. |
|
Wajib: Kueri pengambilan RAG tunggal. |
VertexRagStore
VertexRagStore |
|
---|---|
|
daftar: Representasi sumber RAG. Fungsi ini dapat digunakan untuk menentukan korpus saja atau |
|
Opsional: Nama resource Format: |
|
daftar: Daftar resource Format: |
RagQuery |
|
---|---|
|
Kueri dalam format teks untuk mendapatkan konteks yang relevan. |
|
Opsional: Konfigurasi pengambilan untuk kueri. |
RagRetrievalConfig |
|
---|---|
|
Opsional: Jumlah konteks yang akan diambil. |
|
Hanya menampilkan konteks dengan jarak vektor yang lebih kecil dari nilai minimum. |
|
Hanya menampilkan konteks dengan kesamaan vektor yang lebih besar dari nilai minimum. |
Parameter prediksi
Tabel ini mencantumkan parameter prediksi.
GenerateContentRequest |
|
---|---|
|
Tetapkan untuk menggunakan sumber data yang didukung oleh penyimpanan RAG Vertex AI. |
Lihat VertexRagStore untuk mengetahui detailnya.
Contoh pengelolaan korpus
Bagian ini memberikan contoh cara menggunakan API untuk mengelola korpus RAG Anda.
Membuat contoh korpus RAG
Contoh kode ini menunjukkan cara membuat korpus RAG.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- CORPUS_DISPLAY_NAME: Nama tampilan korpus RAG.
- CORPUS_DESCRIPTION: Deskripsi korpus RAG.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora
Isi JSON permintaan:
{
"display_name" : "CORPUS_DISPLAY_NAME",
"description": "CORPUS_DESCRIPTION",
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"
Powershell
Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content
Anda akan menerima kode status yang berhasil (2xx).
Contoh berikut menunjukkan cara membuat korpus RAG menggunakan REST API.
// CreateRagCorpus
// Input: LOCATION, PROJECT_ID, CORPUS_DISPLAY_NAME
// Output: CreateRagCorpusOperationMetadata
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
-d '{
"display_name" : "CORPUS_DISPLAY_NAME"
}'
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.
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- CORPUS_DISPLAY_NAME: Nama tampilan korpus RAG.
- CORPUS_DESCRIPTION: Deskripsi korpus RAG.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
display_name = "CORPUS_DISPLAY_NAME"
description = "CORPUS_DESCRIPTION"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
# Configure embedding model
embedding_model_config = rag.EmbeddingModelConfig(
publisher_model="publishers/google/models/text-embedding-004"
)
corpus = rag.create_corpus(
display_name=display_name,
description=description,
embedding_model_config=embedding_model_config,
)
print(corpus)
# Example response:
# RagCorpus(name='projects/1234567890/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description', embedding_model_config=...
# ...
Memperbarui contoh korpus RAG
Anda dapat memperbarui korpus RAG dengan nama tampilan, deskripsi, dan konfigurasi database vektor baru. Namun, Anda tidak dapat mengubah parameter berikut dalam korpus RAG:
- Jenis database vektor. Misalnya, Anda tidak dapat mengubah database vektor dari Weaviate ke Vertex AI Feature Store.
- Jika menggunakan opsi database terkelola, Anda tidak dapat memperbarui konfigurasi database vektor.
Contoh ini menunjukkan cara memperbarui korpus RAG.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- CORPUS_ID: ID korpus korpus RAG Anda.
- CORPUS_DISPLAY_NAME: Nama tampilan korpus RAG.
- CORPUS_DESCRIPTION: Deskripsi korpus RAG.
- INDEX_NAME: Nama resource
Indeks Penelusuran Vektor. Format:
projects/{project}/locations/{location}/indexes/{index}
. - INDEX_ENDPOINT_NAME: Nama resource endpoint indeks Penelusuran Vektor. Format:
projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}
.
Metode HTTP dan URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID
Isi JSON permintaan:
{
"display_name" : "CORPUS_DISPLAY_NAME",
"description": "CORPUS_DESCRIPTION",
"rag_vector_db_config": {
"vertex_vector_search": {
"index": "INDEX_NAME",
"index_endpoint": "INDEX_ENDPOINT_NAME",
}
}
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID"
Powershell
Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content
Anda akan menerima kode status yang berhasil (2xx).
Contoh daftar korpus RAG
Contoh kode ini menunjukkan cara mencantumkan semua korpus RAG.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- PAGE_SIZE: Ukuran halaman daftar standar. Anda dapat menyesuaikan
jumlah korpus RAG yang akan ditampilkan per halaman dengan memperbarui parameter
page_size
. - PAGE_TOKEN: Token halaman daftar standar. Diperoleh
biasanya menggunakan
ListRagCorporaResponse.next_page_token
dari panggilanVertexRagDataService.ListRagCorpora
sebelumnya.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
Powershell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
Anda akan menerima kode status yang berhasil (2xx
) dan daftar korpus
RAG berdasarkan PROJECT_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.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
LOCATION = "us-central1"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
corpora = rag.list_corpora()
print(corpora)
# Example response:
# ListRagCorporaPager<rag_corpora {
# name: "projects/[PROJECT_ID]/locations/us-central1/ragCorpora/2305843009213693952"
# display_name: "test_corpus"
# create_time {
# ...
Mendapatkan contoh korpus RAG
Contoh kode ini menunjukkan cara mendapatkan korpus 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 korpus RAG.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
Powershell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
Respons yang berhasil akan menampilkan resource RagCorpus
.
Perintah get
dan list
digunakan dalam contoh untuk menunjukkan cara
RagCorpus
menggunakan kolom rag_embedding_model_config
dalam
vector_db_config
, yang mengarah ke model penyematan yang telah Anda pilih.
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
```
```sh
// GetRagCorpus
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
// ListRagCorpora
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/
```
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.
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID resource korpus RAG.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
LOCATION = "LOCATION"
corpus_name = "projects/{PROJECT_ID}/locations/{LOCATION}/ragCorpora/{rag_corpus_id}"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location=LOCATION)
corpus = rag.get_corpus(name=corpus_name)
print(corpus)
# Example response:
# RagCorpus(name='projects/[PROJECT_ID]/locations/us-central1/ragCorpora/1234567890',
# display_name='test_corpus', description='Corpus Description',
# ...
Menghapus contoh korpus RAG
Contoh kode ini menunjukkan cara menghapus korpus 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
.
Metode HTTP dan URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Jalankan perintah berikut:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
Powershell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
Respons yang berhasil akan menampilkan DeleteOperationMetadata
.
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.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag.delete_corpus(name=corpus_name)
print(f"Corpus {corpus_name} deleted.")
# Example response:
# Successfully deleted the RagCorpus.
# Corpus projects/[PROJECT_ID]/locations/us-central1/ragCorpora/123456789012345 deleted. import rag
Contoh pengelolaan file
Bagian ini memberikan contoh cara menggunakan API untuk mengelola file RAG.
Mengupload contoh file RAG
Contoh kode ini menunjukkan cara mengupload 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 korpus korpus RAG Anda.
- LOCAL_FILE_PATH: Jalur lokal ke file yang akan diupload.
- DISPLAY_NAME: Nama tampilan file RAG.
- DESCRIPTION: Deskripsi file RAG.
Untuk mengirim permintaan, gunakan perintah berikut:
curl -X POST \
-H "X-Goog-Upload-Protocol: multipart" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-F metadata="{'rag_file': {'display_name':' DISPLAY_NAME', 'description':'DESCRIPTION'}}" \
-F file=@LOCAL_FILE_PATH \
"https://LOCATION-aiplatform.googleapis.com/upload/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"
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.
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID korpus korpus RAG Anda.
- LOCAL_FILE_PATH: Jalur lokal ke file yang akan diupload.
- DISPLAY_NAME: Nama tampilan file RAG.
- DESCRIPTION: Deskripsi file RAG.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
path = "path/to/local/file.txt"
display_name = "file_display_name"
description = "file description"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_file = rag.upload_file(
corpus_name=corpus_name,
path=path,
display_name=display_name,
description=description,
)
print(rag_file)
# RagFile(name='projects/[PROJECT_ID]/locations/us-central1/ragCorpora/1234567890/ragFiles/09876543',
# display_name='file_display_name', description='file description')
Contoh impor file RAG
File dan folder dapat diimpor dari Drive atau
Cloud Storage. Anda dapat menggunakan response.metadata
untuk melihat kegagalan
sebagian, waktu permintaan, dan waktu respons di objek response
SDK.
response.skipped_rag_files_count
mengacu pada jumlah file yang
dilewati selama impor. File akan dilewati jika kondisi berikut
terpenuhi:
- File telah diimpor.
- File belum berubah.
- Konfigurasi pengelompokan untuk file belum berubah.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID korpus korpus RAG Anda.
- FOLDER_RESOURCE_ID: ID resource folder Drive Anda.
- GCS_URIS: Daftar lokasi Cloud Storage.
Contoh:
gs://my-bucket1
. - CHUNK_SIZE: Jumlah token yang harus dimiliki setiap bagian.
- CHUNK_OVERLAP: Jumlah token yang tumpang-tindih di antara bagian.
- EMBEDDING_MODEL_QPM_RATE: Rasio QPM untuk membatasi akses RAG ke model penyematan Anda. Contoh: 1.000.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
Isi JSON permintaan:
{
"import_rag_files_config": {
"gcs_source": {
"uris": "GCS_URIS"
},
"rag_file_chunking_config": {
"chunk_size": "CHUNK_SIZE",
"chunk_overlap": "CHUNK_OVERLAP"
}
}
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
Powershell
Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
Respons yang berhasil akan menampilkan resource 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.
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID korpus korpus RAG Anda.
- GCS_URIS: Daftar lokasi Cloud Storage.
Contoh:
gs://my-bucket1
. - CHUNK_SIZE: Jumlah token yang harus dimiliki setiap bagian.
- CHUNK_OVERLAP: Jumlah token yang tumpang-tindih di antara bagian.
- EMBEDDING_MODEL_QPM_RATE: Rasio QPM untuk membatasi akses RAG ke model penyematan Anda. Contoh: 1.000.
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: LOCATION, 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://LOCATION-aiplatform.googleapis.com/v1/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": CHUNK_SIZE,
"chunk_overlap": CHUNK_OVERLAP
},
"max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
}
}'
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.
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID korpus korpus RAG Anda.
- FOLDER_RESOURCE_ID: ID resource folder Drive Anda.
- CHUNK_SIZE: Jumlah token yang harus dimiliki setiap bagian.
- CHUNK_OVERLAP: Jumlah token yang tumpang-tindih di antara bagian.
- EMBEDDING_MODEL_QPM_RATE: Rasio QPM untuk membatasi akses RAG ke model penyematan Anda. Contoh: 1.000.
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: LOCATION, 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://LOCATION-aiplatform.googleapis.com/v1/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
}
}'
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.
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID korpus korpus RAG Anda.
- FOLDER_RESOURCE_ID: ID resource folder Drive Anda.
- CHUNK_SIZE: Jumlah token yang harus dimiliki setiap bagian.
- CHUNK_OVERLAP: Jumlah token yang tumpang-tindih di antara bagian.
- EMBEDDING_MODEL_QPM_RATE: Rasio QPM untuk membatasi akses RAG ke model penyematan Anda. Contoh: 1.000.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]
# Supports Google Cloud Storage and Google Drive Links
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
response = rag.import_files(
corpus_name=corpus_name,
paths=paths,
chunk_size=512, # Optional
chunk_overlap=100, # Optional
max_embedding_requests_per_min=900, # Optional
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.
Contoh file RAG daftar
Contoh kode ini menunjukkan cara 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 parameter page_size. - PAGE_TOKEN: Token halaman daftar standar. Diperoleh menggunakan
ListRagFilesResponse.next_page_token
dari panggilanVertexRagDataService.ListRagFiles
sebelumnya.
Metode HTTP dan URL:
GET https://LOCATION-aiplatform.googleapis.com/v1/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 \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
Powershell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
Anda akan menerima kode status yang berhasil (2xx) beserta daftar
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 informasi selengkapnya, lihat dokumentasi referensi Python API.
Ganti variabel berikut yang digunakan dalam contoh kode:
- 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 parameter page_size. - PAGE_TOKEN: Token halaman daftar standar. Diperoleh menggunakan
ListRagFilesResponse.next_page_token
dari panggilanVertexRagDataService.ListRagFiles
sebelumnya.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
files = rag.list_files(corpus_name=corpus_name)
for file in files:
print(file.display_name)
print(file.name)
# Example response:
# g-drive_file.txt
# projects/1234567890/locations/us-central1/ragCorpora/111111111111/ragFiles/222222222222
# g_cloud_file.txt
# projects/1234567890/locations/us-central1/ragCorpora/111111111111/ragFiles/333333333333
Mendapatkan contoh file RAG
Contoh kode ini menunjukkan cara 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/v1/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 \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
Powershell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
Respons yang berhasil akan menampilkan resource 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.
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID resource
RagCorpus
. - RAG_FILE_ID: ID resource
RagFile
.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
file_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_file = rag.get_file(name=file_name)
print(rag_file)
# Example response:
# RagFile(name='projects/1234567890/locations/LOCATION/ragCorpora/11111111111/ragFiles/22222222222',
# display_name='file_display_name', description='file description')
Menghapus contoh file RAG
Contoh kode ini menunjukkan cara 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/v1/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 \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
Powershell
Jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | 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.
- 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}
.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
file_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag.delete_file(name=file_name)
print(f"File {file_name} deleted.")
# Example response:
# Successfully deleted the RagFile.
# File projects/1234567890/locations/us-central1/ragCorpora/1111111111/ragFiles/2222222222 deleted.
Kueri pengambilan
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:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- 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/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts
Meminta isi JSON:
{
"vertex_rag_store": {
"rag_resources": {
"rag_corpus": "RAG_CORPUS_RESOURCE"
},
"vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD
},
"query": {
"text": TEXT
"similarity_top_k": SIMILARITY_TOP_K
}
}
curl
Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"
Powershell
Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
Anda akan menerima kode status yang berhasil (2xx) dan daftar 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.
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- 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.
from vertexai import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/[PROJECT_ID]/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
response = rag.retrieval_query(
rag_resources=[
rag.RagResource(
rag_corpus=corpus_name,
# Optional: supply IDs from `rag.list_files()`.
# rag_file_ids=["rag-file-1", "rag-file-2", ...],
)
],
text="TEXT",
similarity_top_k=SIMILARITY_TOP_K, # Optional
vector_distance_threshold=VECTOR_DISTANCE_THRESHOLD, # Optional
)
print(response)
# Example response:
# contexts {
# contexts {
# source_uri: "gs://your-bucket-name/file.txt"
# text: "....
# ....
Generation
LLM menghasilkan respons yang berisi rujukan menggunakan konteks yang diambil.
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.
- USER: Nama pengguna Anda.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/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, dan jalankan perintah berikut:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1/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:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
Respons yang berhasil akan menampilkan konten yang dihasilkan dengan kutipan.
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.
- 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.
from vertexai import rag
from vertexai.generative_models import GenerativeModel, Tool
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
rag_retrieval_tool = Tool.from_retrieval(
retrieval=rag.Retrieval(
source=rag.VertexRagStore(
rag_resources=[
rag.RagResource(
rag_corpus="RAG_CORPUS_RESOURCE",
# Optional: supply IDs from `rag.list_files()`.
# rag_file_ids=["rag-file-1", "rag-file-2", ...],
)
],
similarity_top_k=SIMILARITY_TOP_K, # Optional
vector_distance_threshold=VECTOR_DISTANCE_THRESHOLD, # Optional
),
)
)
rag_model = GenerativeModel(
model_name="MODEL_ID", tools=[rag_retrieval_tool]
)
response = rag_model.generate_content("Why is the sky blue?")
print(response.text)
# Example response:
# The sky appears blue due to a phenomenon called Rayleigh scattering.
# Sunlight, which contains all colors of the rainbow, is scattered
# by the tiny particles in the Earth's atmosphere....
# ...
Langkah selanjutnya
- Untuk mempelajari lebih lanjut model pembuatan yang didukung, lihat Model AI generatif yang mendukung RAG.
- Untuk mempelajari lebih lanjut model penyematan yang didukung, lihat Model penyematan.
- Untuk mempelajari model terbuka lebih lanjut, lihat Model terbuka.
- Untuk mempelajari RAG Engine lebih lanjut, lihat Ringkasan RAG Engine.