Skip to main content

Convert any document, text, or URL into LLM-ready data format with advanced neural OCR capabilities powered by state-of-the-art pre-trained models

Project description

LLM Data Converter v2.0.0

Convert any document, text, or URL into LLM-ready data format with advanced neural OCR capabilities powered by state-of-the-art pre-trained models.

Installation

pip install llm-data-converter

Requirements:

  • Python 3.8 or higher

System Dependencies for Neural OCR

For neural OCR functionality to work properly, you may need to install additional system dependencies:

Ubuntu/Debian:

sudo apt update
sudo apt install -y libgl1 libglib2.0-0 libgomp1
pip install setuptools

macOS:

# Usually not needed, but if you encounter OpenGL issues:
brew install mesa

Note: The package will automatically download and cache neural models on first use.

Quick Start

from llm_converter import FileConverter

# Basic conversion with neural OCR
converter = FileConverter()
result = converter.convert("document.pdf").to_markdown()
print(result)

Features

  • Multiple Input Formats: PDF, DOCX, TXT, HTML, URLs, Excel files, and more
  • Multiple Output Formats: Markdown, HTML, JSON, Plain Text
  • LLM Integration: Seamless integration with LiteLLM and other LLM libraries
  • Local Processing: Process documents locally without external dependencies
  • Layout Preservation: Maintain document structure and formatting
  • Neural OCR: Advanced document understanding powered by state-of-the-art pre-trained models:
    • Layout Detection: Neural models for document structure understanding
    • Text Recognition: High-accuracy OCR with confidence scoring
    • Table Structure: Intelligent table detection and parsing with proper markdown output
    • Automatic Model Download: Models are automatically downloaded and cached

Neural Document Processing

Version 2.0.0 introduces advanced neural document processing capabilities:

Neural OCR (Default)

Uses state-of-the-art pre-trained models for superior accuracy:

  • Layout Detection: Advanced neural models for document structure understanding
  • Text Recognition: High-accuracy OCR with confidence scoring
  • Table Structure: Intelligent table detection and parsing with proper markdown output
  • Automatic Model Download: Models are automatically downloaded on first use
  • Document Understanding: Comprehensive document analysis beyond simple OCR

Usage Examples

Convert PDF to Markdown

from llm_converter import FileConverter

converter = FileConverter()
result = converter.convert("document.pdf").to_markdown()
print(result)

Convert URL to HTML

from llm_converter import FileConverter

converter = FileConverter()
result = converter.convert_url("https://example.com").to_html()
print(result)

Convert Excel to JSON

from llm_converter import FileConverter

converter = FileConverter()
result = converter.convert("data.xlsx").to_json()
print(result)

Chain with LLM

from llm_converter import FileConverter
from litellm import completion

converter = FileConverter()
document_content = converter.convert("report.pdf").to_markdown()

# Use with any LLM
response = completion(
    model="openai/gpt-4o",
    messages=[
        {"role": "system", "content": "You are a helpful assistant that analyzes documents."},
        {"role": "user", "content": f"Summarize this document:\n\n{document_content}"}
    ]
)

print(response.choices[0].message.content)

Supported Formats

Input Formats

  • Documents: PDF, DOCX, TXT
  • Web: URLs, HTML files
  • Data: Excel (XLSX, XLS), CSV
  • Images: PNG, JPG, JPEG (with neural OCR capabilities)

Output Formats

  • Markdown: Clean, structured markdown with proper table formatting
  • HTML: Formatted HTML with styling
  • JSON: Structured JSON data
  • Plain Text: Simple text extraction

Advanced Usage

Custom Configuration

from llm_converter import FileConverter

converter = FileConverter(
    preserve_layout=True,
    include_images=True,
    ocr_enabled=True   
)

result = converter.convert("document.pdf").to_markdown()
print(result)

Batch Processing

from llm_converter import FileConverter

converter = FileConverter()
files = ["doc1.pdf", "doc2.docx", "doc3.xlsx"]

results = []
for file in files:
    result = converter.convert(file).to_markdown()
    results.append(result)

Testing Neural OCR

# Test the neural OCR capabilities
from llm_converter.pipeline.neural_document_processor import NeuralDocumentProcessor

# Initialize neural document processor
processor = NeuralDocumentProcessor()

# Extract text with layout awareness
text = processor.extract_text_with_layout("sample.png")
print(text)

API Reference

FileConverter

Main class for converting documents to LLM-ready formats.

Methods

  • convert(file_path: str) -> ConversionResult: Convert a file to internal format
  • convert_url(url: str) -> ConversionResult: Convert a URL page contents to internal format
  • convert_text(text: str) -> ConversionResult: Convert plain text to internal format

ConversionResult

Result object with methods to export to different formats.

Methods

  • to_markdown() -> str: Export as markdown
  • to_html() -> str: Export as HTML
  • to_json() -> dict: Export as JSON
  • to_text() -> str: Export as plain text

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Third-Party Dependencies

This project uses several third-party libraries:

All dependencies are used in accordance with their respective licenses.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llm_data_converter-2.0.3.tar.gz (27.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llm_data_converter-2.0.3-py3-none-any.whl (38.7 kB view details)

Uploaded Python 3

File details

Details for the file llm_data_converter-2.0.3.tar.gz.

File metadata

  • Download URL: llm_data_converter-2.0.3.tar.gz
  • Upload date:
  • Size: 27.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.18

File hashes

Hashes for llm_data_converter-2.0.3.tar.gz
Algorithm Hash digest
SHA256 ad92cf5f916c814aab1f3f2c74cebd470749787f1edc65c08e49bcf8511ee128
MD5 a83db07ad43f498748c93c2d6485c6fa
BLAKE2b-256 994162e4cf9d189eb8df262aff1dbd12b0421b0c2e125b08bc179ec3c65bebb7

See more details on using hashes here.

File details

Details for the file llm_data_converter-2.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for llm_data_converter-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a7ef290aa87b7cdde3bcdf438cb3c914f3730cab365dda13c01174482a5c7d73
MD5 a0bc087a3f80cb5294d532893d94d379
BLAKE2b-256 ea5d3e0e22f6dd8a7f06de6c043e04d1f458a2729f29713a11c1e57f3643eac9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page