This project is a full-stack AI-powered Medical Chatbot built with Retrieval-Augmented Generation (RAG). It provides accurate, contextual, and real-time responses to healthcare-related queries by combining the power of Large Language Models (LLMs) with document retrieval via Pinecone, orchestrated using LangChain, served through a Flask API, and deployed on AWS.
- Large Language Models (LLMs) - OpenAI GPT-3.5/4
- LangChain - Framework for managing chains and memory
- Pinecone - Vector DB for semantic search
- RAG (Retrieval-Augmented Generation) - Enhances LLM output with external context
- Flask - Lightweight backend to serve APIs
- AWS - EC2 (backend hosting), S3 (file storage), optional Lambda
graph TD
A[User Query] --> B[Flask API]
B --> C[LangChain Pipeline]
C --> D[Embed Query]
D --> E[Pinecone Search]
E --> F[Retrieve Relevant Docs]
F --> G[LLM with Prompt + Context]
G --> H[Final Response]
H --> I[Return to Frontend/UI]
Combines LLMs with document retrieval for reliable, grounded responses. Ensures answers are based on actual medical documents, not just model predictions.
Easily ingest your own medical documents (PDFs, DOCX, or plain text). Documents are embedded and stored in Pinecone for semantic search.
Supports memory for multi-turn interactions using LangChain's ConversationBufferMemory, enabling natural follow-up questions and continued context.
# How to run?
### STEPS:
Clone the repository
```bash
git clonehttps://github.com/entbappy/Build-a-Complete-Medical-Chatbot-with-LLMs-LangChain-Pinecone-Flask-AWS.git
conda create -n medibot python=3.10 -yconda activate medibotpip install -r requirements.txtPINECONE_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
OPENAI_API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"# run the following command to store embeddings to pinecone
python store_index.py# Finally run the following command
python app.pyNow,
open up localhost:- Python
- LangChain
- Flask
- GPT
- Pinecone
#with specific access
1. EC2 access : It is virtual machine
2. ECR: Elastic Container registry to save your docker image in aws
#Description: About the deployment
1. Build docker image of the source code
2. Push your docker image to ECR
3. Launch Your EC2
4. Pull Your image from ECR in EC2
5. Lauch your docker image in EC2
#Policy:
1. AmazonEC2ContainerRegistryFullAccess
2. AmazonEC2FullAccess
- Save the URI: 315865595366.dkr.ecr.us-east-1.amazonaws.com/medicalbot
#optinal
sudo apt-get update -y
sudo apt-get upgrade
#required
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker ubuntu
newgrp docker
setting>actions>runner>new self hosted runner> choose os> then run command one by one
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- AWS_DEFAULT_REGION
- ECR_REPO
- PINECONE_API_KEY
- OPENAI_API_KEY