RAG Engine API

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

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  https://${LOCATION}-aiplatform.googleapis.com/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora\
  -d '{
  "display_name" : "...",
  "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

display_name

Wajib: string

Nama tampilan korpus RAG.

description

Opsional: string

Deskripsi korpus RAG.

vector_db_config

Opsional: Tidak dapat diubah: RagVectorDbConfig

Konfigurasi untuk DB Vektor.

vertex_ai_search_config

Opsional: Tidak dapat diubah: VertexAiSearchConfig

Konfigurasi untuk Vertex AI Search.

RagVectorDbConfig
Parameter

rag_managed_db

oneof vector_db: RagVectorDbConfig.RagManagedDb

Jika tidak ada database vektor yang ditentukan, rag_managed_db adalah database vektor default.

weaviate

oneof vector_db: RagVectorDbConfig.Weaviate

Menentukan instance Weaviate Anda.

weaviate.http_endpoint

string

Endpoint HTTP instance Weaviate.

Nilai ini tidak dapat diubah setelah ditetapkan. Anda dapat membiarkannya kosong dalam panggilan API CreateRagCorpus, dan menetapkannya dengan nilai yang tidak kosong dalam panggilan API UpdateRagCorpus lanjutan.

weaviate.collection_name

string

Koleksi Weaviate yang dipetakan oleh korpus RAG.

Nilai ini tidak dapat diubah setelah ditetapkan. Anda dapat membiarkannya kosong dalam panggilan API CreateRagCorpus, dan menetapkannya dengan nilai yang tidak kosong dalam panggilan API UpdateRagCorpus lanjutan.

pinecone

oneof vector_db: RagVectorDbConfig.Pinecone

Menentukan instance Pinecone Anda.

pinecone.index_name

string

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 CreateRagCorpus, dan menetapkannya dengan nilai yang tidak kosong dalam panggilan API UpdateRagCorpus lanjutan.

vertex_feature_store

oneof vector_db: RagVectorDbConfig.VertexFeatureStore

Menentukan instance Vertex AI Feature Store Anda.

vertex_feature_store.feature_view_resource_name

string

FeatureView Vertex AI Feature Store yang dipetakan oleh korpus RAG.

Format: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Nilai ini tidak dapat diubah setelah ditetapkan. Anda dapat membiarkannya kosong dalam panggilan API CreateRagCorpus, dan menetapkannya dengan nilai yang tidak kosong dalam panggilan API UpdateRagCorpus lanjutan.

vertex_vector_search

oneof vector_db: RagVectorDbConfig.VertexVectorSearch

Menentukan instance Vertex Vector Search Anda.

vertex_vector_search.index

string

Ini adalah nama resource indeks Penelusuran Vektor yang digunakan dengan korpus RAG.

Format: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Nilai ini tidak dapat diubah setelah ditetapkan. Anda dapat membiarkannya kosong dalam panggilan API CreateRagCorpus, dan menetapkannya dengan nilai yang tidak kosong dalam panggilan API UpdateRagCorpus lanjutan.

vertex_vector_search.index_endpoint

string

Ini adalah nama resource endpoint indeks Vector Search yang digunakan dengan korpus RAG.

Format: projects/{project}/locations/{location}/indexes/{index}

Nilai ini tidak dapat diubah setelah ditetapkan. Anda dapat membiarkannya kosong dalam panggilan API CreateRagCorpus, dan menetapkannya dengan nilai yang tidak kosong dalam panggilan API UpdateRagCorpus lanjutan.

api_auth.api_key_config.api_key_secret_version

string

Ini adalah nama resource lengkap secret yang disimpan di Secret Manager, yang berisi kunci API Weaviate atau Pinecone yang bergantung pada pilihan database vektor Anda.

Format: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

Nilai ini tidak dapat diubah setelah ditetapkan. Anda dapat membiarkannya kosong dalam panggilan API CreateRagCorpus, dan menetapkannya dengan nilai yang tidak kosong dalam panggilan API UpdateRagCorpus lanjutan.

Setelah menentukan kolom ini, Anda dapat mengimpor data ke dalam korpus RAG.

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

Opsional: Tidak dapat diubah. string

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 (https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/text-embeddings-api) sebagai model penyematan.

Memperbarui korpus RAG

Tabel ini mencantumkan parameter yang digunakan untuk memperbarui korpus RAG.

Permintaan Isi
Parameter

display_name

Opsional: string

Nama tampilan korpus RAG.

