Memperbarui data terstruktur dan tidak terstruktur

Halaman ini menjelaskan cara memperbarui data terstruktur dan tidak terstruktur.

Untuk memuat ulang aplikasi situs, lihat Memuat ulang halaman web.

Memperbarui data terstruktur

Anda dapat memuat ulang data di penyimpanan data terstruktur selama Anda menggunakan skema yang sama atau kompatibel dengan skema di penyimpanan data. Misalnya, hanya menambahkan kolom baru ke skema yang ada akan kompatibel dengan versi sebelumnya.

Anda dapat memuat ulang data terstruktur di konsol Google Cloud atau menggunakan API.

Konsol

Untuk menggunakan konsol Google Cloud guna memuat ulang data terstruktur dari cabang penyimpanan data, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Agent Builder.

    Agent Builder

  2. Di menu navigasi, klik Penyimpanan Data.

  3. Di kolom Nama, klik penyimpanan data yang ingin Anda edit.

  4. Di tab Dokumen, klik Impor data.

  5. Untuk memuat ulang dari Cloud Storage:

    1. Di panel Select a data source, pilih Cloud Storage.
    2. Di panel Impor data dari Cloud Storage, klik Browse, pilih bucket yang berisi data yang diperbarui, lalu klik Select. Atau, masukkan lokasi bucket secara langsung di kolom gs://.
    3. Di bagian Opsi Impor Data, pilih opsi impor.
    4. Klik Import.
  6. Untuk memuat ulang dari BigQuery:

    1. Di panel Select a data source, pilih BigQuery.
    2. Di panel Import data from BigQuery, klik Browse, pilih tabel yang berisi data yang diperbarui, lalu klik Select. Atau, masukkan lokasi tabel langsung di kolom Jalur BigQuery.
    3. Di bagian Opsi Impor Data, pilih opsi impor.
    4. Klik Import.

REST

Gunakan metode documents.import untuk memuat ulang data, dengan menentukan nilai reconciliationMode yang sesuai.

Untuk memuat ulang data terstruktur dari BigQuery atau Cloud Storage menggunakan command line, ikuti langkah-langkah berikut:

  1. Temukan ID penyimpanan data Anda. Jika Anda sudah memiliki ID penyimpanan data, lanjutkan ke langkah berikutnya.

    1. Di konsol Google Cloud, buka halaman Agent Builder dan di menu navigasi, klik Data Stores.

      Buka halaman Data Store

    2. Klik nama penyimpanan data Anda.

    3. Di halaman Data untuk penyimpanan data Anda, dapatkan ID penyimpanan data.

  2. Untuk mengimpor data terstruktur dari BigQuery, panggil metode berikut. Anda dapat mengimpor dari BigQuery atau Cloud Storage. Untuk mengimpor dari Cloud Storage, lanjutkan ke langkah berikutnya.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
      "bigquerySource": {
        "projectId": "PROJECT_ID",
        "datasetId":"DATASET_ID",
        "tableId": "TABLE_ID",
        "dataSchema": "DATA_SCHEMA_BQ",
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "autoGenerateIds": AUTO_GENERATE_IDS,
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    
    • PROJECT_ID: ID project Google Cloud Anda.
    • DATA_STORE_ID: ID penyimpanan data Vertex AI Search.
    • DATASET_ID: nama set data BigQuery Anda.
    • TABLE_ID: nama tabel BigQuery Anda.
    • DATA_SCHEMA_BQ: kolom opsional untuk menentukan skema yang akan digunakan saat mengurai data dari sumber BigQuery. Dapat memiliki nilai berikut:
      • document: nilai default. Tabel BigQuery yang Anda gunakan harus sesuai dengan skema BigQuery default berikut. Anda dapat menentukan ID setiap dokumen sendiri, sekaligus menggabungkan seluruh data dalam string json_data.
      • custom: semua skema tabel BigQuery diterima, dan Vertex AI Agent Builder secara otomatis membuat ID untuk setiap dokumen yang diimpor.
    • ERROR_DIRECTORY: kolom opsional untuk menentukan direktori Cloud Storage untuk informasi error tentang impor—misalnya, gs://<your-gcs-bucket>/directory/import_errors. Google merekomendasikan untuk membiarkan kolom ini kosong agar Vertex AI Agent Builder otomatis membuat direktori sementara.
    • RECONCILIATION_MODE: kolom opsional untuk menentukan cara dokumen yang diimpor direkonsiliasi dengan dokumen yang ada di penyimpanan data tujuan. Dapat memiliki nilai berikut:
      • INCREMENTAL: nilai default. Menyebabkan pembaruan data inkremental dari BigQuery ke penyimpanan data Anda. Tindakan ini akan melakukan operasi upsert, yang menambahkan dokumen baru dan mengganti dokumen yang ada dengan dokumen yang diperbarui dengan ID yang sama.
      • FULL: menyebabkan rebase penuh dokumen di penyimpanan data Anda. Oleh karena itu, dokumen baru dan yang diperbarui akan ditambahkan ke penyimpanan data Anda, dan dokumen yang tidak ada di BigQuery akan dihapus dari penyimpanan data Anda. Mode FULL berguna jika Anda ingin menghapus dokumen yang tidak lagi diperlukan secara otomatis.
    • AUTO_GENERATE_IDS: kolom opsional untuk menentukan apakah akan membuat ID dokumen secara otomatis. Jika ditetapkan ke true, ID dokumen akan dibuat berdasarkan hash payload. Perhatikan bahwa ID dokumen yang dihasilkan mungkin tidak tetap konsisten di beberapa impor. Jika Anda membuat ID secara otomatis melalui beberapa impor, Google sangat merekomendasikan untuk menetapkan reconciliationMode ke FULL guna mempertahankan ID dokumen yang konsisten.

      Tentukan autoGenerateIds hanya jika bigquerySource.dataSchema ditetapkan ke custom. Jika tidak, error INVALID_ARGUMENT akan ditampilkan. Jika tidak menentukan autoGenerateIds atau menetapkannya ke false, Anda harus menentukan idField. Jika tidak, dokumen akan gagal diimpor.

    • ID_FIELD: kolom opsional untuk menentukan kolom mana yang merupakan ID dokumen. Untuk file sumber BigQuery, idField menunjukkan nama kolom dalam tabel BigQuery yang berisi ID dokumen.

      Tentukan idField hanya jika kedua kondisi ini terpenuhi, jika tidak, error INVALID_ARGUMENT akan ditampilkan:

      • bigquerySource.dataSchema disetel ke custom
      • auto_generate_ids ditetapkan ke false atau tidak ditentukan.

      Selain itu, nilai nama kolom BigQuery harus berupa jenis string, harus antara 1 dan 63 karakter, dan harus sesuai dengan RFC-1034. Jika tidak, dokumen tidak akan berhasil diimpor.

    Berikut adalah skema BigQuery default. Tabel BigQuery Anda harus sesuai dengan skema ini saat Anda menetapkan dataSchema ke document.

    [
     {
       "name": "id",
       "mode": "REQUIRED",
       "type": "STRING",
       "fields": []
     },
     {
       "name": "jsonData",
       "mode": "NULLABLE",
       "type": "STRING",
       "fields": []
     }
    ]
    
  3. Untuk mengimpor data terstruktur dari Cloud Storage, panggil metode berikut. Anda dapat mengimpor dari BigQuery atau Cloud Storage. Untuk mengimpor dari BigQuery, buka langkah sebelumnya.

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "https://discoveryengine.googleapis.com/v1beta/projects/PROJECT_ID/locations/global/collections/default_collection/dataStores/DATA_STORE_ID/branches/0/documents:import" \
    -d '{
      "gcsSource": {
        "inputUris": ["GCS_PATHS"],
        "dataSchema": "DATA_SCHEMA_GCS",
      },
      "reconciliationMode": "RECONCILIATION_MODE",
      "idField": "ID_FIELD",
      "errorConfig": {
        "gcsPrefix": "ERROR_DIRECTORY"
      }
    }'
    
    • PROJECT_ID: ID project Google Cloud Anda.
    • DATA_STORE_ID: ID penyimpanan data Vertex AI Search.
    • GCS_PATHS: daftar URI yang dipisahkan koma ke lokasi Cloud Storage tempat Anda ingin mengimpor. Setiap URI dapat berisi maksimal 2.000 karakter. URI dapat cocok dengan jalur lengkap untuk objek penyimpanan atau dapat cocok dengan pola untuk satu atau beberapa objek. Misalnya, gs://bucket/directory/*.json adalah jalur yang valid.
    • DATA_SCHEMA_GCS: kolom opsional untuk menentukan skema yang akan digunakan saat mengurai data dari sumber BigQuery. Dapat memiliki nilai berikut:
      • document: nilai default. Tabel BigQuery yang Anda gunakan harus sesuai dengan skema BigQuery default berikut. Anda dapat menentukan ID setiap dokumen sendiri, sekaligus menggabungkan seluruh data dalam string json_data.
      • custom: semua skema tabel BigQuery diterima, dan Vertex AI Agent Builder secara otomatis membuat ID untuk setiap dokumen yang diimpor.
    • ERROR_DIRECTORY: kolom opsional untuk menentukan direktori Cloud Storage untuk informasi error tentang impor—misalnya, gs://<your-gcs-bucket>/directory/import_errors. Google merekomendasikan untuk membiarkan kolom ini kosong agar Vertex AI Agent Builder otomatis membuat direktori sementara.
    • RECONCILIATION_MODE: kolom opsional untuk menentukan cara dokumen yang diimpor direkonsiliasi dengan dokumen yang ada di penyimpanan data tujuan. Dapat memiliki nilai berikut:
      • INCREMENTAL: nilai default. Menyebabkan pembaruan data inkremental dari BigQuery ke penyimpanan data Anda. Tindakan ini akan melakukan operasi upsert, yang menambahkan dokumen baru dan mengganti dokumen yang ada dengan dokumen yang diperbarui dengan ID yang sama.
      • FULL: menyebabkan rebase penuh dokumen di penyimpanan data Anda. Oleh karena itu, dokumen baru dan yang diperbarui akan ditambahkan ke penyimpanan data Anda, dan dokumen yang tidak ada di BigQuery akan dihapus dari penyimpanan data Anda. Mode FULL berguna jika Anda ingin menghapus dokumen yang tidak lagi diperlukan secara otomatis.

