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": "...",
  "rag_embedding_model_config": {
    "vertex_prediction_endpoint": {
      "endpoint": "..."
    }
  }
}'

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.

Parameter

display_name

Opsional: string

Nama tampilan korpus RAG.

description

Opsional: string

Deskripsi korpus RAG.

rag_embedding_model_config.vertex_prediction_endpoint.endpoint

Opsional: string

Model penyematan yang akan digunakan untuk korpus RAG.

rag_vector_db_config.weaviate.http_endpoint

Opsional: string

Endpoint HTTPS atau HTTP instance Weaviate.

rag_vector_db_config.weaviate.collection_name

Opsional: string

Kumpulan Weaviate yang dipetakan oleh korpus RAG.

rag_vector_db_config.vertex_feature_store.feature_view_resource_name

Opsional: string

FeatureView Vertex AI Feature Store yang dipetakan oleh korpus RAG.

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

api_auth.api_key_config.api_key_secret_version

Opsional: string

Nama resource versi secret Secret Manager yang menyimpan kunci API.

Format: projects/{project}/secrets/{secret}/versions/{version}

rag_vector_db_config.pinecone

string

Kolom ini membantu Anda menetapkan pilihan database vektor yang ingin dikaitkan dengan korpus RAG, dan harus ditetapkan selama panggilan API CreateRagCorpus. Jika tidak ditetapkan, pilihan database vektor default `RagManagedDb` akan ditetapkan ke korpus RAG Anda.

rag_vector_db_config.pinecone.index_name

string

Ini adalah nama yang digunakan untuk membuat indeks Pinecone yang digunakan dengan korpus RAG. Anda dapat menetapkan nama selama panggilan CreateRagCorpus, atau Anda dapat menentukan nama saat memanggil UpdateRagCorpus API.

rag_vector_db_config.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 Pinecone Anda. Anda dapat menetapkan nama selama panggilan CreateRagCorpus, atau Anda dapat menentukan nama saat memanggil UpdateRagCorpus API. Anda tidak dapat mengimpor data ke korpus RAG hingga menentukan kolom ini.

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

rag_vector_db_config.vertex_vector_search

string

Kolom ini membantu Anda menetapkan pilihan database vektor yang ingin dikaitkan dengan korpus RAG, dan harus ditetapkan selama panggilan API CreateRagCorpus. Jika tidak ditetapkan, pilihan database vektor default RagManagedDb akan ditetapkan ke korpus RAG Anda.

rag_vector_db_config.vertex_vector_search.index

string

Ini adalah nama resource Penelusuran Vektor yang digunakan dengan korpus RAG. Anda dapat menetapkan nama selama panggilan CreateRagCorpus, atau Anda dapat menentukan nama saat memanggil UpdateRagCorpus API.

rag_vector_db_config.vertex_vector_search.index_endpoint

string

Ini adalah nama resource endpoint indeks Penelusuran Vektor yang digunakan dengan korpus RAG. Anda dapat menetapkan nama selama panggilan CreateRagCorpus, atau Anda dapat menentukan nama saat memanggil UpdateRagCorpus API.

Memperbarui korpus RAG

Tabel ini mencantumkan parameter yang digunakan untuk memperbarui korpus RAG.

Nama Deskripsi
display_name Opsional: string
Nama tampilan korpus RAG.
description Opsional: string
Tampilan korpus RAG.
rag_vector_db_config.weaviate.http_endpoint Opsional: string
Endpoint HTTPS atau HTTP instance Weaviate.
rag_vector_db_config.weaviate.collection_name Opsional: string
Koleksi Weaviate yang dipetakan oleh korpus RAG.
rag_vector_db_config.vertex_feature_store.feature_view_resource_name Opsional: string
Tampilan fitur Vertex AI Feature Store yang dipetakan oleh korpus RAG.
Format:
projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}
api_auth.api_key_config.api_key_secret_version Opsional: string
Nama resource versi secret Secret Manager yang menyimpan kunci API.
Format:
projects/{project}/secrets/{secret}/versions/{version}

rag_vector_db_config.pinecone

string

Kolom ini membantu Anda menetapkan pilihan database vektor yang ingin dikaitkan dengan korpus RAG, dan harus ditetapkan selama panggilan API CreateRagCorpus. Jika tidak ditetapkan, pilihan database vektor default RagManagedDb akan ditetapkan ke korpus RAG Anda.

rag_vector_db_config.pinecone.index_name

string

Ini adalah nama yang digunakan untuk membuat indeks Pinecone yang digunakan dengan korpus RAG. Anda dapat menetapkan nama selama panggilan CreateRagCorpus, atau Anda dapat menentukan nama saat memanggil UpdateRagCorpus API.

