Skip to main content

Search through a document using a chat interface

Project description

Doc Search

PyPI PyPI - Python Version PyPI - License

Converse with a book (PDF)

See tweet for full demo.


Documentation: https://namuan.github.io/dr-doc-search

Source Code: https://github.com/namuan/dr-doc-search

PyPI: https://pypi.org/project/dr-doc-search/


Pre-requisites

Installation

pip install dr-doc-search

Example Usage

There are two steps to use this application:

1. First, you need to create the index and generate embeddings for the PDF file. Here I'm using a PDF file generated from this page Parable of a Monetary Economy

Before running this, you need to set up your OpenAI API key. You can get it from OpenAI.

From version 1.5.0, you can skip OpenAI and use HuggingFace models to generate embeddings and answers.

export OPENAI_API_KEY=<your-openai-api-key>

The run the following command to start the training process:

dr-doc-search --train -i ~/Downloads/parable-of-a-monetary-economy-heteconomist.pdf

Use huggingface for generating embeddings:

dr-doc-search --train -i ~/Downloads/parable-of-a-monetary-economy-heteconomist.pdf --embedding huggingface

The training process generates some temporary files in the OutputDir/dr-doc-search/<pdf-name> folder under your home directory. Here is what it looks like:

 ~/OutputDir/dr-doc-search/parable-of-a-monetary-economy-heteconomist
$ tree
.
├── images
│ ├── output-1.png
│ ├── output-10.png
│ ├── output-11.png
...
│ └── output-9.png
├── index
│ ├── docsearch.index
│ └── index.pkl
├── parable-of-a-monetary-economy-heteconomist.pdf
└── scanned
    ├── output-1.txt
    ...
    └── output-9.txt

Note: It is possible to change the base of the output directory by providing the --app-dir argument.

2. Now that we have the index, we can use it to start asking questions.

dr-doc-search -i ~/Downloads/parable-of-a-monetary-economy-heteconomist.pdf --input-question "How did the attempt to reduce the debut resulted in decrease in employment?"

Or You can open up a web interface (on port :5006) to ask questions:

dr-doc-search --web-app -i ~/Downloads/parable-of-a-monetary-economy-heteconomist.pdf

To use huggingface model, provide the --llm argument:

dr-doc-search --web-app -i ~/Downloads/parable-of-a-monetary-economy-heteconomist.pdf --llm huggingface

There are more options for choose the start and end pages for the PDF file. See the help for more details:

dr-doc-search --help

Acknowledgements

Development

  • Clone this repository

  • Requirements:

  • Create a virtual environment and install the dependencies

poetry install
  • Activate the virtual environment
poetry shell

Validating build

make build

Release process

A release is automatically published when a new version is bumped using make bump. See .github/workflows/build.yml for more details. Once the release is published, .github/workflows/publish.yml will automatically publish it to PyPI.

Disclaimer

This project is not affiliated with OpenAI. The OpenAI API and GPT-3 language model are not free after the trial period.

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

dr_doc_search-1.6.2.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

dr_doc_search-1.6.2-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file dr_doc_search-1.6.2.tar.gz.

File metadata

  • Download URL: dr_doc_search-1.6.2.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.8.16 Linux/5.15.0-1033-azure

File hashes

Hashes for dr_doc_search-1.6.2.tar.gz
Algorithm Hash digest
SHA256 4eb19af8520635991bfa065a64654be55efa6c998592a40ed2beb4f2fde3fd21
MD5 33b3d7fac620e74b471a49ffd5c8028b
BLAKE2b-256 83ee09892c2cdcb204f0a4f2fe2c596b4039c6bf706f4c7573245cbb208ba513

See more details on using hashes here.

File details

Details for the file dr_doc_search-1.6.2-py3-none-any.whl.

File metadata

  • Download URL: dr_doc_search-1.6.2-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.2 CPython/3.8.16 Linux/5.15.0-1033-azure

File hashes

Hashes for dr_doc_search-1.6.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dea0b04a34317a04ae7d679ab3c061363755885c8f5dc8d4c56b6a08a438496c
MD5 eca3294bda19c479e911f94c6a010e32
BLAKE2b-256 f8f4b755688021fd1b1200dccbd1356f0c7b0621ee466ff9ed74bea8217627ae

See more details on using hashes here.

Supported by

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