Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
fungsi
Berlaku untuk:
Databricks SQL
Databricks Runtime
Fungsi ini ai_parse_document() memanfaatkan teknik penelitian terkelola Databricks canggih untuk mengurai konten terstruktur dari dokumen yang tidak terstruktur.
Agar UI visual memvalidasi dan melakukan iterasi pada hasil , lihat ai_parse_document Dokumen.
Requirements
Model yang mendukung fungsi ini tersedia menggunakan MODEL Model Serving Foundation API. Lihat Ketentuan model yang berlaku untuk informasi tentang model mana yang tersedia di Databricks serta lisensi dan kebijakan yang mengatur penggunaan model tersebut.
Jika model muncul di masa depan yang berkinerja lebih baik sesuai dengan tolok ukur internal Databricks, Databricks dapat mengubah model dan memperbarui dokumentasi.
- Fungsi ini hanya tersedia di beberapa wilayah, lihat Ketersediaan fungsi AI.
- Fungsi
ai_parse_documentini juga tersedia untuk ruang kerja dengan add-on Keamanan dan Kepatuhan yang Ditingkatkan.
- Fungsi
- Databricks Runtime 17.3 atau lebih tinggi.
- Jika Anda menggunakan komputasi tanpa server, berikut ini juga diperlukan:
- Versi lingkungan tanpa server harus diatur ke 3 atau lebih tinggi, karena ini memungkinkan fitur seperti
VARIANT. - Harus menggunakan Python atau SQL. Untuk fitur dan batasan tanpa server tambahan, lihat Batasan komputasi tanpa server.
- Versi lingkungan tanpa server harus diatur ke 3 atau lebih tinggi, karena ini memungkinkan fitur seperti
- Fungsi
ai_parse_documentini tersedia menggunakan notebook Databricks, editor SQL, alur kerja Databricks, pekerjaan, atau Lakeflow Spark Declarative Pipelines. -
ai_parse_documentbiaya dicatat sebagai bagian produkAI_FUNCTIONS. Lihat Menampilkan biaya untukai_parse_documenteksekusi untuk contoh kueri.
Keamanan data
Data dokumen Anda diproses dalam perimeter keamanan Databricks. Databricks tidak menyimpan parameter yang diteruskan ke dalam ai_parse_document function panggilan, tetapi mempertahankan detail eksekusi metadata, seperti versi Runtime Databricks yang digunakan.
Format file input yang didukung
File data input Anda harus disimpan sebagai data blob dalam byte, yang berarti kolom jenis biner dalam tabel DataFrame atau Delta. Jika dokumen sumber disimpan dalam volume Katalog Unity, kolom jenis biner dapat dihasilkan menggunakan pembaca format Spark binaryFile .
Format file berikut didukung:
- JPG/JPEG
- PNG
- TIFF/TIF
- DOC/DOCX
- PPT/PPTX
Syntax
ai_parse_document(content)
ai_parse_document(content, Map("version" -> "2.0"))
Arguments
content adalah satu-satunya argumen yang diperlukan. Semua opsi yang map diteruskan dalam argumen (version, , imageOutputPathdescriptionElementTypes, dan pageRange) bersifat opsional.
-
content: Sebuah pernyataanBINARYyang mewakili data array byte input. -
version: Versi skema output, didukung: "2.0". -
'imageOutputPath': Simpan gambar halaman yang dirender ke volume Katalog Unity untuk aplikasi RAG referensi atau multi-modal. -
'descriptionElementTypes': Deskripsi yang dihasilkan AI. Hanya deskripsi untukfiguresyang didukung untuk versi 2.0, jadi'*'dan'figure'menghasilkan perilaku yang sama.- '' (string kosong): Tidak ada deskripsi yang dihasilkan. Ini mengurangi komputasi yang diperlukan dan biaya untuk dokumen dengan banyak angka.
-
'figure': Hasilkan uraian hanya untuk figura. Hanya mendukung deskripsi yang dihasilkan AI. -
'*'(default): Hasilkan deskripsi untuk semua jenis elemen yang didukung.
-
'pageRange': Membatasi penguraian ke subset halaman dalam dokumen. Nomor halaman diindeks 1. Nilainya adalah daftar token yang dipisahkan koma, di mana setiap token adalah satu halaman (misalnya,"3") atau rentang inklusif (misalnya,"5-10"). Misalnya,'1,3,5-10'mengurai halaman 1, 3, dan 5 hingga 10. Halaman yang dipilih harus tetap berada dalam batas 500 halaman. JikapageRangedihilangkan dan dokumen melebihi 500 halaman, fungsi akan langsung gagal tanpa mengurai halaman apa pun.
Returns
Fungsi ini ai_parse_document mengekstrak metadata tata letak kontekstual dari dokumen, seperti page_number, header, footer. Ini juga mengekstrak konten dokumen, seperti paragraf teks. Untuk versi 2.0, tabel diwakili dalam HTML. Outputnya berjenis VARIANT .
Memahami elemen
Elemen adalah unit konten diskrit yang diidentifikasi dalam dokumen yang diurai. Saat ai_parse_document memproses dokumen, dokumen memecah dokumen menjadi urutan elemen, di mana setiap elemen mewakili blok konten yang berbeda seperti paragraf teks, tabel, gambar, atau penanda tata letak seperti header halaman atau footer.
Setiap elemen dalam array output elements mencakup bidang berikut:
-
id: Indeks berbasis 0 yang menunjukkan posisi elemen dalam dokumen. -
type: String yang menunjukkan jenis konten yang diwakili elemen. Jenis elemen yang didukung adalah:-
text: Paragraf teks atau teks isi umum. -
table: Tabel, dengan konten yang diwakili dalam format HTML. -
figure: Gambar atau diagram dalam dokumen. -
title: Judul dokumen. -
caption: Keterangan yang terkait dengan gambar atau tabel. -
section_header: Judul atau subjudul yang menunjukkan awal bagian. -
page_header: Header yang muncul di bagian atas halaman. -
page_footer: Footer yang muncul di bagian bawah halaman. -
page_number: Penanda nomor halaman. -
footnote: Referensi catatan kaki atau teks.
-
-
content: Konten teks yang diekstrak dari elemen . Untuktableelemen, konten diformat sebagai HTML. Untukfigureelemen, kontennya mungkinNULL. -
confidence: Skor keyakinan yang menunjukkan seberapa andal elemen diekstrak dari dokumen. -
bbox: Array koordinat kotak pembatas yang menunjukkan lokasi fisik elemen di halaman. Setiap kotak pembatas mencakup koordinat piksel danpage_idreferensi. -
description: Deskripsi teks yang dihasilkan AI. Di versi 2.0, deskripsi hanya dihasilkan untukfigureelemen saatdescriptionElementTypesopsi diaktifkan.
Important
Skema output fungsi diberi versi menggunakan format major.minor. Databricks dapat meningkatkan versi yang didukung atau default untuk mencerminkan representasi yang ditingkatkan berdasarkan penelitian yang sedang berlangsung.
- Peningkatan versi minor kompatibel dengan versi sebelumnya dan mungkin hanya memperkenalkan elemen baru.
- Peningkatan versi utama mungkin mencakup perubahan yang dapat menyebabkan ketidakcocokan seperti penambahan bidang, penghapusan, atau penggantian nama.
Berikut ini adalah skema output:
Nota
Mulai 22 September 2025, skema output ada pada versi "2.0" dan telah diperbarui untuk menyertakan:
-
descriptionsuntuk deskripsi gambar yang dihasilkan AI. -
bboxuntuk koordinat kotak pembatas.
Untuk memigrasikan beban kerja yang ada untuk menggunakan skema yang diperbarui, lihat Memigrasikan beban kerja ke skema yang diperbarui.
{
"document": {
"pages": [
{
"id": INT, // 0-based page index
"image_uri": STRING // Path to saved page image (if enabled)
}
],
"elements": [
{
"id": INT, // 0-based element index
"type": STRING, // Supported: text, table, figure, table, title, caption, section_header,
// page_footer, page_header, page_number, footnote
"content": STRING, // Text content of the target element
"confidence": DOUBLE, // Confidence score of the target element
"bbox": [ // Bounding box coordinates
{
"coord": [ INT ],
"page_id": INT
}
],
"description": STRING // AI-generated description for figures
}
]
},
"error_status": [
{
"error_message": STRING // The detailed error message
"page_id": INT // 0-based page index
}
],
"metadata": {
"id": STRING,
"version": STRING, // The version of the output schema
"file_metadata": {
"file_path": STRING,
"file_name": STRING,
"file_size": LONG,
"file_modification_time": TIMESTAMP
}
}
}
Memigrasikan beban kerja ke skema yang diperbarui
Langkah-langkah di bagian ini menjelaskan cara memigrasikan beban kerja yang dibuat sebelum 22 September 2025 untuk menggunakan skema output yang diperbarui.
- Dalam permintaan SQL Anda, tentukan versi skema tertentu menggunakan
versionparameter .
SELECT
ai_parse_document(
content,
map('version', '2.0')
) AS parsed
FROM READ_FILES('/path/to/documents', format => 'binaryFile');
- Ubah kode Anda untuk membaca konten dari
elementsarray alih-alihpagesarray. - Evaluasi ulang metadata. Misalnya, jika Anda menggunakan
pagemetadata seperti header dan footer, Anda perlu mengembangkan pendekatan alternatif untuk mengekstrak informasi ini darielements. - Validasi logika yang diperbarui dengan dokumen sampel sebelum memigrasikan beban kerja penuh Anda.
- Pertimbangkan untuk mengaktifkan deskripsi gambar atau persistensi gambar jika relevan dengan kasus penggunaan Anda.
- Periksa izin. Misalnya, jika Anda berencana menggunakan ketahanan gambar, pastikan Anda telah menyiapkan izin yang benar untuk volume Katalog Unity yang menjadi target.
Examples
Bagian ini menyediakan contoh untuk menggunakan ai_parse_document.
Untuk skenario pemrosesan bertahap menggunakan ai_parse_document, lihat contoh Bundel Otomatisasi Deklaratif ini
Contoh berikut menggunakan ai_parse_document untuk mengekstrak elemen teks dan menggabungkan semua konten teks. Dari sana digunakan ai_query dengan model Claude Sonnet 4 untuk mengekstrak informasi terstruktur tertentu seperti nama vendor, tanggal, nomor faktur, dan item yang dibeli.
WITH parsed_docs AS (
SELECT
path,
ai_parse_document(
content,
MAP('version', '2.0')
) AS parsed_content
FROM READ_FILES('/Volumes/finance/invoices/', format => 'binaryFile')
)
SELECT
path,
ai_extract(
parsed_content,
'["invoice_id", "vendor_name", "total_amount"]',
MAP('instructions', 'These are vendor invoices.')
) AS invoice_data
FROM parsed_docs;
Contoh berikut menggunakan ai_parse_document untuk mengekstrak tata letak dokumen sebagai VARIANT output untuk satu file dan menentukan,
- Tempat menyimpan gambar yang dirender.
- Menyematkan suatu versi skema keluaran.
- Mengaktifkan deskripsi yang dihasilkan AI untuk gambar.
SELECT
path,
ai_parse_document(
content,
map(
'version', '2.0',
'imageOutputPath', '/Volumes/catalog/schema/volume/directory/',
'descriptionElementTypes', '*'
)
) as parsed_doc
FROM READ_FILES('/Volumes/data/documents/', format => 'binaryFile');
Contoh berikut menggunakan pageRange untuk membatasi penguraian ke subset halaman dari file biner dalam volume Katalog Unity. Nomor halaman diindeks 1, dan Anda dapat menggabungkan satu halaman dengan rentang (misalnya, '1,3,5-10').
SELECT
path,
ai_parse_document(
content,
map('pageRange', '1-500')
) AS parsed_doc
FROM READ_FILES('/Volumes/catalog/schema/volume/documents/', format => 'binaryFile');
Contoh berikut menggunakan ai_parse_document untuk mengekstrak tata letak dokumen menjadi output VARIANT bagi file dalam volume Katalog Unity.
SQL
SELECT
path,
ai_parse_document(content)
FROM READ_FILES('/Volumes/path/to/your/directory', format => 'binaryFile');
Python
from pyspark.sql.functions import *
df = spark.read.format("binaryFile") \
.load("/Volumes/path/to/your/directory") \
.withColumn(
"parsed",
expr("ai_parse_document(content)"))
display(df)
Scala
import org.apache.spark.sql.functions._
val df = spark.read.format("binaryFile")
.load("/Volumes/path/to/your/directory")
.withColumn(
"parsed",
ai_parse_document($"content"))
display(df)
Contoh berikut menggunakan ai_parse_document dengan Lakeflow Connect untuk SharePoint untuk mengurai dokumen langsung dari pustaka dokumen SharePoint.
Important
Lakeflow Connect untuk SharePoint berada di Beta.
CREATE TABLE documents AS
SELECT * FROM read_files(
'https://mytenant.sharepoint.com/sites/Marketing/Shared%20Documents',
databricks.connection => 'my_sharepoint_conn',
format => 'binaryFile',
pathGlobFilter => '*.{pdf,docx}',
schemaEvolutionMode => 'none'
);
SELECT *, ai_parse_document(content) AS parsed_content
FROM documents;
Menggunakan to_json() dengan PySpark collect()
ai_parse_document
VARIANT mengembalikan jenis, yang tidak dapat dikumpulkan langsung oleh PySpark (atau API lain yang tidak mendukung VARIAN). Untuk mengumpulkan hasil yang diurai ke dalam Python untuk pemrosesan lebih lanjut, gunakan to_json() di SQL untuk mengonversi VARIAN ke string JSON, lalu uraikan dengan json.loads() di Python:
import json
sql = """
WITH parsed_documents AS (
SELECT
path,
ai_parse_document(
content,
map(
'version', '2.0',
'imageOutputPath', '/Volumes/catalog/schema/volume/parsed_images/',
'descriptionElementTypes', '*'
)
) AS parsed
FROM READ_FILES('/Volumes/catalog/schema/volume/source_docs/*', format => 'binaryFile')
)
SELECT path, to_json(parsed) AS parsed_json FROM parsed_documents
"""
parsed_results = [json.loads(row.parsed_json) for row in spark.sql(sql).collect()]
# Each item in parsed_results is a Python dict with the parsed document structure.
Contoh berikut menggunakan ai_parse_document untuk memisahkan setiap bidang tingkat atas output. Misalnya, document.pages, document.elements, error_status, dan metadata ke dalam kolom individual.
SQL
WITH corpus AS (
SELECT
path,
ai_parse_document(content) AS parsed
FROM
READ_FILES('/Volumes/path/to/source/file.pdf', format => 'binaryFile')
)
SELECT
path,
parsed:document:pages,
parsed:document:elements,
parsed:error_status,
parsed:metadata
FROM corpus;
Python
from pyspark.sql.functions import *
df = (
spark.read.format("binaryFile")
.load("/Volumes/path/to/source/file.pdf")
.withColumn("parsed", ai_parse_document(col("content")))
.select(
"path",
expr("parsed:document:pages"),
expr("parsed:document:elements"),
expr("parsed:error_status"),
expr("parsed:metadata")
)
)
display(df)
Scala
import com.databricks.sql.catalyst.unstructured.DocumentParseResultV2_0
import org.apache.spark.sql.functions._
val df = spark.read.format("binaryFile")
.load("/Volumes/path/to/source/file.pdf")
.withColumn(
"parsed",
ai_parse_document($"content").cast(DocumentParseResultV2_0.SCHEMA))
.select(
$"path",
$"parsed.*")
display(df)
Men-debug buku catatan antarmuka
Notebook berikut menyediakan antarmuka debugging visual untuk menganalisis output fungsi ai_parse_document. Ini merender dokumen yang sudah diparsing dengan overlay kotak pembatas interaktif, memungkinkan Anda memeriksa konten apa yang diekstrak dari setiap bagian dari dokumen Anda.
Men-debug buku catatan antarmuka
Batasan
- Dokumen dibatasi hingga maksimum 500 halaman, melebihi batas ini menghasilkan kesalahan.
- Ada batas ukuran file maksimum 100 MB.
- Meskipun Databricks terus bekerja untuk meningkatkan semua fiturnya, LLM adalah teknologi yang muncul dan dapat menghasilkan kesalahan.
- Fungsi
ai_parse_documentdapat memakan waktu untuk mengekstrak konten dokumen sambil mempertahankan informasi struktural, terutama untuk dokumen yang mengandung konten yang sangat padat atau konten dengan resolusi buruk. Dalam beberapa kasus, fungsi mungkin memakan waktu cukup lama untuk menjalankan atau mengabaikan konten. Databricks terus berupaya meningkatkan latensi. - Lihat Format file input yang didukung. Databricks menerima umpan balik tentang format tambahan mana yang paling penting bagi organisasi Anda.
- Mengubah model yang menggerakkan
ai_parse_documentatau menggunakan modelai_parse_documentyang disediakan oleh pelanggan tidak didukung. - Model yang mendasar mungkin tidak berkinerja optimal saat menangani gambar menggunakan teks alfabet non-Latin, seperti Jepang atau Korea.
- Dokumen dengan tanda tangan digital mungkin tidak diproses secara akurat.