JARVIS is a sophisticated multi-agent system built on the LangGraph framework. It goes beyond a simple chatbot, providing a suite of AI agents that collaborate to perform a variety of intelligent tasks based on your local data. With a user-friendly startup script, JARVIS makes complex setup processes effortless, allowing you to harness the power of personalized AI assistants.
- Multi-Agent Architecture: Powered by LangGraph, JARVIS orchestrates multiple specialized AI agents (Chatbot, Coding, Dashboard, Recommendation) that work together to handle complex tasks.
- Personalized RAG: The system builds a Retrieval-Augmented Generation (RAG) pipeline based on your local files. You select the folders, and JARVIS uses them as a knowledge base to provide contextually accurate answers.
- Automated Environment Setup: A single
start.pyscript checks for dependencies (Docker, Python packages), configures the environment, and launches all necessary services. - User-Friendly Interface: Features a desktop floating chat widget for easy access and a GUI-based setup process for user surveys and folder selection.
- Data-Driven Intelligence: Automatically collects and indexes data from your selected files, enabling agents to provide personalized insights, visualizations, and recommendations.
JARVIS is composed of a FastAPI backend, a user-facing frontend, and a suite of intelligent agents.
- API Server (
main.py): A FastAPI server that manages agent lifecycle and handles all API requests. - Agent Core (
/agents): Contains the logic for each specialized agent:ChatbotAgent: Interacts with the user via a RAG-based conversational model.CodingAgent: Assists with code generation, debugging, and other development tasks.DashboardAgent: Analyzes data and generates insightful visualizations.RecommendationAgent: Provides personalized recommendations based on user data.
- Database (
/database): Manages data collection from local files, user profiles, and metadata storage using SQLite and a Qdrant vector database.
- Floating Chat App (
front.py): A desktop widget that serves as the primary user interface for interacting with JARVIS. - Setup Dialogs (
survey_dialog.py,folder_selector.py): GUI components that guide the user through the initial setup process.
This script is the main entry point for the entire system. It performs the following steps in order:
- Checks if Docker and required Python packages are installed.
- Verifies the existence of the
.envconfiguration file. - Starts the Qdrant vector database using Docker.
- Initializes the SQLite database.
- Launches the backend FastAPI server.
- Prompts the user with a survey and a folder selection dialog.
- Initiates the initial data collection and indexing process from the selected folders.
- Starts the desktop floating chat application.
-
Prerequisites:
- Python 3.10+
- Docker Desktop (running)
-
Installation:
# Clone the repository git clone https://github.com/your-repo/JARVIS.git cd JARVIS # Install dependencies pip install -r requirements.txt
-
Configuration:
- You may need to create a
.envfile based on the startup script's guidance. - Add your
GEMINI_API_KEYto the.envfile if required.
- You may need to create a
-
Running the System:
python start.py
The script will guide you through the rest of the setup process. Enjoy your personalized AI assistant!