Python

Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI Agent Builder.

Untuk melakukan autentikasi ke Vertex AI Agent Builder, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.


from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "global"
# data_store_id = "YOUR_DATA_STORE_ID"
# bigquery_dataset = "YOUR_BIGQUERY_DATASET"
# bigquery_table = "YOUR_BIGQUERY_TABLE"

#  For more information, refer to:
# https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
client_options = (
    ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
    if location != "global"
    else None
)

# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)

# The full resource name of the search engine branch.
# e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}/branches/{branch}
parent = client.branch_path(
    project=project_id,
    location=location,
    data_store=data_store_id,
    branch="default_branch",
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    bigquery_source=discoveryengine.BigQuerySource(
        project_id=project_id,
        dataset_id=bigquery_dataset,
        table_id=bigquery_table,
        data_schema="custom",
    ),
    # Options: `FULL`, `INCREMENTAL`
    reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL,
)

# Make the request
operation = client.import_documents(request=request)

print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()

# After the operation is complete,
# get information from operation metadata
metadata = discoveryengine.ImportDocumentsMetadata(operation.metadata)

# Handle the response
print(response)
print(metadata)

Memperbarui data tidak terstruktur

Anda dapat memuat ulang data tidak terstruktur di konsol Google Cloud atau menggunakan API.

Konsol

