An intelligent multi-agent system for healthcare front desk operations, powered by LangGraph, RAG, and advanced ML models.
Features β’ Quick Start β’ Architecture β’ API Documentation β’ Development
- Overview
- Features
- Tech Stack
- Architecture
- Quick Start
- Configuration
- API Documentation
- Development
- Project Structure
- Contributing
- License
Zenith AI is a production-ready intelligent agent system designed for healthcare front desk operations. It combines the power of Large Language Models (LLMs), Retrieval-Augmented Generation (RAG), and multi-agent orchestration to handle inquiries, bookings, and database queries with human-like understanding and efficiency.
- π€ Multi-Agent Orchestration: Intelligent routing and task delegation using LangGraph
- π Semantic Search: Advanced RAG with vector embeddings and XGBoost reranking
- π¬ Natural Conversations: Context-aware chat interface with streaming responses
- π Booking Management: Automated appointment scheduling and management
- ποΈ Database Integration: Direct SQL query execution for real-time data access
- π ML Model Tracking: MLflow integration for model versioning and monitoring
- Intelligent Routing: Manager agent intelligently routes queries to specialized agents
- RAG-Powered Knowledge Base: Semantic search over document collections with reranking
- Streaming Responses: Real-time streaming for responsive user experience
- Multi-Thread Conversations: Session management with thread-based context
- Model Versioning: MLflow integration for tracking and deploying ML models
- Dockerized Deployment: Complete containerization with Docker Compose
- Manager Agent: Orchestrates workflow and routes to appropriate specialists
- Inquiry Agent: Handles information requests using RAG
- Booking Agent: Manages appointment scheduling and modifications
- General Agent: Handles general conversations and FAQs
- SQL Agent: Executes database queries for real-time data retrieval
- FastAPI - Modern, fast web framework for building APIs
- LangGraph - Multi-agent workflow orchestration
- LangChain - LLM application framework
- Pydantic - Data validation and settings management
- DeepInfra - LLM and embedding model hosting
- Qdrant - Vector database for semantic search
- XGBoost - Reranking model for search optimization
- MLflow - Model lifecycle management
- PostgreSQL - Primary relational database
- MinIO - S3-compatible object storage for ML artifacts
- Qdrant - Vector database for embeddings
- Gradio - Interactive web UI for chat interface
- Docker & Docker Compose - Containerization and orchestration
- uv - Fast Python package manager
Zenith AI follows a microservices architecture with clear separation of concerns:
βββββββββββββββ
β Gradio β Frontend UI (Port 7860)
β Frontend β
ββββββββ¬βββββββ
β HTTP
ββββββββΌβββββββ
β FastAPI β REST API (Port 8000)
β Backend β
ββββββββ¬βββββββ
β
ββββββββΌβββββββββββββββββββββββββββββββββββ
β LangGraph Workflow β
β ββββββββββββ ββββββββββββ βββββββββββ
β β Manager ββ β Inquiry β βBooking ββ
β β Agent β β Agent β β Agent ββ
β ββββββββββββ ββββββββββββ βββββββββββ
ββββββββ¬βββββββββββββββββββββββββββββββββββ
β
ββββββββΌβββββββ¬βββββββββββ¬βββββββββββ¬βββββββ
β Qdrant βPostgreSQLβ MLflow βDeepInfra
β (Vector) β (SQL) β (Models) β (LLM)
ββββββββββββββ΄βββββββββββ΄βββββββββββ΄βββββββ
For detailed architecture documentation, see ARCHITECTURE.md.
- Python 3.10, 3.11, or 3.12
- Docker and Docker Compose
- uv package manager (recommended) or pip
- DeepInfra API Token (Get one here)
-
Clone the repository
git clone https://github.com/ssabrut/zenith-ai.git cd zenith-ai -
Install dependencies
# Using uv (recommended) uv pip install -r requirements.txt # Or using pip pip install -r requirements.txt
-
Configure environment variables
cp .env.example .env # Edit .env with your configuration -
Start services with Docker Compose
make deploy # Or manually: docker compose up -d -
Access the application
- Gradio UI: http://localhost:7860
- API Docs: http://localhost:8000/docs
- MLflow UI: http://localhost:5050
- Qdrant Dashboard: http://localhost:6333/dashboard
- MinIO Console: http://localhost:9001
For local development without Docker:
-
Set environment variables
export IS_DOCKER=false # ... other environment variables
-
Start infrastructure services
docker compose up -d qdrant db mlflow_db s3
-
Run the FastAPI server
uvicorn core.main:app --reload --port 8000
-
Run the Gradio frontend (in another terminal)
python frontend/main.py
Create a .env file in the root directory with the following variables:
# Application
IS_DOCKER=false
SERVICE_NAME=front-desk-agent
APP_VERSION=0.1.0
# DeepInfra (LLM & Embeddings)
DEEPINFRA_API_TOKEN=your_token_here
DEEPINFRA_EMBEDDING_MODEL=Qwen/Qwen3-Embedding-8B
DEEPINFRA_CHAT_MODEL=your_chat_model
# Qdrant (Vector Database)
QDRANT_HOST=localhost
QDRANT_PORT=6333
QDRANT_COLLECTION=zenith_collection
# PostgreSQL
POSTGRES_USER=zenith_user
POSTGRES_PASSWORD=zenith_password
POSTGRES_DB=zenith_db
# MLflow
MLFLOW_TRACKING_URI=http://localhost:5050
MLFLOW_DB_USER=mlflow_user
MLFLOW_DB_PASSWORD=mlflow_password
MLFLOW_DB_NAME=mlflow_db
# MinIO (S3-compatible)
AWS_ACCESS_KEY_ID=minioadmin
AWS_SECRET_ACCESS_KEY=minioadmin
MLFLOW_S3_ENDPOINT_URL=http://localhost:9002
MLFLOW_S3_IGNORE_TLS=true
# MCP Server (Optional)
MCP_SERVER_URL=http://localhost:8001/sseGET /api/v1/healthPOST /api/v1/chat
Content-Type: application/json
{
"query": "What is the price of facial treatment?",
"thread_id": "unique-thread-id"
}Response: Streaming text/plain
Once the server is running, visit:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
zenith-ai/
βββ core/ # Core application logic
β βββ main.py # FastAPI application entry point
β βββ config.py # Configuration management
β βββ routers/ # API route handlers
β β βββ chat.py # Chat endpoint
β β βββ health.py # Health check endpoint
β βββ schemas/ # Pydantic models
β βββ services/ # External service clients
β βββ deepinfra/ # LLM service integration
β βββ qdrant/ # Vector database client
β βββ mlflow/ # MLflow client
βββ graph/ # LangGraph workflow
β βββ workflow.py # Graph definition
β βββ state.py # State management
β βββ agent/ # Agent implementations
β βββ node/ # Graph nodes
β βββ tools/ # Agent tools
βββ frontend/ # Gradio UI
β βββ main.py # Gradio application
βββ notebooks/ # Jupyter notebooks for development
βββ data/ # Data storage (gitignored)
βββ docker/ # Dockerfiles
βββ scripts/ # Utility scripts
βββ docker-compose.yml # Service orchestration
βββ pyproject.toml # Project dependencies
βββ requirements.txt # Compiled dependencies
The project uses:
- Black for code formatting
- isort for import sorting
- Pydantic for type validation
Format code:
black .
isort .# Add your test commands here
pytest tests/- Create agent class in
graph/agent/ - Create node class in
graph/node/ - Add node to workflow in
graph/workflow.py - Update routing logic in manager agent
# Using Alembic (if configured)
alembic upgrade head- MLflow: Track model versions, metrics, and artifacts
- Health Checks: Built-in health endpoints for monitoring
- Logging: Structured logging with Loguru
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PEP 8 style guidelines
- Write docstrings for all public functions
- Add type hints to function signatures
- Update documentation for new features
- Write tests for new functionality
This project is licensed under the MIT License - see the LICENSE file for details.
- LangChain for the LLM framework
- LangGraph for workflow orchestration
- FastAPI for the web framework
- Qdrant for vector search capabilities
For questions, issues, or contributions, please open an issue on GitHub.
Built with β€οΈ using LangGraph, FastAPI, and modern AI technologies
β Star this repo if you find it helpful!