Menggunakan parser tata letak Document AI dengan Vertex AI RAG Engine

Halaman ini memperkenalkan parser tata letak Document AI dan cara menggunakannya dengan Mesin RAG.

Document AI

Document AI adalah platform pemrosesan dan pemahaman dokumen yang mengambil data tidak terstruktur dari dokumen dan mengubah data tidak terstruktur tersebut menjadi kolom yang cocok untuk penyimpanan dalam database. Data terstruktur menghasilkan data yang dapat Anda pahami, analisis, dan gunakan.

Document AI dibangun di atas produk dalam Platform Agen Gemini Enterprise dengan AI generatif untuk membantu Anda membuat aplikasi pemrosesan dokumen berbasis cloud yang skalabel dan menyeluruh. Tidak diperlukan keahlian machine learning khusus untuk menggunakan produk ini.

Parser tata letak Document AI

Parser tata letak mengekstrak elemen konten dari dokumen, seperti teks, tabel, dan daftar. Parser tata letak kemudian membuat potongan kontekstual yang memfasilitasi pengambilan informasi dalam AI generatif dan aplikasi penemuan.

Saat digunakan untuk pengambilan dan pembuatan LLM, tata letak dokumen akan dipertimbangkan selama proses pemotongan, yang meningkatkan koherensi semantik dan mengurangi noise dalam konten. Semua teks dalam potongan berasal dari entity tata letak yang sama, seperti judul, subjudul, atau daftar.

Untuk mengetahui jenis file yang digunakan oleh deteksi tata letak, lihat Deteksi tata letak per jenis file.

Menggunakan parser tata letak di Mesin RAG Vertex AI

Untuk menggunakan parser tata letak di Mesin RAG Vertex AI, Anda harus membuat korpus. Untuk membuat korpus, lakukan hal berikut:

  1. Di Google Cloud konsol, buka halaman Mesin RAG.

    Buka Mesin RAG

  2. Pilih Buat korpus.

  3. Di kolom Region, pilih region Anda.

  4. Di kolom Nama korpus, masukkan nama korpus Anda.

  5. Di kolom Deskripsi, masukkan deskripsi.

  6. Di bagian Data, pilih tempat Anda ingin mengupload data.

  7. Luaskan bagian Opsi lanjutan.

    1. Di bagian Strategi pemotongan, ukuran default berikut direkomendasikan:

      • Ukuran pemotongan: 1024
      • Tumpang-tindih potongan: 256
    2. Di bagian Parser tata letak, pilih opsi Parser tata letak Document AI, yang memiliki akurasi tertinggi untuk dokumen dengan gambar atau diagram.

      1. Dari kolom Model, pilih model Anda.

      2. Opsional: Di kolom Permintaan parsing maksimum per menit, masukkan permintaan parsing maksimum Anda.

      3. Opsional: Di kolom Perintah parsing kustom, masukkan perintah parsing Anda.

      4. Klik Lanjutkan.

  8. Dari halaman Konfigurasi penyimpanan vektor, lakukan hal berikut:

    1. Di kolom Model embedding, pilih model embedding Anda.

    2. Di bagian Database vektor, pilih database Anda.

  9. Klik Buat korpus.

Batasan

ImportRagFiles API mendukung parser tata letak, tetapi batasan berikut berlaku:

  • Masukkan ukuran file maksimum 20 MB untuk semua jenis file.
  • Maksimum 500 halaman per file PDF.

Kuota dan harga Document AI kuota dan harga berlaku.

Mengaktifkan Document AI API

Anda harus mengaktifkan Document AI API untuk project Anda. Untuk informasi selengkapnya tentang mengaktifkan API, lihat dokumentasi Service Usage.

Mengaktifkan Document AI API

Peran yang diperlukan untuk mengaktifkan API

Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin), yang berisi izin serviceusage.services.enable. Pelajari cara memberikan peran.

Mengaktifkan API

Mengaktifkan parser tata letak

