인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
문서 및 사무 · 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

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