--- license: apache-2.0 pipeline_tag: image-to-text library_name: transformers tags: - ocr - pdf - markdown - office --- ## anyparse models hub **AnyParse** is a powerful multimodal document parsing and understanding engine designed to seamlessly convert complex files into structured Markdown and JSON formats. Whether it's basic text processing, professional document conversion, or advanced Vision-Language Models (VLM) and OCR recognition, AnyParse provides a comprehensive, one-stop solution. ### Core Capabilities - **Multimodal Document Understanding:** Supports cross-modal parsing of images and documents. By combining OCR and VLM technologies, it accurately extracts unstructured data. - **Comprehensive Format Coverage:** Easily parses office documents, web pages, spreadsheets, e-books, and emails with a single tool. - **Structured Output:** Transforms complex files into standardized Markdown and JSON, streamlining downstream data processing and Large Language Model (LLM) applications. ### Key Features - **Documents & Layouts:** PDF, DOCX, PPTX, XLSX, EPUB, IPYNB - **Text & Markup:** TXT, MD, RST, HTML/XHTML/HTM/SHTML - **Spreadsheets & Data:** CSV, TSV - **Images & Multimedia:** PNG, JPEG/JPG - **Others:** EML (Emails) - **Built-in CLI, FastAPI** - **Supports running in a pure CPU environment, and also supports GPU** - Output text in human reading order, suitable for single-column, multi-column and complex layouts - Retain the original document structure, including titles, paragraphs, lists, etc. - Extract images, image descriptions, tables, table titles and footnotes - Automatically identify and convert formulas in documents to LaTeX format - Automatically identify and convert tables in documents to HTML format ### resources - **repo: [AnyParse](https://github.com/anyforge/anyparse)** - **docs: [AnyParse docs](https://anyforge.github.io/anyparse)** - **pypi: [anyparse-python](https://pypi.org/project/anyparse-python/)** - **[ModelScope Skills](https://www.modelscope.cn/skills/anyforge/anyparse-skill)** - **[SkillHub](https://skillhub.cn/skills/anyparse-skill)** - **[ClawHub](https://clawhub.ai/anyforge/skills/anyparse-skill)** ```bash pip install anyparse-python ``` please download `config/config.yaml` from [AnyParse](https://github.com/anyforge/anyparse) into your project directory. ### Download Models ```bash # use modelscope (default) export ANYPARSE_MODEL_MIRROR="modelscope" # use huggingface export ANYPARSE_MODEL_MIRROR="huggingface" # download models anyparse-cli download --config config/config.yaml --model ``` ### Models Hub - [AnyParse Models Hub ModelScope](https://www.modelscope.cn/models/anyforge/anyparse-models-hub) - [AnyParse Models Hub HuggingFace](https://huggingface.co/anyforge/anyparse-models-hub) ### Python ```python # Sync from anyparse import AnyParser model = AnyParser(config="config/config.yaml") res = model.invoke(file = "/path/to/your_file") # or Async from anyparse import AsyncAnyParser model = AsyncAnyParser(config="config/config.yaml") res = await model.ainvoke(file = "/path/to/your_file") ``` ### CLI ```bash # help anyparse-cli --help # parse file anyparse-cli parse --config config/config.yaml --file /path/to/your_file # start api server anyparse-cli api --config config/config.yaml # see allowed file types anyparse-cli allow --config config/config.yaml # see commands help anyparse-cli [COMMAND] --help ``` ### API - start api server ```bash # start fastapi server and openai proxy ## use restful api or openai client call anyparse-cli api --config config/config.yaml --host 0.0.0.0 --port 18007 --seckey 'your_custom_secret_key' ``` - call api ```python # openai from openai import OpenAI client = OpenAI( base_url = "http://localhost:18007/anyparse/openai/v1", api_key = "your_custom_secret_key", ) ## get model id and allowed file types print(client.models.list()) ## parse file import base64 with open("1.pdf", "r", encoding="utf-8") as f: text_content = f.read() encoded_bytes = base64.b64encode(text_content.encode('utf-8')) base64_str = encoded_bytes.decode('utf-8') response = client.chat.completions.create( model="anyparse", messages=[ { "role": "user", "content": [ { "type": "file", "file": { "file_data": f"data:application/pdf;base64,{base64_str}" } } ] } ], # data:application/pdf;base64 prefix follow: client.models.list().data[0].allow_mimetypes # extra_body={ # "runtimes_args": { # "use_doc_layout": True # } # } ) print(response.choices[0].message.content) # or restful import requests as rq headers = { "Authorization": "Bearer your_custom_secret_key" } url = "http://localhost:18007/anyparse/invoke/v1" args = { "use_doc_cls": False, "use_doc_rectifier": False, "use_doc_layout": True } file = '/path/to/your_file' files = { 'file': open(file,'rb') } res = rq.post(url, files = files, data = args, headers = headers) print(res.json()) ```