A retrieval-augmented generation chatbot that answers audit and accounting questions. It connects to Confluence, retrieves internal knowledge base and generates the grounded answers with reference sources.
- Audit relies on large amounts of internal guidance and technical documentation.
- Finding the right information can take time, especially when it is spread across pages.
- Professionals may spend significant time trying different keywords and opening several documents to find what they need.
- This reduces time available for analysis, review and professional judgement.
| Layer | Technology | Purpose |
|---|---|---|
| Frontend | React,Vite | Provides the chat interface |
| Backend | FastAPI,Python | Handles API requests |
| Knowledge Base | Confluence REST API | Retrieves internal documentation |
| Vector Database | Qdrant Cloud | Stores embeddings and performs semantic search |
| Embeddings | Gemini-Embedding-001 | Converts questions and document chunks into vectors |
| LLM | Gemini 2.5 Flash | Generates answers using retrieved contents |
| Deployment | AWS EC2 via Docker Compose + GitHub Actions CI/CD | Hosts the containerised app and automates deployment |
Prerequisites: Docker Desktop, a Gemini API key, and a Qdrant Cloud account.
- Clone the repo
git clone https://github.com/Lanting687/RAG.git
cd RAG- Create
backend/.envwith your credentials
GEMINI_API_KEY=your_key
GEMINI_CHAT_ENDPOINT=https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=your_key
GEMINI_EMBEDDINGS_ENDPOINT=https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-001:embedContent?key=your_key
QDRANT_URL=your_qdrant_cloud_url
QDRANT_API_KEY=your_qdrant_api_key
CONFLUENCE_BASE_URL=https://your-domain.atlassian.net/wiki
CONFLUENCE_USERNAME=your_email
CONFLUENCE_API_TOKEN=your_confluence_token- Create a root
.envfor the frontend
VITE_API_URL=http://localhost:8000- Build and start
docker compose up --build- Open http://localhost in your browser