Skip to main content

Easy to use wrapper for text document question and answer using RAG and LLM

Project description

image

ReportMiner is an easy-to-use wrapper for multimodal retrieval augmented generation (RAG) tasks for technical reports. With ReportMiner, you can use any HuggingFace or Byaldi and apply for your reports of any format (PDF, Excel, PPT)

🤖 Installation

Depending on your files, you need to install differently.

Basic package

Basic package means working with only PDF file format. Make sure to install Poppler first

!apt-get update
!apt-get install -y poppler-utils

on Linux OS

Then, install the package

pip install reportminer

Excel package

Excel package means working with XLS and PDF file format, which requires additional packages (Libgdiplus)

!apt-get update
!apt-get install -y poppler-utils
!sudo apt install -y libgdiplus
!sudo ln -s /usr/lib/libgdiplus.so /usr/lib/libgdiplus

on Linux OS

Then, install the package

pip install reportminer[xls]

Presentation package

Excel package means working with XLS and PPT file format, which requires additional packages to support Microsoft Office fonts

!apt-get update
!apt-get install -y poppler-utils
!sudo apt-get install -y ttf-mscorefonts-installer
!sudo apt-get install fonts-dejavu
!sudo apt-get install fonts-liberation

on Linux OS

Then, install the package

pip install reportminer[ppt]

Combined package

Excel package means working with XLS, PPT, and PDF file format, literally need all packages

!apt-get update
!apt-get install -y poppler-utils
!sudo apt-get install -y ttf-mscorefonts-installer
!sudo apt-get install fonts-dejavu
!sudo apt-get install fonts-liberation
!sudo apt install -y libgdiplus
!sudo ln -s /usr/lib/libgdiplus.so /usr/lib/libgdiplus

on Linux OS

Then, install the package

pip install reportminer[xls,ppt]

or

pip install reportminer[all]

🚀 Use RAG in 3 simple steps

Using ReportMiner is just few lines of codes.

1. Setup embedding model and visual language model

Here we will use ColPali-1.2 as our embedding model and SmolVLM as our visual language model (by default). This combination works very well even with free-tier Colab GPU T4 and low memory.

from reportminer import rag

# Setup embedding and VL model
rag_models = rag.setup_model()

If you have access to Colab Pro's GPU A100 and high memory, you can make advantage of Qwen2-VL as your visual language model and activate Flash Attention 2.

2. Upload your report

# Specify pdf file
pdf_file = '/content/15-9-19a-core.pdf'

# Process PDF report by converting into embeddings
rag_models = rag.process_PDF(pdf_file, rag_models, dpi=200, index_name='pvt-rag')

3. Perform query

There are 2 minimal tasks you can use with ReportMiner. First, you can retrieve relevant page taking advantage of the embedding model

rag.RAG('How is the Klinkenberg corrected gas horizontal permeability to porosity looks like at core 7?', 
        rag_models, k=1)

Second, you can ask a question, taking advantage of the visual language model

rag.Ask('How many cored intervals are there in the report? Mention the depth of each', rag_models)

👨‍💻 Features

  1. Added support for processing multiple technical files any format (PDF, Excel, Word, PowerPoint)

👨‍💻 Future development

In the next version, the following will be implemented:

  1. Support for fine tuning with user reports of specific domain
  2. Integration with vector databases for robust document indexing

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

reportminer-0.2.1.tar.gz (9.1 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: reportminer-0.2.1.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.11

File hashes

Hashes for reportminer-0.2.1.tar.gz
Algorithm Hash digest
SHA256 e2c300bd097d2444f0a17473790b50e5633e6ef1f310682fcdd7883fde56d13a
MD5 7428a1c2e55b382b8ff20011511a10b4
BLAKE2b-256 23fcea5319b2a71b0bf024cf33657aeddae1f8b115da5894d985a2f31bfa7ad0

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