Skip to main content

Universal Document Agent for extracting and analyzing various documents with Ollama support.

Project description

UniversalDocAgent (unidoc_agent) UniversalDocAgent is a Python package designed to intelligently detect document types and automatically extract or summarize their contents using a set of specialized tools. It supports a wide range of file types such as PDFs, Word documents, emails, source code, Excel files, XML, OCR-recognizable images, and plain text. You can optionally integrate with an LLM backend like Ollama to generate summaries and maintain conversation history across sessions.

🚧 Installation pip install .

Run this from the root directory of your cloned project or package.

📂 Supported Document Types

File Type

Handled By

.pdf

PDFTool

.docx

WordTool

.txt

TextTool

.py/.js/etc.

CodeTool

.eml

EmailTool

.xlsx

ExcelTool

.jpg/.png/etc.

OCRTool

.xml

XMLTool

🚀 Usage Examples

  1. Extracting Content from unidoc_agent.agent import read_document

file_path = "sample.pdf" content = read_document(file_path) print(content)

  1. Summarizing Content summary = read_document("example.docx", summarize=True) print(summary)

🧠 Advanced: Use Ollama LLM Backend Custom LLM model or session from unidoc_agent.agent import UniversalDocAgent from unidoc_agent.agent import tools

agent = UniversalDocAgent(tools=tools, llm_backend="ollama") summary = agent.summarize_content("report.txt") print(summary)

💬 Conversation History with OllamaClient The OllamaClient class is used internally to manage conversation context for summarization.

Caching: Stores conversation history locally in ~/.unidoc_ollama_cache/{model}_{session_id}.json

Session Management: Custom session IDs let you manage multiple user contexts

Clearing History from unidoc_agent.ollama_client import OllamaClient

client = OllamaClient(session_id="user123") client.clear_history()

🔧 API Reference read_document(file_path, summarize=False)

file_path: Path to the input document

summarize: If True, returns a summary via LLM; else returns extracted content

UniversalDocAgent

extract_content(file_path): Extracts raw content

summarize_content(file_path): Summarizes content using the selected tool + LLM

🔮 Tests Make sure you have pytest or unittest installed:

pytest

Or:

python -m unittest discover tests/

📄 License This project is licensed under the MIT License. See the LICENSE file for details.

📊 Use Cases ✉️ Email Parsing Automatically extract the body of .eml files and summarize them.

📄 Document Summary Get concise summaries of long reports, manuals, or meeting notes.

📈 Spreadsheet Reader Read .xlsx Excel files and extract tables or data grids.

🔧 OCR Scanning Use OCRTool to read text from images (e.g., scanned receipts).

📁 Source Code Insight Extract and analyze comments or logic from .py or .js files.

📖 Multi-format Aggregation Use the same interface (read_document) for any supported format.

🚀 Contributing Pull requests are welcome. Please open issues for bugs or feature requests.

✨ Acknowledgements Thanks to OpenAI, Ollama, and the open-source contributors whose tools helped build this module.

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

unidoc_agent-0.2.1.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

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

unidoc_agent-0.2.1-py3-none-any.whl (9.5 kB view details)

Uploaded Python 3

File details

Details for the file unidoc_agent-0.2.1.tar.gz.

File metadata

  • Download URL: unidoc_agent-0.2.1.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.12

File hashes

Hashes for unidoc_agent-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ff440010c250a87791b0421b47d1c36e3b1bf0daa571b951fcb804600e7d0014
MD5 e1af6d20dff4d752be94dff406763845
BLAKE2b-256 be515aa72977dd26235f95b106b6f4e4c9b9c104203838617bd5c333a8d1e4dc

See more details on using hashes here.

File details

Details for the file unidoc_agent-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: unidoc_agent-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 9.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.12

File hashes

Hashes for unidoc_agent-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4a2851e0b749f8f093e0b354738dd207242c3b84265c52736751ffa73012cc32
MD5 3fea295f8dd8e1eeaf0a7be6c5631f8d
BLAKE2b-256 dc48ea5ae1476db43457a591c474ea196a8f2370857016fbb1ba05fa8baee957

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