Halaman ini memperkenalkan parser tata letak Document AI dan cara menggunakannya dengan RAG Engine.
Document AI
Document AI adalah platform pemrosesan dokumen dan pemahaman dokumen yang mengambil data tidak terstruktur dari dokumen dan mengubah data tidak terstruktur tersebut menjadi kolom yang sesuai untuk disimpan dalam database. Data terstruktur menghasilkan data yang dapat Anda pahami, analisis, dan gunakan.
Document AI dibuat berdasarkan produk dalam Vertex AI dengan AI generatif untuk membantu Anda membuat aplikasi pemrosesan dokumen skala besar dan menyeluruh berbasis cloud. Anda tidak memerlukan 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. Kemudian, parser tata letak akan 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 pengelompokan, yang meningkatkan koherensi semantik dan mengurangi derau dalam konten. Semua teks dalam bagian berasal dari entitas tata letak yang sama, seperti judul, subjudul, atau daftar.
Untuk jenis file yang digunakan oleh deteksi tata letak, lihat Deteksi tata letak per jenis file.
Menggunakan parser tata letak di Vertex AI RAG
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 berlaku.
Mengaktifkan Document AI API
Kode contoh berikut menunjukkan cara mengaktifkan penguraian lanjutan menggunakan REST dalam perintah curl dan menggunakan Vertex AI SDK untuk Python.
REST
Contoh kode ini menunjukkan cara mengimpor file Cloud Storage menggunakan parser tata letak. Untuk opsi konfigurasi lainnya, seperti mengimpor file
dari sumber lain, lihat ImportRagFilesConfig
.
Ganti variabel yang digunakan dalam contoh kode:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan Anda.
- 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
pemroses parser tata letak yang dibuat. Misalnya:
"projects/{project}/locations/{location}/processors/{processor_id}"
. - CHUNK_SIZE: Opsional: Jumlah token yang harus dimiliki setiap bagian.
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
Meminta isi JSON:
{
"import_rag_files_config": {
"gcs_source": {
"uris": GCS_URIS
},
"file_parsing_config": {
"layout_parser": {
"processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
}
},
"rag_file_chunking_config": {
"chunk_size": CHUNK_SIZE
},
}
}
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut.
Simpan isi permintaan dalam file bernama request.json, dan 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"
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 yang digunakan dalam contoh kode:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan Anda.
- 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
pemroses parser tata letak yang dibuat. Misalnya:
"projects/{project}/locations/{location}/processors/{processor_id}"
. - CHUNK_SIZE: Opsional: Jumlah token yang harus dimiliki setiap bagian.
from vertexai.preview import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/<var>PROJECT_ID</var>/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# paths = ["https://drive.google.com/file/123", "GCS_URIS"]
# Supports Cloud Storage and Google Drive Links
layout_parser_processor_name = "projects/PROJECT_ID/locations/<var>LOCATION</var>/processors/LAYOUT_PARSER_PROCESSOR_NAME"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
response = rag.import_files(
corpus_name=RAG_CORPUS_ID,
paths=paths,
chunk_size=512, # Optional
chunk_overlap=100, # Optional
max_embedding_requests_per_min=900, # Optional
layout_parser=rag.LayoutParserConfig(
processor_name=layout_parser_processor_name,
max_parsing_requests_per_min=120, # Optional
)
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.
Mengaktifkan parser tata letak
Contoh kode menunjukkan cara mengaktifkan parser tata letak.
Pusat informasi (korpus) RAG Anda
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 Layout Parser. Jika Anda ingin menggunakan parser tata letak dengan file, hapus file terlebih dahulu. Misalnya, lihat Contoh penghapusan file RAG.
Mengimpor file menggunakan Layout Parser
File dan folder dari berbagai sumber dapat diimpor menggunakan parser tata letak.
REST
Contoh kode menunjukkan cara mengimpor file Cloud Storage menggunakan parser
tata letak. Untuk 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
pemroses parser tata letak yang dibuat. Misalnya:
"projects/{project}/locations/{location}/processors/{processor_id}"
. - CHUNK_SIZE: Opsional: Jumlah token yang harus dimiliki setiap bagian.
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
Meminta isi JSON:
{
"import_rag_files_config": {
"gcs_source": {
"uris": "GCS_URIS"
},
"file_parsing_config": {
"layout_parser": {
"processor_name": "LAYOUT_PARSER_PROCESSOR_NAME"
}
},
"rag_file_chunking_config": {
"chunk_size": CHUNK_SIZE
},
}
}
Untuk mengirim permintaan Anda, pilih salah satu opsi coding berikut:
Simpan isi permintaan dalam file bernama request.json, dan 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"
Python
Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk informasi selengkapnya, lihat dokumentasi referensi Python API.
Ganti variabel berikut yang digunakan dalam contoh kode:
- PROJECT_ID: Project ID Anda.
- LOCATION: Region untuk memproses permintaan.
- RAG_CORPUS_ID: ID resource korpus RAG.
- GCS_URIS: Daftar lokasi Cloud Storage. Misalnya:
"gs://my-bucket1"
,"gs://my-bucket2"
. - LAYOUT_PARSER_PROCESSOR_NAME: Jalur resource ke
pemroses parser tata letak yang dibuat. Misalnya:
"projects/{project}/locations/{location}/processors/{processor_id}"
. - CHUNK_SIZE: Opsional: Jumlah token yang harus dimiliki setiap bagian.
from vertexai.preview import rag
import vertexai
PROJECT_ID = "PROJECT_ID"
corpus_name = "projects/{PROJECT_ID}/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
# paths = ["https://drive.google.com/file/123", "gs://my_bucket/my_files_dir"]
# Supports Cloud Storage and Google Drive links
layout_parser_processor_name = "LAYOUT_PARSER_PROCESSOR_NAME"
# Initialize Vertex AI API once per session
vertexai.init(project=PROJECT_ID, location="LOCATION")
response = rag.import_files(
corpus_name=corpus_name,
paths=paths,
chunk_size=512, # Optional
chunk_overlap=100, # Optional
max_embedding_requests_per_min=900, # Optional
layout_parser=rag.LayoutParserConfig(
processor_name=layout_parser_processor_name,
max_parsing_requests_per_min=120, # Optional
)
)
print(f"Imported {response.imported_rag_files_count} files.")
# Example response:
# Imported 2 files.
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 contoh pengambilan file RAG dari korpus berdasarkan teks kueri, lihat Kueri pengambilan.
Prediksi
Prediksi menghasilkan respons yang berisi rujukan menggunakan konteks yang diambil. Sebagai contoh, lihat Pembuatan.
Langkah selanjutnya
- Untuk mempelajari RAG Engine lebih lanjut, lihat Ringkasan RAG Engine.
- Untuk mempelajari RAG API lebih lanjut, lihat RAG Engine API.
- Untuk mempelajari Document AI lebih lanjut, lihat Ringkasan Document AI.
- Untuk mempelajari Layout Parser lebih lanjut, lihat Memproses dokumen dengan Layout Parser.