description

Opsional: string

Deskripsi korpus RAG.

rag_vector_db.weaviate.http_endpoint

string

Endpoint HTTP instance Weaviate.

Jika RagCorpus dibuat dengan konfigurasi Weaviate, dan kolom ini belum pernah ditetapkan sebelumnya, Anda dapat memperbarui endpoint HTTP instance Weaviate.

rag_vector_db.weaviate.collection_name

string

Koleksi Weaviate yang dipetakan oleh korpus RAG.

Jika RagCorpus dibuat dengan konfigurasi Weaviate, dan kolom ini belum pernah ditetapkan sebelumnya, Anda dapat memperbarui nama koleksi instance Weaviate.

rag_vector_db.pinecone.index_name

string

Ini adalah nama yang digunakan untuk membuat indeks Pinecone yang digunakan dengan korpus RAG.

Jika RagCorpus dibuat dengan konfigurasi Pinecone, dan kolom ini belum pernah ditetapkan sebelumnya, Anda dapat memperbarui nama indeks instance Pinecone.

rag_vector_db.vertex_feature_store.feature_view_resource_name

string

FeatureView Vertex AI Feature Store yang dipetakan oleh korpus RAG.

Format: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}

Jika RagCorpus dibuat dengan konfigurasi Vertex AI Feature Store, dan kolom ini belum pernah ditetapkan sebelumnya, Anda dapat memperbaruinya.

rag_vector_db.vertex_vector_search.index

string

Ini adalah nama resource indeks Penelusuran Vektor yang digunakan dengan korpus RAG.

Format: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Jika RagCorpus dibuat dengan konfigurasi Vector Search, dan kolom ini belum pernah ditetapkan sebelumnya, Anda dapat memperbaruinya.

rag_vector_db.vertex_vector_search.index_endpoint

string

Ini adalah nama resource endpoint indeks Vector Search yang digunakan dengan korpus RAG.

Format: projects/{project}/locations/{location}/indexes/{index}

Jika RagCorpus dibuat dengan konfigurasi Vector Search, dan kolom ini belum pernah ditetapkan sebelumnya, Anda dapat memperbaruinya.

rag_vector_db.api_auth.api_key_config.api_key_secret_version

string

Nama resource lengkap secret yang disimpan di Secret Manager, yang berisi kunci API Weaviate atau Pinecone, bergantung pada pilihan database vektor Anda.

Format: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

Mencantumkan korpus RAG

Tabel ini mencantumkan parameter yang digunakan untuk mencantumkan korpus RAG.

Parameter

page_size

Opsional: int

Ukuran halaman daftar standar.

page_token

Opsional: string

Token halaman daftar standar. Biasanya diperoleh dari [ListRagCorporaResponse.next_page_token][] dari panggilan [VertexRagDataService.ListRagCorpora][] sebelumnya.

Mendapatkan korpus RAG

Tabel ini mencantumkan parameter yang digunakan untuk mendapatkan korpus RAG.

Parameter

name

string

Nama resource RagCorpus. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

Menghapus korpus RAG

Tabel ini mencantumkan parameter yang digunakan untuk menghapus korpus RAG.

Parameter

name

string

Nama resource RagCorpus. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

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

parent

string

Nama resource RagCorpus. Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

rag_file

Wajib: RagFile

File yang akan diupload.

upload_rag_file_config

Wajib: UploadRagFileConfig

Konfigurasi untuk RagFile yang akan diupload ke RagCorpus.

RagFile

display_name

Wajib: string

Nama tampilan file RAG.

description

Opsional: string

Deskripsi file RAG.

UploadRagFileConfig

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

Jumlah token yang dimiliki setiap bagian.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

Tumpang-tindih antar-potongan.

Mengimpor file RAG

Tabel ini mencantumkan parameter yang digunakan untuk mengimpor file RAG.

Parameter

parent

Wajib: string

Nama resource RagCorpus.

Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus_id}

import_rag_files_config.gcs_source

oneof import_source: GcsSource

Lokasi Cloud Storage.

Mendukung pengimporan setiap file serta seluruh direktori Cloud Storage.

import_rag_files_config.gcs_source.uris

list dari string

Cloud Storage URI yang berisi file upload.

import_rag_files_config.google_drive_source

oneof import_source: GoogleDriveSource

Lokasi Google Drive.

Mendukung pengimporan file individual serta folder Google Drive.

slack_source

SlackSource

Channel Slack tempat file diupload.

