Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks SQL
Databricks Runtime
Importante
Esta funcionalidad está en versión preliminar pública y compatible con HIPAA.
Durante la versión preliminar:
- El modelo de lenguaje subyacente puede controlar varios idiomas, pero esta función de IA está optimizada para inglés.
- Consulte Características con disponibilidad regional limitada para la disponibilidad regional de AI Functions.
La ai_parse_document() función invoca un modelo de IA generativo de última generación de las API de Databricks Foundation Model para extraer contenido estructurado de documentos no estructurados.
Requisitos
Importante
El modelo que alimenta esta función está disponible mediante las API del modelo de Mosaic AI Serving Foundation. Consulte Licencias y términos aplicables para desarrolladores de modelos para obtener información sobre qué modelos están disponibles en Databricks y las licencias y directivas que rigen el uso de esos modelos.
Si los modelos surgen en el futuro que funcionan mejor según las pruebas comparativas internas de Databricks, Databricks puede cambiar los modelos y actualizar la documentación.
- Un área de trabajo en una región de EE. UU. que admite Funciones de IA optimizadas para la inferencia por lotes.
- Si el área de trabajo no está en ESTADOS Unidos, pero está en una región que admite AI Functions optimizada para la inferencia por lotes, el enrutamiento entre zonas geográficas debe estar habilitado en el área de trabajo.
- Para los clientes de estas regiones, la
ai_parse_documentfunción también está disponible para las áreas de trabajo con el complemento Seguridad y cumplimiento mejorados, pero los administradores del área de trabajo deben habilitarla en el portal de versiones preliminares.
- Databricks Runtime 17.1 o superior.
- Si usa un proceso sin servidor, también se requiere lo siguiente:
- La versión del entorno sin servidor debe establecerse en 3 o superior, ya que esto habilita características como
VARIANT. - Debe usar Python o SQL. Para obtener más características y limitaciones sin servidor, consulte Limitaciones de proceso sin servidor.
- La versión del entorno sin servidor debe establecerse en 3 o superior, ya que esto habilita características como
- La
ai_parse_documentfunción está disponible mediante cuadernos de Databricks, editor de SQL, flujos de trabajo, trabajos o canalizaciones declarativas de Lakeflow Spark. -
ai_parse_documentlos costos se registran como parte delAI_FUNCTIONSproducto. Consulte Visualización de los costos deai_parse_documentejecuciones para obtener una consulta de ejemplo.
Seguridad de datos
Los datos del documento se procesan dentro del perímetro de seguridad de Databricks. Databricks no almacena los parámetros que se pasan a las ai_parse_document function llamadas, pero conserva los detalles de ejecución de metadatos, como la versión de Databricks Runtime usada.
Formatos de archivo de entrada admitidos
Los archivos de datos de entrada deben almacenarse como datos de blob en bytes, lo que significa una columna de tipo binario en una tabla dataframe o delta. Si los documentos de origen se almacenan en un volumen de catálogo de Unity, la columna de tipo binario se puede generar mediante el lector de formato Spark binaryFile .
Se admiten los siguientes formatos de archivo:
- JPG/JPEG
- PNG
- DOC/DOCX
- PPT/PPTX
Sintaxis
ai_parse_document(content)
ai_parse_document(content, Map("version" -> "2.0"))
Argumentos
-
contentBINARY: expresión que representa los datos de la matriz de bytes de entrada. -
version: la versión del esquema de salida, compatible: "2.0". -
'imageOutputPath': opcional. Guarde las imágenes de página renderizadas en un volumen de Catálogo de Unity para las aplicaciones RAG de referencia o multimodal. -
'descriptionElementTypes': descripciones generadas por IA. Solo se admiten descripciones parafiguresla versión 2.0, por lo que'*'y'figure'producen el mismo comportamiento.- '' (cadena vacía): no se generan descripciones. Esto reduce el proceso necesario y los costos de los documentos con una gran cantidad de cifras.
-
'figure': Generar descripciones solo para figuras. Solo admite descripciones generadas por IA. -
'*'(valor predeterminado): genere descripciones para todos los tipos de elementos admitidos.
Devoluciones
La ai_parse_document función extrae los metadatos de diseño contextual del documento, como page_number, header, footer. También extrae el contenido del documento, como párrafos de texto. Para la versión 2.0, las tablas se representan en HTML. La salida es de tipo VARIANT.
Importante
El esquema de salida de la función se versiona mediante un formato major.minor. Databricks puede actualizar la versión admitida o predeterminada para reflejar representaciones mejoradas basadas en investigaciones continuas.
- Las actualizaciones de versiones secundarias son compatibles con versiones anteriores y solo pueden introducir nuevos campos.
- Las actualizaciones de versiones principales pueden incluir cambios importantes, como adiciones de campos, eliminaciones o cambios de nombre.
A continuación se muestra el esquema de salida:
Nota:
A partir del 22 de septiembre de 2025, el esquema de salida está en la versión "2.0" y se ha actualizado para incluir:
-
descriptionspara descripciones de ilustración generadas por IA. -
bboxpara coordenadas de rectángulo delimitador.
Para migrar las cargas de trabajo existentes para usar el esquema actualizado, consulte Migración de cargas de trabajo al esquema actualizado.
{
"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
"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
}
}
}
Migración de cargas de trabajo al esquema actualizado
Los pasos de esta sección describen cómo migrar las cargas de trabajo creadas antes del 22 de septiembre de 2025 para usar el esquema de salida actualizado.
- En la solicitud SQL, especifique una versión de esquema específica mediante el
versionparámetro .
SELECT
ai_parse_document(
content,
map('version', '2.0')
) AS parsed
FROM READ_FILES('/path/to/documents', format => 'binaryFile');
- Modifique el código para leer contenido de la
elementsmatriz en lugar de lapagesmatriz. - Vuelva a evaluar los metadatos. Por ejemplo, si usaba
pagemetadatos como encabezados y pies de página, debe desarrollar un enfoque alternativo para extraer esta información deelements. - Valide la lógica actualizada con documentos de ejemplo antes de migrar la carga de trabajo completa.
- Considere la posibilidad de habilitar descripciones de figura o persistencia de imágenes si son relevantes para su caso de uso.
- Compruebe los permisos. Por ejemplo, si planea usar la persistencia de imágenes, asegúrese de que tiene los permisos correctos configurados para el volumen de catálogo de Unity de destino.
Ejemplos
En esta sección se proporcionan ejemplos de uso de ai_parse_document.
Para escenarios de procesamiento incremental mediante ai_parse_document, consulte este ejemplo de Conjuntos de recursos de Databricks.
En el ejemplo siguiente se usa ai_parse_document para extraer elementos de texto y concatenar todo el contenido de texto. Desde allí se usa ai_query con el modelo Claude Sonnet 4 para extraer información estructurada específica, como el nombre del proveedor, la fecha, el número de factura y los artículos comprados.
WITH parsed_documents AS (
SELECT
path,
ai_parse_document(
content,
map(
'imageOutputPath', '/Volumes/catalog/schema/volume/parsed_images/',
'descriptionElementTypes', '*'
)
) AS parsed
FROM READ_FILES('/Volumes/catalog/schema/volume/source_docs/*.{pdf,jpg,jpeg,png,doc,docx,ppt,pptx}', format => 'binaryFile')
),
parsed_text AS (
SELECT
path,
concat_ws(
'\n\n',
transform(
try_cast(parsed:document:elements AS ARRAY<VARIANT>),
element -> try_cast(element:content AS STRING)
)
) AS text
FROM parsed_documents
WHERE try_cast(parsed:error_status AS STRING) IS NULL
)
SELECT
path,
text,
ai_query(
'databricks-claude-sonnet-4',
concat(
'Extract vendor name, date, invoice number, and items purchased from this document. ',
'Return the result as a JSON object with keys: vendor, date, invoice_number, items (as an array). ',
text
),
returnType => 'STRING'
) AS structured_data
FROM parsed_text
WHERE text IS NOT NULL;
En el ejemplo siguiente se usa ai_parse_document para extraer diseños de documento como VARIANT salida para un único archivo y se especifica,
- Dónde guardar las imágenes representadas.
- Ancla una versión de esquema de salida.
- Habilita las descripciones generadas por IA para las figuras.
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');
En el ejemplo siguiente se usa ai_parse_document para extraer los diseños de documentos como salida VARIANT para los archivos en un volumen de Unity Catalog.
SQL
SELECT
path,
ai_parse_document(content)
FROM READ_FILES('/Volumes/path/to/your/directory', format => 'binaryFile');
Pitón
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)
En el ejemplo siguiente se usa ai_parse_document para separar cada campo de nivel superior de la salida. Por ejemplo, document.pages, document.elements, error_statusy metadata en columnas individuales.
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;
Pitón
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)
Cuaderno de depuración de interfaz
El siguiente cuaderno proporciona una interfaz de depuración visual para analizar la salida de la función ai_parse_document. Representa documentos analizados con superposiciones interactivas de cuadros de límite, lo que le permite inspeccionar qué contenido se extrajo de cada región de los documentos.
Cuaderno de depuración de interfaz
Limitaciones
- Aunque Databricks trabaja continuamente para mejorar todas sus funcionalidades, los grandes modelos de lenguaje son una tecnología emergente y pueden producir errores.
- La
ai_parse_documentfunción puede tardar tiempo en extraer el contenido del documento al tiempo que conserva la información estructural, especialmente para los documentos que contienen contenido altamente denso o contenido con una resolución deficiente. En algunos casos, la función puede tardar un tiempo en ejecutarse o omitir el contenido. Databricks está trabajando continuamente para mejorar la latencia. - Consulte Formatos de archivo de entrada admitidos. Databricks da la bienvenida a los comentarios sobre qué formatos adicionales son más importantes para su organización.
- No se admite ni la personalización del modelo que impulsa
ai_parse_documentni utilizar un modelo proporcionado por el cliente paraai_parse_document. - Es posible que el modelo subyacente no funcione de forma óptima al controlar imágenes mediante texto de alfabetos no latinos, como japonés o coreano.
- Es posible que los documentos con firmas digitales no se procesen con precisión.