Megosztás a következőn keresztül:


ai_parse_document függvény

A következőkre vonatkozik:jelölje be az igennel jelölt jelölőnégyzetet Databricks SQL jelölje be az igennel jelölt jelölőnégyzetet Databricks Runtime

Fontos

Ez a funkció bétaverzióban érhető el.

A ai_parse_document() függvény a Databricks Foundation Model API-kból meghív egy korszerű generatív AI-modellt, amely strukturált tartalmat nyer ki strukturálatlan dokumentumokból.

Követelmények

Fontos

A függvényt használó modell a Láma modellcsalád része, és a Mosaic AI Model Serving Foundation Model API-kkal érhető el. A Databricksben elérhető Láma-modellekről, valamint a modellek használatát szabályozó licencekről és szabályzatokról az alkalmazandó modellfejlesztői licenceket és használati feltételeket ismertető cikkben olvashat. Ha a Databricks belső teljesítménymutatóinak megfelelően jobb teljesítményt nyújtó modellek jelennek meg a jövőben, a Databricks megváltoztathatja a modelleket, és frissítheti a dokumentációt.

  • Munkaterület az egyik támogatott régióban: eastus, eastus2, westus, centralusvagy northcentralus.
  • A Mozaik AI Agent Bricks bétaverziója engedélyezve van.
  • Databricks Runtime 16.4 LTS vagy újabb.
  • Kiszolgáló nélküli számítás használata esetén a következőkre is szükség van:
    • Kompatibilisnek kell lennie a Databricks Runtime 16.4 vagy újabb verziójával.
    • A kiszolgáló nélküli környezet verzióját 2-esre kell állítani, mivel ez lehetővé teszi az olyan funkciókat, mint a VARIANT.
    • Pythont vagy SQL-t kell használnia. További kiszolgáló nélküli funkciók és korlátozások: Kiszolgáló nélküli számítási korlátozások.
  • A ai_parse_document függvény Databricks-jegyzetfüzetek, SQL-szerkesztők, Databricks-munkafolyamatok, feladatok vagy Lakeflow deklaratív folyamatok használatával érhető el.
  • A számlázási részletekért lásd a Beta termékek árazási oldalát.

Adatbiztonság

A dokumentumadatok feldolgozása a Databricks biztonsági peremhálózatán belül történik. A Databricks nem tárolja a hívásokba ai_parse_document function átadott paramétereket, de megőrzi a metaadatok futtatási adatait, például a használt Databricks Runtime-verziót.

Támogatott bemeneti fájlformátumok

A bemeneti adatfájlokat blobadatokként kell tárolni bájtokban, ami bináris típusú oszlopot jelent egy adatkeretben vagy Delta-táblában. Ha a forrásdokumentumok unity katalóguskötetben vannak tárolva, a bináris típusú oszlop Spark binaryFile formátumolvasóval hozható létre.

A következő fájlformátumok támogatottak:

  • PDF
  • JPG/JPEG
  • PNG

Szemantika

ai_parse_document(content)
ai_parse_document(content, Map("version" -> "1.0"))

Érvek

  • content: A BINARY bemeneti bájttömb adatait képviselő kifejezés.
  • version: A kimeneti séma verziója, támogatott: "1.0".

Visszatérítések

A ai_parse_document függvény kinyeri a környezetfüggő elrendezés metaadatait a dokumentumból, példáulpage_number: , header. footer Emellett kinyeri a dokumentum tartalmát, például a szöveg bekezdéseit vagy táblázatait, és markdownban jeleníti meg. A kimenet VARIANT típusa.

Fontos

A függvény kimeneti sémáját a verziózás során egy major.minor formátum, például "1.0", használatával határozzák meg. Előfordulhat, hogy a Databricks frissíti a támogatott vagy alapértelmezett verziót, hogy a folyamatban lévő kutatások alapján továbbfejlesztett megjelenítéseket tükrözzen.

  • Az alverziófrissítések visszamenőlegesen kompatibilisek, és előfordulhat, hogy csak új mezőket vezetnek be.
  • A főverzió-frissítések közé tartozhatnak a kompatibilitástörő módosítások, például mezőhozzáadások, eltávolítások vagy átnevezések.

A kimeneti séma a következő:

{
  "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
  }
}

Példák

Az alábbi példa ai_parse_document segítségével dokumentumelrendezéseket nyer ki c1 kimenetként.

SQL

SELECT
  path,
  ai_parse_document(content)
FROM READ_FILES('/Volumes/path/to/source/file.pdf', format => 'binaryFile');

Piton

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)

Az alábbi példa a kimenet egyes legfelső szintű mezőinek elválasztására használ ai_parse_document címkét, például document.pages, document.elements, corrupted_data, error_status és metadata oszlopok különállóvá tételéhez.

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;

Piton

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)

korlátozások

  • Bár a Databricks folyamatosan dolgozik az összes funkciójának fejlesztésén, az LLM-ek egy új technológia, amely hibákat okozhat.
  • A ai_parse_document függvény időt vehet igénybe a dokumentumtartalmak kinyeréséhez a szerkezeti információk megőrzése mellett, különösen olyan dokumentumok esetében, amelyek nagy sűrűségű tartalmat vagy rossz felbontású tartalmat tartalmaznak. Bizonyos esetekben a függvény futtatása eltarthat egy ideig, vagy figyelmen kívül hagyhat tartalmat. A Databricks folyamatosan dolgozik a késés javításán.
  • Lásd : Támogatott bemeneti fájlformátumok. A Databricks üdvözli a szervezet számára legfontosabb további formátumokkal kapcsolatos visszajelzéseket.
  • Az a testreszabás, amely a ai_parse_document-ot működtető modellre vagy az ügyfél által biztosított ai_parse_document-hoz használt modellre vonatkozik, nem támogatott.
  • A mögöttes modell nem feltétlenül teljesít optimálisan, ha nem latin betűs szövegekkel, például japán vagy koreai betűs szövegekkel kezeli a képeket.
  • A digitális aláírással rendelkező dokumentumok nem dolgozhatók fel pontosan.