Untuk menggunakan konsol Google Cloud guna memuat ulang data tidak terstruktur dari cabang penyimpanan data, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Agent Builder.

    Agent Builder

  2. Di menu navigasi, klik Penyimpanan Data.

  3. Di kolom Nama, klik penyimpanan data yang ingin Anda edit.

  4. Di tab Dokumen, klik Impor data.

  5. Untuk menyerap data dari bucket Cloud Storage (dengan atau tanpa metadata):

    1. Di panel Select a data source, pilih Cloud Storage.
    2. Di panel Impor data dari Cloud Storage, klik Browse, pilih bucket yang berisi data yang diperbarui, lalu klik Select. Atau, masukkan lokasi bucket secara langsung di kolom gs://.
    3. Di bagian Opsi Impor Data, pilih opsi impor.
    4. Klik Import.
  6. Untuk menyerap dari BigQuery:

    1. Di panel Select a data source, pilih BigQuery.
    2. Di panel Import data from BigQuery, klik Browse, pilih tabel yang berisi data yang diperbarui, lalu klik Select. Atau, masukkan lokasi tabel langsung di kolom Jalur BigQuery.
    3. Di bagian Opsi Impor Data, pilih opsi impor.
    4. Klik Import.

REST

Untuk memuat ulang data tidak terstruktur menggunakan API, impor ulang menggunakan metode documents.import, dengan menentukan nilai reconciliationMode yang sesuai. Untuk informasi selengkapnya tentang cara mengimpor data tidak terstruktur, lihat Data tidak terstruktur.

Python

Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Python Vertex AI Agent Builder.

Untuk melakukan autentikasi ke Vertex AI Agent Builder, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.

from google.api_core.client_options import ClientOptions
from google.cloud import discoveryengine

# TODO(developer): Uncomment these variables before running the sample.
# project_id = "YOUR_PROJECT_ID"
# location = "YOUR_LOCATION" # Values: "global"
# data_store_id = "YOUR_DATA_STORE_ID"

# Examples:
# - Unstructured documents
#   - `gs://bucket/directory/file.pdf`
#   - `gs://bucket/directory/*.pdf`
# - Unstructured documents with JSONL Metadata
#   - `gs://bucket/directory/file.json`
# - Unstructured documents with CSV Metadata
#   - `gs://bucket/directory/file.csv`
# gcs_uri = "YOUR_GCS_PATH"

#  For more information, refer to:
# https://cloud.google.com/generative-ai-app-builder/docs/locations#specify_a_multi-region_for_your_data_store
client_options = (
    ClientOptions(api_endpoint=f"{location}-discoveryengine.googleapis.com")
    if location != "global"
    else None
)

# Create a client
client = discoveryengine.DocumentServiceClient(client_options=client_options)

# The full resource name of the search engine branch.
# e.g. projects/{project}/locations/{location}/dataStores/{data_store_id}/branches/{branch}
parent = client.branch_path(
    project=project_id,
    location=location,
    data_store=data_store_id,
    branch="default_branch",
)

request = discoveryengine.ImportDocumentsRequest(
    parent=parent,
    gcs_source=discoveryengine.GcsSource(
        # Multiple URIs are supported
        input_uris=[gcs_uri],
        # Options:
        # - `content` - Unstructured documents (PDF, HTML, DOC, TXT, PPTX)
        # - `custom` - Unstructured documents with custom JSONL metadata
        # - `document` - Structured documents in the discoveryengine.Document format.
        # - `csv` - Unstructured documents with CSV metadata
        data_schema="content",
    ),
    # Options: `FULL`, `INCREMENTAL`
    reconciliation_mode=discoveryengine.ImportDocumentsRequest.ReconciliationMode.INCREMENTAL,
)

# Make the request
operation = client.import_documents(request=request)

print(f"Waiting for operation to complete: {operation.operation.name}")
response = operation.result()

# After the operation is complete,
# get information from operation metadata
metadata = discoveryengine.ImportDocumentsMetadata(operation.metadata)

# Handle the response
print(response)
print(metadata)