rag_vector_db_config.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 Pinecone Anda. Anda dapat menetapkan nama selama panggilan CreateRagCorpus, atau Anda dapat menentukan nama saat memanggil UpdateRagCorpus API. Anda tidak dapat mengimpor data ke korpus RAG hingga menentukan kolom ini.

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

rag_vector_db_config.vertex_vector_search

string

Kolom ini membantu Anda menetapkan pilihan database vektor yang ingin dikaitkan dengan korpus RAG, dan harus ditetapkan selama panggilan API CreateRagCorpus. Jika tidak ditetapkan, pilihan database vektor default RagManagedDb akan ditetapkan ke korpus RAG Anda.

rag_vector_db_config.vertex_vector_search.index

string

Ini adalah nama resource Penelusuran Vektor yang digunakan dengan korpus RAG. Anda dapat menetapkan nama selama panggilan CreateRagCorpus, atau Anda dapat menentukan nama saat memanggil UpdateRagCorpus API.

rag_vector_db_config.vertex_vector_search.index_endpoint

string

Ini adalah nama resource endpoint indeks Penelusuran Vektor yang digunakan dengan korpus RAG. Anda dapat menetapkan nama selama panggilan CreateRagCorpus, atau Anda dapat menentukan nama saat memanggil UpdateRagCorpus API.

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

rag_corpus_id

string

ID 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

rag_corpus_id

string

ID 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.

Parameter

rag_corpus_id

string

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

display_name

Opsional: string

Nama tampilan RagCorpus.

description

Opsional: string

Deskripsi RagCorpus.

Mengimpor file RAG

Tabel ini mencantumkan parameter yang digunakan untuk mengimpor file RAG.

Parameter

rag_corpus_id

string

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

gcs_source.uris

list

Cloud Storage URI yang berisi file upload.

google_drive_source.resource_id

Opsional: string

Jenis resource Google Drive.

google_drive_source.resource_ids.resource_type

Opsional: string

ID resource Google Drive.

rag_file_chunking_config.chunk_size

Opsional: int

Jumlah token yang harus dimiliki setiap bagian.

rag_file_chunking_config.chunk_overlap

Opsional: int

Jumlah token yang tumpang-tindih antara dua bagian.

max_embedding_requests_per_min

Opsional: int

Angka yang mewakili batas untuk membatasi kecepatan RAG Engine memanggil model penyematan selama proses pengindeksan. Batas default adalah 1000. Untuk mengetahui informasi selengkapnya tentang batas kapasitas, lihat Kuota RAG Engine.

rag_corpus_id

string

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

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 file RAG

Tabel ini mencantumkan parameter yang digunakan untuk mendapatkan file RAG.

Parameter

rag_file_id

string

ID resource RagCorpus. Format: projects/{project}/locations/{location}/ragCorpora/{rag_file_id}

Menghapus file RAG

Tabel ini mencantumkan parameter yang digunakan untuk menghapus file RAG.

Parameter

rag_file_id

string

ID resource RagCorpus. 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 pengambilan.

Parameter Deskripsi
similarity_top_k Mengontrol jumlah maksimum konteks yang diambil.
vector_distance_threshold Hanya konteks dengan jarak yang lebih kecil dari nilai minimum yang dipertimbangkan.

Parameter prediksi

Tabel ini mencantumkan parameter prediksi.

Parameter

model_id

string

Model LLM untuk pembuatan konten.

rag_corpora

string

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

text

string (list)

Teks ke LLM untuk pembuatan konten. Nilai maksimum: daftar 1.

vector_distance_threshold

Opsional: double

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

similarity_top_k

Opsional: int

Jumlah konteks teratas yang akan diambil.

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.
  • RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT: Model penyematan 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",
  "rag_embedding_model_config_endpoint": "RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT"
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, lalu jalankan perintah berikut:

curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content
Anda akan menerima kode status yang berhasil (2xx).

Contoh berikut menunjukkan cara membuat korpus RAG menggunakan REST API.

    // Either your first party publisher model or fine-tuned endpoint
    // Example: projects/${PROJECT_ID}/locations/${LOCATION}/publishers/google/models/textembedding-gecko@003
    // or
    // Example: projects/${PROJECT_ID}/locations/${LOCATION}/endpoints/12345
    ENDPOINT_NAME=${RAG_EMBEDDING_MODEL_CONFIG_ENDPOINT}

    // 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}"\"',
          "rag_embedding_model_config" : {
                  "vertex_prediction_endpoint": {
                        "endpoint": '\""${ENDPOINT_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.

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK, lihat Menginstal Vertex AI SDK. Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Python API.

from vertexai.preview import rag
import vertexai

# TODO(developer): Update and un-comment on the following lines:
# PROJECT_ID = "YOUR_PROJECT_ID"
# corpus_name = "YOUR_CORPUS_NAME"
#  e.g. "projects/1234567890/locations/us-central1/ragCorpora/1234567890'"
# display_name = "test_corpus"
# description = "Corpus Description"

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

corpus = rag.update_corpus(
    corpus_name=corpus_name,
    display_name=display_name,
    description=description,
)
print(corpus)

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
CORPUS_ID: The corpus ID of your RAG corpus.
CORPUS_DISPLAY_NAME: The display name of the RAG corpus.
CORPUS_DESCRIPTION: The description of the RAG corpus.

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}
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

  curl -X PATH \
      -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 }

