`# Dify Documentation Expert (RAG Chatbot) A Retrieval-Augmented Generation (RAG) chatbot for Dify documentation, using MiniLM for semantic search and DistilBERT for answer generation. Built with Python, Flask, LangChain, and FAISS. Deployable on Vercel. --- ## Features - Scrapes and processes Dify documentation - Builds a FAISS vector store with MiniLM embeddings - Uses DistilBERT for question answering - Fast API with `/ask` and `/health` endpoints - Ready for serverless deployment (Vercel) --- ## Project Structure ``` Dify-Expert/ ├── api/ │ └── dify_api.py # Flask API (entry point for Vercel) ├── dify_docs_scraper/ │ ├── dify_rag.py # RAG logic (vector store + QA) │ ├── dify_faiss_index/ # FAISS index files │ └── ... # Scraper, processing scripts, etc. ├── requirements.txt # Python dependencies ├── vercel.json # Vercel config ├── README.md # This file └── futurescope.md # Project roadmap/ideas ``` --- ## Quickstart ### 1. Install dependencies ```bash pip install -r requirements.txt ``` ### 2. Build the vector store (if not already built) ```bash python3 dify_docs_scraper/build_vector_store.py ``` ### 3. Run locally (API) ```bash python3 api/dify_api.py ``` ### 4. Query the API ```bash curl -X POST http://localhost:8000/ask \ -H "Content-Type: application/json" \ -d '{"question": "What is Dify?"}' ``` --- ## Deployment (Vercel) 1. Push to GitHub. 2. Connect repo to Vercel. 3. Deploy (Vercel auto-detects Python from requirements.txt). 4. Endpoints: - `/ask` (POST) - `/health` (GET) --- ## API Endpoints - `POST /ask` — `{ "question": "..." }` → `{ "answer": ..., "score": ..., "sources": [...] }` - `GET /health` — `{ "status": "ok" }` --- ## Roadmap See [`futurescope.md`](futurescope.md) for planned features and ideas. --- ## License MIT