Gemini PDF Chatbot is a Streamlit-based application that allows users to chat with a conversational AI model trained on PDF documents. The chatbot extracts information from uploaded PDF files and answers user questions based on the provided context.
- PDF Upload: Users can upload multiple PDF files.
- Text Extraction: Extracts text from uploaded PDF files.
- Conversational AI: Uses the Gemini conversational AI model to answer user questions.
- Chat Interface: Provides a chat interface to interact with the chatbot.
If you have docker installed, you can run the application using the following command:
-
Obtain a Google API key and set it in the
.env
file.GOOGLE_API_KEY=your_api_key_here
docker compose up --build
Your application will be available at http://localhost:8501.
First, build your image, e.g.: docker build -t myapp .
.
If your cloud uses a different CPU architecture than your development
machine (e.g., you are on a Mac M1 and your cloud provider is amd64),
you'll want to build the image for that platform, e.g.:
docker build --platform=linux/amd64 -t myapp .
.
Then, push it to your registry, e.g. docker push myregistry.com/myapp
.
Consult Docker's getting started docs for more detail on building and pushing.
Follow these instructions to set up and run this project on your local machine.
Note: This project requires Python 3.10 or higher.
-
Clone the Repository:
git clone https://github.com/your-username/gemini-pdf-chatbot.git
-
Install Dependencies:
pip install -r requirements.txt
-
Set up Google API Key:
- Obtain a Google API key and set it in the
.env
file.
GOOGLE_API_KEY=your_api_key_here
- Obtain a Google API key and set it in the
-
Run the Application:
streamlit run main.py
-
Upload PDFs:
- Use the sidebar to upload PDF files.
- Click on "Submit & Process" to extract text and generate embeddings.
-
Chat Interface:
- Chat with the AI in the main interface.
app.py
: Main application script..env
: file which will contain your environment variable.requirements.txt
: Python packages required for working of the app.README.md
: Project documentation.
- PyPDF2
- langchain
- Streamlit
- google.generativeai
- dotenv
- Google Gemini: For providing the underlying language model.
- Streamlit: For the user interface framework.