An AI-powered chatbot built with Streamlit that allows users to upload PDF documents and have interactive conversations about their content using OpenAI and LangChain.
- PDF Upload & Processing — Upload single or multiple PDF files for analysis
- Conversational Q&A — Ask questions about your documents in natural language
- Vector Search — Uses FAISS for efficient semantic similarity search
- Conversation Memory — Maintains chat context across multiple questions
- Animated UI States — Visual feedback with animated states (reading, thinking, welcoming)
- LLM: OpenAI GPT-3.5 Turbo
- Embeddings: OpenAI Embeddings
- Vector Store: FAISS
- Text Processing: LangChain CharacterTextSplitter
- PDF Parsing: PyPDF2
- Framework: Streamlit
PDF Upload → Text Extraction → Chunking → Embeddings → FAISS Vector Store
↓
User Question → Semantic Search → Relevant Chunks → LLM → Answer
- Clone the repository
git clone https://github.com/nofaukost/Streamlit-Chatbot.git
cd Streamlit-Chatbot- Install dependencies
pip install -r requirements.txt- Set up environment variables
echo "OPENAI_API_KEY=your_api_key_here" > .env- Run the app
streamlit run app.py├── app.py # Main Streamlit application
├── htmlTemplates.py # HTML/CSS templates for chat UI
├── requirements.txt # Python dependencies
├── *.gif # Animated UI state indicators
└── .env # Environment variables (not tracked)
MIT