PDF reading code backed by Nvidia's nemotron-parse VLM.
For more info on nemotron-parse, check out:
- Technical blog: https://developer.nvidia.com/blog/turn-complex-documents-into-usable-data-with-vlm-nvidia-nemotron-parse-1-1/
- Hugging Face weights: https://huggingface.co/nvidia/NVIDIA-Nemotron-Parse-v1.1
- NIM and model card: https://build.nvidia.com/nvidia/nemotron-parse
- API docs: https://docs.nvidia.com/nim/vision-language-models/1.5.0/examples/nemotron-parse/overview.html#nemotron-parse-overview
- Cookbook: https://github.com/NVIDIA-NeMo/Nemotron/blob/main/usage-cookbook/Nemotron-Parse-v1.1/build_general_usage_cookbook.ipynb
- NGC catalog: https://catalog.ngc.nvidia.com/orgs/nim/teams/nvidia/containers/nemotron-parse
- AWS Marketplace: https://aws.amazon.com/marketplace/pp/prodview-ny2ngku2i4ge6
pip install paper-qa[nemotron]
# Or
pip install paper-qa-nemotronIf you want to prompt nemotron-parse hosted on AWS SageMaker:
pip install paper-qa-nemotron[sagemaker]To use nemotron-parse via the Nvidia API,
set the NVIDIA_API_KEY environment variable.
Then to directly access the reader:
from paperqa.types import ParsedText
from paperqa_nemotron import parse_pdf_to_pages
async def main(pdf_path) -> ParsedText:
return await parse_pdf_to_pages(pdf_path)Or use the reader within PaperQA:
from paperqa import Docs, PQASession, Settings
from paperqa_nemotron import parse_pdf_to_pages
async def main(pdf_path, question: str | PQASession) -> PQASession:
settings = Settings(parsing={"parse_pdf": parse_pdf_to_pages})
docs = Docs()
await docs.aadd(pdf_path, settings=settings)
return await docs.aquery(question, settings=settings)