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)
Depending on your files, you need to install differently.
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 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]
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]
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]
Using ReportMiner is just few lines of codes.
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.
# 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')
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)
- Added support for processing multiple technical files any format (PDF, Excel, Word, PowerPoint)
In the next version, the following will be implemented:
- Support for fine tuning with user reports of specific domain
- Integration with vector databases for robust document indexing