jira_source

JiraSource

Kueri Jira tempat file diupload.

share_point_sources

SharePointSources

Sumber SharePoint tempat file diupload.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_size

int32

Jumlah token yang dimiliki setiap bagian.

rag_file_transformation_config.rag_file_chunking_config.fixed_length_chunking.chunk_overlap

int32

Tumpang-tindih antar-potongan.

rag_file_parsing_config

Opsional: RagFileParsingConfig

Menentukan konfigurasi penguraian untuk RagFiles.

Jika kolom ini tidak ditetapkan, RAG akan menggunakan parser default.

max_embedding_requests_per_min

Opsional: int32

Jumlah maksimum kueri per menit yang diizinkan untuk dibuat oleh 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

resource_ids.resource_id

Wajib: string

ID resource Google Drive.

resource_ids.resource_type

Wajib: string

Jenis resource Google Drive.

SlackSource

channels.channels

Berulang: SlackSource.SlackChannels.SlackChannel

Informasi saluran Slack, termasuk ID dan rentang waktu yang akan diimpor.

channels.channels.channel_id

Wajib: string

ID channel Slack.

channels.channels.start_time

Opsional: google.protobuf.Timestamp

Stempel waktu awal untuk pesan yang akan diimpor.

channels.channels.end_time

Opsional: google.protobuf.Timestamp

Stempel waktu akhir untuk pesan yang akan diimpor.

channels.api_key_config.api_key_secret_version

Wajib: string

Nama resource lengkap secret yang disimpan di Secret Manager, yang berisi token akses saluran Slack yang memiliki akses ke ID saluran Slack.
Lihat: https://api.slack.com/tutorials/tracks/getting-a-token.

Format: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

JiraSource

jira_queries.projects

Berulang: string

Daftar project Jira yang akan diimpor secara keseluruhan.

jira_queries.custom_queries

Berulang: string

Daftar kueri Jira kustom yang akan diimpor. Untuk informasi tentang JQL (Jira Query Language), lihat
Dukungan Jira

jira_queries.email

Wajib: string

Alamat email Jira.

jira_queries.server_uri

Wajib: string

URI server Jira.

jira_queries.api_key_config.api_key_secret_version

Wajib: string

Nama resource lengkap secret yang disimpan di Secret Manager, yang berisi kunci API Jira yang memiliki akses ke ID saluran Slack.
Lihat: https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/

Format: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

SharePointSources

share_point_sources.sharepoint_folder_path

oneof di folder_source: string

Jalur folder SharePoint tempat file akan didownload.

share_point_sources.sharepoint_folder_id

oneof di folder_source: string

ID folder SharePoint tempat file akan didownload.

share_point_sources.drive_name

oneof di drive_source: string

Nama drive tempat download.

share_point_sources.drive_id

oneof di drive_source: string

ID drive tempat file akan didownload.

share_point_sources.client_id

string

ID Aplikasi untuk aplikasi yang terdaftar di Portal Microsoft Azure.
Aplikasi juga harus dikonfigurasi dengan izin MS Graph "Files.ReadAll", "Sites.ReadAll", dan BrowserSiteLists.Read.All.

share_point_sources.client_secret.api_key_secret_version

Wajib: string

Nama resource lengkap secret yang disimpan di Secret Manager, yang berisi secret aplikasi untuk aplikasi yang terdaftar di Azure.

Format: projects/{PROJECT_NUMBER}/secrets/{SECRET_ID}/versions/{VERSION_ID}

share_point_sources.tenant_id

string

ID unik Instance Azure Active Directory.

share_point_sources.sharepoint_site_name

string

Nama situs SharePoint tempat file akan didownload. Ini dapat berupa nama situs atau ID situs.

RagFileParsingConfig

layout_parser

oneof parser: RagFileParsingConfig.LayoutParser

Parser Tata Letak yang akan digunakan untuk RagFile.

layout_parser.processor_name

string

Nama resource lengkap pemroses Document AI atau versi pemroses.

Format:
projects/{project_id}/locations/{location}/processors/{processor_id}
projects/{project_id}/locations/{location}/processors/{processor_id}/processorVersions/{processor_version_id}

layout_parser.max_parsing_requests_per_min

string

Jumlah maksimum permintaan yang diizinkan untuk dilakukan tugas ke pemroses Document AI per menit.

Lihat https://cloud.google.com/document-ai/quotas dan halaman Kuota untuk project Anda guna menetapkan nilai yang sesuai di sini. Jika tidak ditentukan, nilai default 120 QPM akan digunakan.

