Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ganesh2409/ask-my-pdf
The Document Buddy App is a user-friendly Streamlit application designed to enhance the way individuals interact with their PDF documents. Whether you're a student, researcher, or professional, this app provides powerful tools to simplify document management.
https://github.com/ganesh2409/ask-my-pdf
chat-with-pdf genai langchain python qdrant
Last synced: 25 days ago
JSON representation
The Document Buddy App is a user-friendly Streamlit application designed to enhance the way individuals interact with their PDF documents. Whether you're a student, researcher, or professional, this app provides powerful tools to simplify document management.
- Host: GitHub
- URL: https://github.com/ganesh2409/ask-my-pdf
- Owner: Ganesh2409
- Created: 2024-10-17T15:51:58.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-11-04T08:44:06.000Z (about 2 months ago)
- Last Synced: 2024-12-08T14:10:05.977Z (25 days ago)
- Topics: chat-with-pdf, genai, langchain, python, qdrant
- Language: Python
- Homepage:
- Size: 2.89 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# π ASK-MY-PDF
![Document Buddy App](logo.png)
**ASk MY PDF** is a powerful Streamlit-based application designed to simplify document management. Upload your PDF documents, create embeddings for efficient retrieval, and interact with your documents through an intelligent chatbot interface. π
## π οΈ Features
- **π Upload Documents**: Easily upload and preview your PDF documents within the app.
- **π§ Create Embeddings**: Generate embeddings for your documents to enable efficient search and retrieval.
- **π€ Chatbot Interface**: Interact with your documents using a smart chatbot that leverages the created embeddings.
- **π§ Contact**: Get in touch with the developer or contribute to the project on GitHub.
- **π User-Friendly Interface**: Enjoy a sleek and intuitive UI with emojis and responsive design for enhanced user experience.## π₯οΈ Tech Stack
The Document Buddy App leverages a combination of cutting-edge technologies to deliver a seamless and efficient user experience. Here's a breakdown of the technologies and tools used:
- **[LangChain](https://langchain.readthedocs.io/)**: Utilized as the orchestration framework to manage the flow between different components, including embeddings creation, vector storage, and chatbot interactions.
- **[Unstructured](https://github.com/Unstructured-IO/unstructured)**: Employed for robust PDF processing, enabling the extraction and preprocessing of text from uploaded PDF documents.
- **[BGE Embeddings from HuggingFace](https://huggingface.co/BAAI/bge-small-en)**: Used to generate high-quality embeddings for the processed documents, facilitating effective semantic search and retrieval.
- **[Qdrant](https://qdrant.tech/)**: A vector database running locally via Docker, responsible for storing and managing the generated embeddings for fast and scalable retrieval.
- **[LLaMA 3.2 via Ollama](https://ollama.com/)**: Integrated as the local language model to power the chatbot, providing intelligent and context-aware responses based on the document embeddings.
- **[Streamlit](https://streamlit.io/)**: The core framework for building the interactive web application, offering an intuitive interface for users to upload documents, create embeddings, and interact with the chatbot.## π Directory Structure
ASK-MY-PDF/
```
βββ app.py
βββ Attention Is All U Need.pdf
βββ chatbot.py
βββ logo.png
βββ README.md
βββ requirements.txt
βββ vectors.py
```## π Getting Started
Follow these instructions to set up and run the Document Buddy App on your local machine.
### 1. Clone the Repository
```bash
git clone https://github.com/Ganesh2409/ASK-MY-PDF.git
cd ASK-MY-PDF
```### 2. Create a Virtual Environment
You can either use Pythonβs venv or Anaconda to create a virtual environment for managing dependencies.
Option 1: Using venv
On Windows:
```
python -m venv venv```
Activate the venv
```
cd venv\Scripts\activate
```### 3. Install Dependencies
Once the environment is set up (whether venv or Conda), install the required dependencies using requirements.txt:
```bash
pip install -r requirements.txt
```
## 4. Running Qdrant in DockerTo run Qdrant using Docker, follow these steps:
1. **Install Docker**: Make sure you have Docker installed on your machine. You can download it from [Docker's official website](https://www.docker.com/get-started).
2. **Pull the Qdrant Docker Image**: Open your terminal and run the following command to pull the latest Qdrant image:
```bash
docker pull qdrant/qdrant
``````bash
docker run -p 6333:6333 qdrant/qdrant
```### 5. Run the App
Start the Streamlit app using the following command:
```bash
streamlit run app.py
```This command will launch the app in your default web browser. If it doesnβt open automatically, navigate to the URL provided in the terminal (usually http://localhost:8501).
### π€ Contributing
Contributions are welcome! Whether itβs reporting a bug, suggesting a feature, or submitting a pull request, your input is highly appreciated. Follow these steps to contribute:
1. Fork the Repository: Click on the βForkβ button at the top-right corner of the repository page.
2. Clone Your Fork
3. Create a New Branch:```bash
git checkout -b feature/YourFeatureName
```4. Make Your Changes: Implement your feature or fix.
5. Commit Your Changes:```bash
git commit -m "Add Your Feature Description"
```6. Push to Your Fork:
```bash
git push origin feature/YourFeatureName
```7. Create a Pull Request: Navigate to the original repository and create a pull request from your fork.
### π« Contact
β’ Email:[email protected] βοΈ
Feel free to reach out for any queries, suggestions, or contributions. Your feedback is invaluable!
### π Useful Links
β’ Streamlit Documentation: https://docs.streamlit.io/
β’ LangChain Documentation: https://langchain.readthedocs.io/
β’ Qdrant Documentation: https://qdrant.tech/documentation/
β’ ChatOllama Documentation: https://github.com/ollama/ollama
```
Β© 2024 ASK-MY-PDF. Made with β€οΈ
```