Install
openclaw skills install local-document-ai-openvinoParse local PDFs and document images with PaddleOCR-VL or PaddleOCR-VL-1.5 on OpenVINO, then route the structured parse into downstream document-to-data or d...
openclaw skills install local-document-ai-openvinoTurn local PDFs, invoices, screenshots, and diagrams into one of two useful outcomes:
to-data: classify the document and extract structured fields, tables, and JSON.to-code: turn screenshots, forms, and architecture diagrams into code or Jupyter notebook scaffolds.Everything runs locally and is built for Intel CPU/GPU acceleration with OpenVINO.
Install this when you want one local workflow for:
This skill is especially good for demos because it already includes:
to-data flowsto-data flowsto-code -> jupyter-notebook flowsCheck the environment:
python "{baseDir}/scripts/check_env.py"
Or run directly from the CLI:
python "{baseDir}/scripts/run_skill.py" --mode to-data --file "/absolute/path/to/invoice.pdf" --out "/absolute/path/to/artifacts/invoice_data" --extract "tables,entities,kv_pairs"
Use prompts like these in OpenClaw:
Use $local-document-ai-openvino to parse this local PDF and give me a structured report.
Use $local-document-ai-openvino to extract invoice fields, tables, and key-value pairs from this medical invoice.
Use $local-document-ai-openvino to classify this receipt and return normalized JSON.
Use $local-document-ai-openvino to turn this architecture diagram into a Jupyter notebook scaffold.
Use $local-document-ai-openvino to convert this UI screenshot into an HTML scaffold.
Typical outputs include:
parsed.jsonparsed.mdresult_report.htmltask_output/structured_record.jsontask_output/normalized.jsontask_output/notebook.ipynbcode_preview.htmlIf you are evaluating the skill for the first time, start here:
to-data on an invoice PDFresult_report.htmlstructured_record.jsonto-code with a diagram image and target jupyter-notebookUse this skill as a local document-to-action pipeline:
to-data or to-code.Load these references when you need the schema or output contracts:
{baseDir}/references/schema.md{baseDir}/references/mode_guide.md{baseDir}/references/output_contracts.mdUse this published entrypoint:
{baseDir}/scripts/run_skill.pyDo not call these implementation scripts directly from the skill:
parse_document.pytransform_doc_to_data.pytransform_doc_to_code.pyCheck the environment before processing real documents:
python "{baseDir}/scripts/check_env.py"
Install the base dependencies in a virtual environment:
python -m pip install -r "{baseDir}/requirements.txt"
Install the third-party paddleocr_vl_openvino package only after reviewing the source or wheel and only when you intend to run the real OCR pipeline. Prefer installing from a reviewed local wheel path inside a virtual environment.
Run a quick orchestration smoke test:
python "{baseDir}/scripts/smoke_test.py"
Model assets are discovered from:
PADDLEOCR_VL_OPENVINO_MODEL_DIRPADDLEOCR_VL_LAYOUT_MODEL_DIR plus PADDLEOCR_VL_VLM_MODEL_DIR{baseDir}/models/paddleocr-vl-1.5-openvino/{baseDir}/models/paddleocr-vl-openvino/Allow model auto-download only when the user explicitly approves it.
parseUse when the user wants the structured parse only.
Outputs:
parsed.jsonparsed.mdresult_report.htmlto-dataUse when the user wants structured extraction, normalization, or document classification.
Typical outputs under task_output/:
entities.jsonkv_pairs.jsontable_index.jsonnormalized.jsonstructured_record.jsontraceability.jsonto-codeUse when the user wants implementation-oriented output from the parse result.
Supported targets:
reacthtml-cssjson-schemajupyter-notebookTypical outputs under task_output/:
component_map.jsonfield_schema.jsonui_blueprint.jsonnotes.mdtraceability.jsonapp.jsx, index.html, styles.css, schema.json, notebook.ipynb, or notebook_plan.jsonTreat all generated code and notebooks as drafts. Review them before running, publishing, or connecting them to real systems.
The published ClawHub bundle is intentionally CLI-first.
scripts/run_skill.pyscripts/check_env.pyscripts/smoke_test.pyDeveloper-only local UI helpers are kept out of the public release bundle.
Always follow these rules:
parsed.json.parsed.json, not raw OCR text alone.--out directory and remove artifacts after review.Default output folder:
./artifacts/<document_stem>/
Expected top-level outputs:
effective_config.jsonrun_report.jsonparsed.jsonparsed.mdresult_report.htmltask_output/to-code runs may also emit:
code_preview.htmlpython "{baseDir}/scripts/run_skill.py" \
--mode parse \
--file "/absolute/path/to/report.pdf" \
--out "/absolute/path/to/artifacts/report_parse"
python "{baseDir}/scripts/run_skill.py" \
--mode to-data \
--file "/absolute/path/to/invoice.pdf" \
--out "/absolute/path/to/artifacts/invoice_data" \
--extract "tables,entities,kv_pairs"
python "{baseDir}/scripts/run_skill.py" \
--mode to-code \
--file "/absolute/path/to/ui_mockup.png" \
--out "/absolute/path/to/artifacts/ui_code" \
--target "react" \
--title "Generated App"
python "{baseDir}/scripts/run_skill.py" \
--mode to-code \
--file "/absolute/path/to/architecture_diagram.png" \
--out "/absolute/path/to/artifacts/notebook_code" \
--target "jupyter-notebook" \
--title "OpenVINO Notebook"
/skill local-document-ai-openvino parse file=./docs/report.pdf
/skill local-document-ai-openvino to-data file=./docs/invoice.pdf extract=tables,entities,kv_pairs
/skill local-document-ai-openvino to-code file=./mockups/architecture.png target=jupyter-notebook
Start the local UI when the user wants an interactive demo page:
python "{baseDir}/scripts/serve_skill_ui.py"
The UI lets the user:
parse, to-data, or to-codeto-code targetThe bundled UI only allows preview/run access for local files under the skill directory and common user content folders such as Downloads, Documents, Desktop, and Pictures.
If a run fails:
error.json with failure detailsparse first when the downstream request is ambiguousPresent this skill as a local document-understanding workflow with downstream actions, not as a plain OCR wrapper.