Mendapatkan file RAG

Tabel ini mencantumkan parameter yang digunakan untuk mendapatkan file RAG.

Parameter

name

string

Nama resource RagFile. Format: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Menghapus file RAG

Tabel ini mencantumkan parameter yang digunakan untuk menghapus file RAG.

Parameter

name

string

Nama resource RagFile. Format: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Pengambilan dan prediksi

Bagian ini mencantumkan parameter pengambilan dan prediksi.

Parameter pengambilan

Tabel ini mencantumkan parameter untuk RetrieveContexts API.

Parameter

parent

Wajib: string

Nama resource Lokasi untuk mengambil RagContexts.
Pengguna harus memiliki izin untuk melakukan panggilan di project.

Format: projects/{project}/locations/{location}

vertex_rag_store

VertexRagStore

Sumber data untuk Vertex RagStore.

query

Wajib: RagQuery

Kueri pengambilan RAG tunggal.

VertexRagStore
VertexRagStore

rag_resources

daftar: RagResource

Representasi sumber RAG. Fungsi ini dapat digunakan untuk menentukan korpus saja atau RagFile. Hanya mendukung satu korpus atau beberapa file dari satu korpus.

rag_corpora.rag_corpus

Opsional: string

Nama resource RagCorpora.

Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}

rag_corpora.rag_file_ids

daftar: string

Daftar resource RagFile.

Format: projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file}

RagQuery

text

string

Kueri dalam format teks untuk mendapatkan konteks yang relevan.

rag_retrieval_config

Opsional: RagRetrievalConfig

Konfigurasi pengambilan untuk kueri.

RagRetrievalConfig

top_k

Opsional: int32

Jumlah konteks yang akan diambil.

hybrid_search.alpha

Opsional: float

Nilai alfa mengontrol bobot antara hasil penelusuran vektor rapat dan jarang. Rentangnya adalah [0, 1], dengan 0 berarti hanya penelusuran vektor jarang dan 1 berarti hanya penelusuran vektor rapat. Nilai defaultnya adalah 0,5, yang menyeimbangkan penelusuran vektor jarang dan padat secara merata.

Penelusuran Hibrida hanya tersedia untuk Weaviate.

filter.vector_distance_threshold

oneof vector_db_threshold: double

Hanya menampilkan konteks dengan jarak vektor yang lebih kecil dari nilai minimum.

filter.vector_similarity_threshold

oneof vector_db_threshold: double

Hanya menampilkan konteks dengan kesamaan vektor yang lebih besar dari nilai minimum.

ranking.rank_service.model_name

Opsional: string

Nama model layanan peringkat.

Contoh: semantic-ranker-512@latest

ranking.llm_ranker.model_name

Opsional: string

Nama model yang digunakan untuk penentuan peringkat.

Contoh: gemini-1.5-pro

Parameter prediksi

Tabel ini mencantumkan parameter prediksi.

GenerateContentRequest

tools.retrieval.vertex_rag_store

VertexRagStore

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 RagCorpus.
  • CORPUS_DESCRIPTION: Deskripsi RagCorpus.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/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/v1beta1/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/v1beta1/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.

    LOCATION=YOUR_LOCATION //e.g., us-central1
    ENDPOINT=${LOCATION}-aiplatform.googleapis.com
    PROJECT_ID=YOUR_PROJECT_ID
    // Corpus display name
    // Such as "my_test_corpus"
    CORPUS_DISPLAY_NAME=YOUR_CORPUS_DISPLAY_NAME

    // CreateRagCorpus
    // Input: ENDPOINT, PROJECT_ID, CORPUS_DISPLAY_NAME
    // Output: CreateRagCorpusOperationMetadata
    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 \
    -d '{
          "display_name" : '\""${CORPUS_DISPLAY_NAME}"\"'
      }'

    // Poll the operation status.
    // The last component of the RagCorpus "name" field is the server-generated
    // rag_corpus_id: (only Bold part)
    // projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/7454583283205013504.
    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.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# display_name = "test_corpus"
# description = "Corpus Description"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

# 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 RagCorpus.
  • CORPUS_DESCRIPTION: Deskripsi RagCorpus.
  • INDEX_NAME: Nama resource Vector Search Index. Format: projects/{project}/locations/{location}/indexes/{index}
  • INDEX_ENDPOINT_NAME: Nama resource Vector Search Index Endpoint. Format: projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}

