Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
funktion
gäller för: Databricks SQL
Databricks Runtime
Viktigt!
Den här funktionen finns i Beta.
Funktionen ai_parse_document()
anropar en toppmodern generativ AI-modell från Api:er för Databricks Foundation-modell för att extrahera strukturerat innehåll från ostrukturerade dokument.
Kravspecifikation
Viktigt!
Modellen som driver den här funktionen är en del av Llama-serien med modeller och görs tillgänglig med api:er för Mosaic AI Model Serving Foundation Model. Se Tillämpliga licenser och villkor för modellutvecklare för information om vilka Llama-modeller som är tillgängliga på Databricks och de licenser och principer som styr användningen av dessa modeller. Om modeller dyker upp i framtiden som presterar bättre enligt Databricks interna riktmärken kan Databricks ändra modellerna och uppdatera dokumentationen.
- En arbetsyta i någon av de regioner som stöds:
eastus
,eastus2
,westus
,centralus
ellernorthcentralus
. - Mosaic AI Agent Bricks Beta aktiverat.
- Databricks Runtime 16.4 LTS eller senare.
- Om du använder serverlös beräkning krävs även följande:
- Måste vara kompatibel med Databricks Runtime 16.4 eller senare.
- Den serverlösa miljöversionen måste vara inställd på 2 eftersom detta aktiverar funktioner som
VARIANT
. - Måste använda antingen Python eller SQL. Ytterligare serverlösa funktioner och begränsningar finns i Begränsningar för serverlös beräkning.
- Funktionen
ai_parse_document
är tillgänglig med Databricks notebook-filer, SQL-redigerare, Databricks-arbetsflöden, jobb eller Lakeflow Deklarativa pipelines. - Se prissidan för Beta-produkter för faktureringsinformation.
Datasäkerhet
Dina dokumentdata bearbetas inom Databricks säkerhetsperimeter. Databricks lagrar inte de parametrar som skickas till anropen ai_parse_document function
, men behåller information om metadatakörning, till exempel den Databricks Runtime-version som används.
Indatafilformat som stöds
Dina indatafiler måste lagras som blobdata i byte, vilket innebär en binär typkolumn i en dataram eller Delta-tabell. Om källdokumenten lagras i en Unity Catalog-volym kan kolumnen för binär typ genereras med spark-formatläsaren binaryFile
.
Följande filformat stöds:
- JPG/JPEG
- PNG
Syntax
ai_parse_document(content)
ai_parse_document(content, Map("version" -> "1.0"))
Argumentpunkter
-
content
: EttBINARY
uttryck som representerar inputdata för bytearray. -
version
: Den version av utdataschemat som stöds: "1.0".
Retur
Funktionen ai_parse_document
extraherar kontextuella layoutmetadata från dokumentet, till exempel page_number
, header
, footer
. Det extraherar också innehållet i dokumentet, till exempel textstycken eller tabeller och representerar det i markdown. Utdata är av VARIANT
typen .
Viktigt!
Funktionens utdataschema har versioner med ett major.minor-format, som "1.0". Databricks kan uppgradera den version som stöds eller standardversionen för att återspegla förbättrade representationer baserat på pågående forskning.
- Delversionsuppgraderingar är bakåtkompatibla och kanske bara introducerar nya fält.
- Större versionsuppgraderingar kan omfatta icke-bakåtkompatibla ändringar, till exempel fälttillägg, borttagningar eller namnbyten.
Följande är utdataschemat:
{
"document": {
"pages": [
{
"id": INT, // 0-based page index
"page_number": STRING, // Extracted page number (NULL if not found)
"header": STRING, // Extracted page header (NULL if not found)
"footer": STRING, // Extracted page footer (NULL if not found)
"content": STRING // Text content (markdown) of the entire page
}
],
"elements": [
{
"id": INT, // 0-based element index
"type": STRING, // Supported: text, table, figure
"content": STRING, // Text content (markdown) of the target element
"page_id": INT // 0-based page index where the element appears
}
],
},
"corrupted_data": [
{
"malformed_response": STRING // The response in malformed json format
"page_id": INT // 0-based page index
}
],
"error_status": [
{
"error_message": STRING // The detailed error message
"page_id": INT // 0-based page index
}
],
"metadata": {
"version": STRING, // The version of the output schema
"backend_id": STRING // The backend id where the document is parsed
}
}
Exempel
I följande exempel används ai_parse_document
för att extrahera dokumentlayouter som VARIANT
utdata.
SQL
SELECT
path,
ai_parse_document(content)
FROM READ_FILES('/Volumes/path/to/source/file.pdf', format => 'binaryFile');
python
from pyspark.sql.functions import *
df = spark.read.format("binaryFile") \
.load("/Volumes/path/to/source/file.pdf") \
.withColumn(
"parsed",
ai_parse_document("content"))
display(df)
Scala
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"))
display(df)
I följande exempel används ai_parse_document
för att avgränsa varje fält på den översta nivån i utdata, document.pages
till exempel , document.elements
, corrupted_data
, error_status
och metadata
i enskilda kolumner.
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:corrupted_data,
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("content")) \
.withColumn(
"parsed_json",
parse_json(col("parsed").cast("string"))) \
.selectExpr(
"path",
"parsed_json:document:pages",
"parsed_json:document:elements",
"parsed_json:corrupted_data",
"parsed_json:error_status",
"parsed_json:metadata")
display(df)
Scala
import com.databricks.sql.catalyst.unstructured.DocumentParseResultV1_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(DocumentParseResultV1_0.SCHEMA))
.select(
$"path",
$"parsed.*")
display(df)
Begränsningar
- Databricks arbetar kontinuerligt för att förbättra alla dess funktioner, men LLM:er är en ny teknik och kan orsaka fel.
- Funktionen
ai_parse_document
kan ta tid att extrahera dokumentinnehåll samtidigt som strukturell information bevaras, särskilt för dokument som innehåller mycket tätt innehåll eller innehåll med dålig upplösning. I vissa fall kan det ta en stund för funktionen att köra eller ignorera innehåll. Databricks arbetar kontinuerligt för att förbättra svarstiden. - Se Indatafilformat som stöds. Databricks välkomnar feedback om vilka ytterligare format som är viktigast för din organisation.
- Det går inte att anpassa den modell som driver
ai_parse_document
eller använder en kundanpassad modell förai_parse_document
. - Den underliggande modellen kanske inte fungerar optimalt när du hanterar bilder med text i icke-latinska alfabet, till exempel japanska eller koreanska.
- Dokument med digitala signaturer kanske inte bearbetas korrekt.