Untuk mengaktifkan Parser Tata Letak, ikuti langkah-langkah berikut:

  1. Buat Parser Tata Letak dengan mengikuti petunjuk di Membuat dan mengelola prosesor.

    Nama jenis prosesor adalah LAYOUT_PARSER_PROCESSOR.

  2. Aktifkan Parser Tata Letak dengan mengikuti petunjuk di Mengaktifkan prosesor.

Pusat informasi RAG (korpus)

Jika Anda tidak memiliki korpus RAG, buat korpus RAG. Misalnya, lihat Membuat contoh korpus RAG.

Jika Anda sudah memiliki korpus RAG, file yang ada yang diimpor tanpa parser tata letak tidak akan diimpor ulang saat Anda Mengimpor file menggunakan Parser Tata Letak. Jika ingin menggunakan parser tata letak dengan file Anda, hapus file terlebih dahulu. Misalnya, lihat Menghapus contoh file RAG.

Mengimpor file menggunakan parser tata letak

File dan folder dari berbagai sumber dapat diimpor menggunakan parser tata letak.

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.

Ganti variabel berikut yang digunakan dalam contoh kode:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region untuk memproses permintaan.
  • RAG_CORPUS_ID: ID resource korpus RAG.
  • GCS_URIS: Daftar lokasi Cloud Storage. Misalnya: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: Jalur resource ke prosesor parser tata letak yang dibuat. Misalnya: "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE: Opsional: Jumlah token yang harus dimiliki setiap potongan
from vertexai import rag
import vertexai

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 Cloud Storage and Google Drive.

# Initialize Agent Platform API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")

response = rag.import_files(
    corpus_name=corpus_name,
    paths=paths,
    transformation_config=rag.TransformationConfig(
        rag.ChunkingConfig(chunk_size=1024, chunk_overlap=256)
    ),
    import_result_sink="gs://sample-existing-folder/sample_import_result_unique.ndjson",  # Optional: This must be an existing storage bucket folder, and the filename must be unique (non-existent).
    layout_parser=rag.LayoutParserConfig(
      processor_name="projects/{PROJECT_ID}/locations/us/processors/{processor_id}/processorVersions/{processor_version_id}",
      max_parsing_requests_per_min=120,
    ),
    max_embedding_requests_per_min=900,  # Optional
)
print(f"Import response: {response}")

REST

Contoh kode menunjukkan cara mengimpor file Cloud Storage menggunakan parser tata letak. Untuk mengetahui opsi konfigurasi lainnya, termasuk mengimpor file dari sumber lain, lihat referensi ImportRagFilesConfig.

Sebelum menggunakan data permintaan apa pun, ganti variabel berikut yang digunakan dalam contoh kode:

  • PROJECT_ID: Project ID Anda.
  • LOCATION: Region untuk memproses permintaan.
  • RAG_CORPUS_ID: ID resource korpus RAG.
  • GCS_URIS: Daftar lokasi Cloud Storage. Misalnya: "gs://my-bucket1", "gs://my-bucket2".
  • LAYOUT_PARSER_PROCESSOR_NAME: Jalur resource ke prosesor parser tata letak yang dibuat. Misalnya: "projects/{project}/locations/{location}/processors/{processor_id}".
  • CHUNK_SIZE: Opsional: Jumlah token yang harus dimiliki setiap potongan
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import

Meminta isi JSON:

{
  "import_rag_files_config": {
    "gcs_source": {
      "uris": "GCS_URIS"
    },
    "rag_file_parsing_config": {
      "layout_parser": {
        "processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
      }
    },
    "rag_file_transformation_config": {
      "rag_file_chunking_config": {
        "fixed_length_chunking": {
          "chunk_size": CHUNK_SIZE
        }
      }
    },
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

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

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"

Powershell

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

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

Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content

Kueri pengambilan

Saat pengguna mengajukan pertanyaan atau memberikan perintah, komponen pengambilan di RAG akan menelusuri pusat informasinya untuk menemukan informasi yang relevan dengan kueri.

Untuk melihat contoh pengambilan file RAG dari korpus berdasarkan teks kueri, lihat Kueri pengambilan.

Prediksi

Prediksi menghasilkan respons yang berisi rujukan menggunakan konteks yang diambil. Untuk contohnya, lihat Pembuatan.

Langkah berikutnya