Metode HTTP dan URL:

PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/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/v1beta1/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/v1beta1/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 RagCorpora yang akan ditampilkan per halaman dengan memperbarui parameter page_size.
  • PAGE_TOKEN: Token halaman daftar standar. Biasanya diperoleh menggunakan ListRagCorporaResponse.next_page_token dari panggilan VertexRagDataService.ListRagCorpora sebelumnya.

Metode HTTP dan URL:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/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/v1beta1/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/v1beta1/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 RagCorpora di bagian PROJECT_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.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

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

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:

GET https://LOCATION-aiplatform.googleapis.com/v1beta1/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/v1beta1/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/v1beta1/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.

// Server-generated rag_corpus_id in CreateRagCorpus
RAG_CORPUS_ID=RAG_CORPUS_ID

// GetRagCorpus
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://${ENDPOINT}/v1beta1/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://${ENDPOINT}/v1beta1/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 mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

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

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/v1beta1/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/v1beta1/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/v1beta1/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 mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

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.

Contoh pengelolaan file

Bagian ini memberikan contoh cara menggunakan API untuk mengelola file RAG.

Mengupload contoh file RAG

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  PROJECT_ID: Your project ID.
  LOCATION: The region to process the request.
  RAG_CORPUS_ID: The corpus ID of your RAG corpus.
  LOCAL_FILE_PATH: The local path to the file to be uploaded.
  DISPLAY_NAME: The display name of the RAG file.
  DESCRIPTION: The description of the RAG file.

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/v1beta1/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 mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/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="us-central1")

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:

  1. File telah diimpor.
  2. File belum berubah.
  3. 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 resource RagCorpus.
  • GCS_URIS: Daftar lokasi Cloud Storage. Contoh: gs://my-bucket1, gs://my-bucket2.
  • 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/v1beta1/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/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:

$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/v1beta1/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.

// Cloud Storage bucket/file location.
// Such as "gs://rag-e2e-test/"
GCS_URIS=YOUR_GCS_LOCATION

// Enter the QPM rate to limit RAGs 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 RAGs 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.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/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="us-central1")

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. Biasanya diperoleh menggunakan ListRagFilesResponse.next_page_token dari panggilan VertexRagDataService.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 \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"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:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

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
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 mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

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/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 \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/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/v1beta1/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 mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# file_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}/ragFiles/{rag_file_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_file = rag.get_file(name=file_name)
print(rag_file)
# Example response:
# RagFile(name='projects/1234567890/locations/us-central1/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/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 \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/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/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
Respons yang berhasil akan menampilkan resource 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.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# file_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}/ragFiles/{rag_file_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

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:

  • 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": VECTOR_DISTANCE_THRESHOLD
  },
  "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, 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/v1beta1/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/v1beta1/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 mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.


from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/[PROJECT_ID]/locations/us-central1/ragCorpora/[rag_corpus_id]"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

response = rag.retrieval_query(
    rag_resources=[
        rag.RagResource(
            rag_corpus=corpus_name,
            # Optional: supply IDs from `rag.list_files()`.
            # rag_file_ids=["rag-file-1", "rag-file-2", ...],
        )
    ],
    text="Hello World!",
    similarity_top_k=10,  # Optional
    vector_distance_threshold=0.5,  # 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.

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, 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/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:

$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/v1beta1/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 mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.


from vertexai.preview import rag
from vertexai.preview.generative_models import GenerativeModel, Tool
import vertexai

# TODO(developer): Update and un-comment below lines
# PROJECT_ID = "your-project-id"
# corpus_name = "projects/{PROJECT_ID}/locations/us-central1/ragCorpora/{rag_corpus_id}"

# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="us-central1")

rag_retrieval_tool = Tool.from_retrieval(
    retrieval=rag.Retrieval(
        source=rag.VertexRagStore(
            rag_resources=[
                rag.RagResource(
                    rag_corpus=corpus_name,
                    # Optional: supply IDs from `rag.list_files()`.
                    # rag_file_ids=["rag-file-1", "rag-file-2", ...],
                )
            ],
            similarity_top_k=3,  # Optional
            vector_distance_threshold=0.5,  # Optional
        ),
    )
)

rag_model = GenerativeModel(
    model_name="gemini-1.5-flash-001", tools=[rag_retrieval_tool]
)
response = rag_model.generate_content("Why is the sky blue?")
print(response.text)
# 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