L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Documents · SKILL.md

partitioning

partitioning

Partition local files, file-like objects, URLs, text, HTML, PDF/image, Office, tabular, JSON/NDJSON, XML, RST/MD/EPUB, email, and audio inputs into unstructured Element objects.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: partitioning description: "Partition local files, file-like objects, URLs, text, HTML, PDF/image, Office, tabular, JSON/NDJSON, XML, RST/MD/EPUB, email, and audio inputs into unstructured Element objects." disable-model-invocation: true metadata: disco-role: operating license: Apache 2.0

Partitioning

Use this sub-skill when a task asks an agent to turn source documents into unstructured.documents.elements.Element objects or to diagnose why a document type cannot be partitioned. Route serialization/export of elements to elements-and-metadata, post-partition chunking to chunking, embeddings to embeddings, and extraction-quality scoring to evaluation.

Start Here

  • Prefer unstructured.partition.auto.partition() when the corpus has mixed file types or when MIME/extension detection is acceptable.
  • Prefer document-specific partition_* APIs when a format has important knobs, such as PDF/image strategy, HTML parser options, email attachment handling, or spreadsheet/table behavior.
  • Run python -m unstructured.cli doctor or unstructured doctor before debugging optional dependency failures; use --for pdf, --for image, --for doc, --for audio, or --file PATH for targeted checks.
  • Use local partition APIs for offline processing. Treat API workflows as network/credential-dependent and do not assume they are available in a normal local agent session.

Core Local API

from unstructured.partition.auto import partition

elements = partition(filename="docs/report.pdf", strategy="auto")

partition() accepts exactly one of filename, file, or url. For file-like objects, open in binary mode and pass metadata_filename when extension-based detection or element metadata should reflect a logical name:

with open("docs/report.pdf", "rb") as file:
    elements = partition(file=file, metadata_filename="report.pdf", strategy="fast")

Important options:

  • content_type: overrides or supplements detection when the MIME type is known.
  • encoding: resolves non-UTF text/HTML/JSON decoding issues.
  • headers, ssl_verify, request_timeout: apply only when url is used; set a timeout explicitly for unreliable endpoints.
  • languages: preferred language/OCR hint list, e.g. languages=["eng", "spa"] or ISO codes that can map to Tesseract codes.
  • detect_language_per_element: stores language metadata per element instead of once per document.
  • skip_infer_table_types: controls table structure inference by file type; default skips PDF and common image types.
  • starting_page_number: shifts page metadata when partitioning a PDF section.

Format Routes

  • Text: from unstructured.partition.text import partition_text; accepts exactly one of filename, file, or text, plus paragraph_grouper.
  • HTML: from unstructured.partition.html import partition_html; accepts filename, file, text, or url; useful knobs include skip_headers_and_footers, html_parser_version, image_alt_mode, and URL request options.
  • PDF: from unstructured.partition.pdf import partition_pdf; choose strategy, table/image/form options, page numbering, password, and pdfminer margins.
  • Image: from unstructured.partition.image import partition_image; use strategy="hi_res" or "ocr_only"; "fast" is invalid for images.
  • Office: use partition_docx, partition_doc, partition_pptx, partition_ppt, partition_xlsx, and partition_odt for format-specific controls.
  • Email: use partition_email for .eml and partition_msg for Outlook .msg; inspect attachment options before recursively partitioning attachments.
  • Tabular: use partition_csv, partition_tsv, or partition_xlsx; table elements can contain metadata.text_as_html when table structure is inferred.
  • Markup/books: use partition_md, partition_rst, partition_org, partition_xml, and partition_epub for explicit handling.
  • JSON streams: partition_json expects an unstructured-style JSON array of element dictionaries; partition_ndjson handles newline-delimited element records.
  • Audio: partition_audio transcribes audio to elements and requires the audio extra plus ffmpeg.

See references/api-reference.md for a compact API and dependency matrix.

PDF/Image Strategy Rules

Use strategy="fast" for extractable PDF text when layout detection, OCR, image blocks, forms, or table HTML are not needed. Use strategy="hi_res" when table structure, coordinates, images, layout segmentation, or form extraction matters. Use strategy="ocr_only" for scanned PDFs/images when OCR text is enough and layout segmentation is unnecessary. Use strategy="auto" when the agent should let unstructured pick and fallback based on text extractability and installed dependencies.

auto chooses PDF hi_res if table/image extraction is requested, PDF fast when text is extractable, PDF ocr_only when text is not extractable, and image hi_res by default. If unstructured_inference or unstructured_pytesseract is missing, unstructured may warn and fall back between hi_res, ocr_only, and fast; if no viable path exists for a non-extractable PDF, it raises an error.

Prefer languages over deprecated ocr_languages. Prefer hi_res_model_name over deprecated model_name. Prefer skip_infer_table_types over deprecated pdf_infer_table_structure.

Diagnostics Scripts

Bundled helpers live under this sub-skill's scripts/ directory:

python scripts/partition_diagnostics.py --for pdf
python scripts/partition_diagnostics.py --file docs/report.pdf
python scripts/partition_diagnostics.py --partition docs/report.pdf --strategy fast --limit 5
python scripts/inspect_tables.py output/elements.json --out-dir tables --index

partition_diagnostics.py wraps the public doctor/capability APIs and can run a small local partition preview when the environment supports the target format. inspect_tables.py extracts Table element metadata.text_as_html values from exported JSON into standalone HTML files; it is a portable Python adaptation of the repository's user table-inspection shell script.

Workflow Pointers

  • For mixed corpora, inventory extensions first, install only required extras, run doctor for risky families, then partition with partition() and per-format overrides only where needed.
  • For PDF table extraction, use strategy="hi_res" and set skip_infer_table_types=[] or call partition_pdf(..., infer_table_structure=True); inspect table HTML with scripts/inspect_tables.py after serializing elements.
  • For URL partitioning, always set request_timeout; for HTML pages prefer partition_html(url=...) if the URL is known to return HTML.
  • For API partitioning, require an endpoint, credentials, and network access; do not embed credentials in scripts or skill content.

Evidence

This sub-skill is grounded in the package metadata, public README guidance, partitioning modules, file type utilities, doctor/CLI diagnostics, partition behavior tests, example document fixtures, and user helper scripts distilled into this bundled guidance.

Skills enregistrées