This project is a chatbot that answers user questions based on articles from the COTO Resources page. The chatbot uses an LLM (OpenAI) with document embeddings stored in a vector database for fast and accurate responses.
- Frontend: React + Vite + TailwindCSS
- Backend: Python + FastAPI + LangChain
- Scraping: BeautifulSoup + Requests
- Storage: ChromaDB (Vector Database)
- LLM: OpenAI API - GPT-4o mini and text-embedding-ada-002
- Deployment: Docker + Cloudflare Tunnel
git clone https://github.com/your-repo/COTO-ChatBot.git
cd COTO-ChatBotCreate the backend .env file:
echo "OPENAI_API_KEY=your-openai-api-key" > backend/.envCreate the frontend .env file:
echo "VITE_API_BASE_URL=http://localhost:8000" > .envdocker build -t chatotp .docker run -d -p 8000:8000 -p 8501:8501 \
-v ~/docker/chatotp/COTO-ChatBot/backend/chroma_db:/app/backend/chroma_db \
--restart unless-stopped \
--name chatotp chatotp- Frontend: Open http://localhost:8501
- Backend API: Open http://localhost:8000/docs for FastAPI Swagger UI
![]() |
![]() |
|---|---|
| Main Page | Chat Response |
![]() |
![]() |
|---|---|
| Additional Features | Swagger FastAPI |