Save the request body in a file named request.json, and execute the following command:

```sh
  $headers = @{  }

  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
  ```

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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

PowerShell

Jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

PowerShell

Jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | 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, 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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"

PowerShell

Jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | 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: Project ID Anda.
  • LOCATION: Region untuk memproses permintaan.
  • RAG_CORPUS_ID: ID resource RagCorpus.
  • INPUT_FILE: Jalur file lokal.
  • FILE_DISPLAY_NAME: Nama tampilan RagFile.
  • RAG_FILE_DESCRIPTION: Deskripsi RagFile.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload

Isi JSON permintaan:

{
 "rag_file": {
  "display_name": "FILE_DISPLAY_NAME",
  "description": "RAG_FILE_DESCRIPTION"
 }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama INPUT_FILE, lalu jalankan perintah berikut:

curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @INPUT_FILE \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"

PowerShell

Simpan isi permintaan dalam file bernama INPUT_FILE, dan jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile INPUT_FILE `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload" | Select-Object -Expand Content
Respons yang berhasil akan menampilkan resource RagFile. Komponen terakhir kolom RagFile.name adalah rag_file_id yang dibuat server.

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.


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.
  • DRIVE_RESOURCE_ID: ID resource Drive. Contoh:
    • https://drive.google.com/file/d/ABCDE
    • https://drive.google.com/corp/drive/u/0/folders/ABCDEFG
  • DRIVE_RESOURCE_TYPE: Jenis resource Drive. Opsi:
    • RESOURCE_TYPE_FILE - File
    • RESOURCE_TYPE_FOLDER - Folder
  • CHUNK_SIZE: Opsional: Jumlah token yang harus dimiliki setiap bagian.
  • CHUNK_OVERLAP: Opsional: Jumlah token yang tumpang-tindih di antara bagian.

Metode HTTP dan URL:

POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

Isi JSON permintaan:

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": GCS_URIS
    },
    "google_drive_source": {
      "resource_ids": {
        "resource_id": DRIVE_RESOURCE_ID,
        "resource_type": DRIVE_RESOURCE_TYPE
      },
    }
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, lalu jalankan perintah berikut:

curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/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 RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT

// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID, GCS_URIS
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": '\""${GCS_URIS}"\"'
    },
    "rag_file_chunking_config": {
      "chunk_size": 512
    },
    "max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
  }
}'

// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}

Contoh berikut menunjukkan cara mengimpor file dari Drive. Gunakan kolom kontrol max_embedding_requests_per_min untuk membatasi kecepatan RAG Engine memanggil model penyematan selama proses pengindeksan ImportRagFiles. Kolom ini memiliki nilai default 1000 panggilan per menit.

// Google Drive folder location.
FOLDER_RESOURCE_ID=YOUR_GOOGLE_DRIVE_FOLDER_RESOURCE_ID

// Enter the QPM rate to limit RAG's access to your embedding model
// Example: 1000
EMBEDDING_MODEL_QPM_RATE=MAX_EMBEDDING_REQUESTS_PER_MIN_LIMIT

// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: ENDPOINT, PROJECT_ID, RAG_CORPUS_ID, FOLDER_RESOURCE_ID
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://${ENDPOINT}/v1beta1/projects/${PROJECT_ID}/locations/${LOCATION}/ragCorpora/${RAG_CORPUS_ID}/ragFiles:import \
-d '{
  "import_rag_files_config": {
    "google_drive_source": {
      "resource_ids": {
        "resource_id": '\""${FOLDER_RESOURCE_ID}"\"',
        "resource_type": "RESOURCE_TYPE_FOLDER"
      }
    },
    "max_embedding_requests_per_min": '"${EMBEDDING_MODEL_QPM_RATE}"'
  }
}'

// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID=OPERATION_ID
poll_op_wait ${OPERATION_ID}

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.


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.

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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

Jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
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')

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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"

PowerShell

Jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
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

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 \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"

PowerShell

Jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
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": 0.8
  },
  "query": {
   "text": "TEXT",
   "similarity_top_k": SIMILARITY_TOP_K
  }
 }

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, lalu jalankan perintah berikut:

curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
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: "....
#   ....

Prediksi

Prediksi 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, lalu jalankan perintah berikut:

curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$headers = @{  }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
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