Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

76 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Chat Bot RAG Showcase

Build Status Coverage Status Docker Pulls Docs

A production-grade, AI-powered chat platform built with FastAPI microservices, LangGraph RAG workflows, and a Vue.js frontend β€” designed to showcase clean architecture, real-time messaging, and full CI/CD readiness.

@startuml
skinparam monochrome true
skinparam defaultFontName Arial

rectangle "Client" as client
rectangle "Nginx" as nginx
rectangle "Auth Service" as auth
rectangle "Chat Service" as chat
rectangle "Admin Service" as admin
rectangle "PostgreSQL" as postgres
rectangle "Redis" as redis

client --> nginx
nginx --> auth
nginx --> chat
nginx --> admin

auth --> postgres
chat --> postgres
chat --> redis
admin --> postgres

note right of chat
  Uses LangGraph for
  enhanced RAG workflows
end note

note right of postgres
  Stores users, sessions,
  chat history
end note

note right of redis
  Caching & session
  management
end note

@enduml

Services Overview

Service Description Docs
Auth Service JWT-based authentication, registration, role-based access control docs
Chat Service LangGraph-powered RAG chat with SSE streaming and session document retrieval docs
Admin Service User management, system dashboard, analytics, and data export docs
API Gateway Nginx reverse proxy with load balancing and rate limiting docs
Frontend Vue 3 + Tailwind CSS responsive SPA with dark/light mode docs
Common Shared utilities, config, models, and monitoring across services docs

πŸš€ Demo & Screenshots

User Interface Overview

Our chat system features a modern, responsive web interface built with Vue.js and Tailwind CSS:

πŸ” Authentication & Login

Login Panel Secure authentication system with JWT tokens and role-based access control

πŸ“Š Dashboard

Dashboard Comprehensive dashboard with system statistics, user activity, and quick access to all features

πŸ’¬ Chat Interface

Chat Interface Intuitive chat interface with real-time messaging, conversation history, and AI-powered responses

βš™οΈ Admin Panel

Admin Panel Powerful administrative interface for user management, system monitoring, and configuration

Live Demo

🌐 Live demo: Not deployed β€” clone the repo and run docker compose up (see Implementation Status).

πŸ“– Full Documentation: https://artaasd95.github.io/chat-bot-RAG-showcase/

πŸ“– API Documentation: Available at /docs when running locally


✨ Features

Core Features

  • Multiple LLM Providers: OpenAI, DeepSeek, and extensible provider support
  • LangGraph RAG Workflows: Advanced conversation graphs with API tool calling, history management, and conditional routing
  • Streaming Chat: SSE (POST /chat/stream) for incremental responses
  • Persistent Conversations: Chat history with context management across sessions
  • JWT Authentication: Secure token-based auth with role-based access control (user/admin)
  • Admin Dashboard: User management, system monitoring, analytics, and configuration

Architecture

  • Microservices: Dedicated auth, chat, admin services with shared common library
  • Dockerized: Full Docker Compose setup for development and production
  • API Gateway: Nginx reverse proxy with security headers and rate limiting
  • PostgreSQL + Redis: Relational persistence with caching and session management
  • Async-First: Fully asynchronous Python with FastAPI and asyncpg

Developer Experience

  • Comprehensive Logging: Structured logging with loguru and rotation policies
  • Monitoring: Prometheus / Grafana integration and OpenTelemetry metrics
  • Testing: Backend pytest unit suite (~40 test modules); frontend tests not yet configured
  • CI/CD Ready: GitHub Actions for lint, test, build, and deploy
  • Documentation: MkDocs Material site with architecture, API, and deployment guides

Frontend

  • Vue 3 + Vite: Modern, fast development and build tooling
  • Tailwind CSS: Responsive design with dark/light mode
  • Pinia State Management: Type-safe stores for auth, chat, notifications
  • Streaming Chat: SSE endpoint (POST /chat/stream) for token-by-token responses

Quick Start

Prerequisites

  • Docker & Docker Compose
  • OpenAI or DeepSeek API key

Run with Docker Compose

git clone https://github.com/artaasd95/chat-bot-RAG-showcase.git
cd chat-bot-RAG-showcase
cp .env.example .env    # Edit with your API keys
docker compose up --build

Visit http://localhost:3000 for the frontend or http://localhost:8000/docs for the API docs.

Run Locally (Development)

# Backend
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
uvicorn services.api.main:app --reload --port 8000

# Frontend
cd frontend
npm install
npm run dev

Project Structure

.
β”œβ”€β”€ services/              # Backend microservices
β”‚   β”œβ”€β”€ auth/             # Authentication service
β”‚   β”œβ”€β”€ chat/             # LangGraph chat service
β”‚   β”œβ”€β”€ admin/            # Admin dashboard service
β”‚   β”œβ”€β”€ api/              # API gateway entry point
β”‚   └── common/           # Shared utilities, config, models
β”œβ”€β”€ frontend/              # Vue 3 + Tailwind SPA
β”œβ”€β”€ infra/                 # Infrastructure
β”‚   β”œβ”€β”€ docker/           # Dockerfiles
β”‚   └── k8s/              # Kubernetes manifests (optional)
β”œβ”€β”€ docs/                  # MkDocs documentation site
β”œβ”€β”€ tests/                 # Backend test suite
β”œβ”€β”€ ci/                    # CI/CD scripts
β”œβ”€β”€ docker-compose.yml     # Production compose
β”œβ”€β”€ docker-compose.dev.yml # Development compose
└── mkdocs.yml             # Documentation config

Why This Project?

Technology Why
FastAPI Async-first Python framework with automatic OpenAPI docs, Pydantic validation, and industry-leading performance
LangGraph State-machine-based graph orchestration for complex RAG workflows β€” more controllable than chains
Vue 3 + Vite Lightweight, reactive frontend with fast HMR and composition API for clean component logic
Tailwind CSS Utility-first CSS that keeps styles consistent and bundle sizes small
Docker Compose Single-command environment parity across dev, CI, and production
MkDocs Material Write documentation in Markdown, publish as a polished static site with search and theming

What I'd Build in Your Org in 90 Days

  1. Weeks 1–2: Production pgvector retrieval, honest docs, green CI, API contract tests
  2. Weeks 3–4: Streaming chat UX, citation sidebar, ingestion progress, seeded demo KB
  3. Weeks 5–8: SSO (Azure AD), hybrid search + reranking, evaluation harness (RAGAS), observability dashboards
  4. Weeks 9–12: Multi-tenant knowledge bases, object storage for uploads, load testing, live SaaS demo

See docs/IMPLEMENTATION_STATUS.md for current vs planned features.


Documentation

Comprehensive documentation is available as an MkDocs site:

  • Implementation Status β€” Feature truth table synced with the codebase
  • Architecture β€” System design, service communication, and deployment models
  • API Reference β€” Complete endpoint docs with request/response examples
  • Getting Started β€” Step-by-step setup guide with troubleshooting
  • Security β€” Hardening checklist, BYOK support, and best practices
  • Deployment β€” Docker, Kubernetes, and production configuration

License

MIT

About

A comprehensive AI-powered chat system built with modern microservices architecture, featuring LangGraph, FastAPI, and a beautiful Vue.js frontend. The system provides enterprise-grade chat capabilities with advanced AI integration, user management, and administrative controls.

Topics

Resources

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages