Skip to main content

The Universal RAG Chatbot Factory. Zero-dependency AI deployments.

Project description

ChatVat (The ChatBot🤖 Factory🏭)

The Universal RAG Chatbot Factory

License: Proprietary Python Docker Style


🌟 The Vision

ChatVat is not just another chatbot script. It is a Manufacturing Plant for self-contained AI systems.

It solves the "It works on my machine" problem by adhering to a strict "Zero-Dependency" philosophy. ChatVat takes your raw data sources—websites, APIs, and documents—and fuses them with a production-grade RAG engine into a sealed Docker container. This "capsule" contains everything needed to run: the code, the database, the browser, and the API server.

You can deploy a ChatVat bot anywhere: from a MacBook Air to an air-gapped server in Antarctica, without installing Python or git.

Core Philosophy

  • Production Parity: The bot you test locally is bit-for-bit identical to the bot you deploy.
  • Source Injection: The engine code is "injected" directly into the container during the build. No external git clones or PyPI downloads are required inside the image.
  • Self-Healing: Built-in deduplication (MD5 Hashing), crash recovery, and "Ghost Entry" prevention.

⚡ Quick Start

1. Installation

Install the ChatVat CLI from the source (or your private registry).

pip install chatvat

2. Initialize the Assembly Line

Create a clean directory for your new bot and run the configuration wizard.

mkdir my-crypto-bot
cd my-crypto-bot
chatvat init

The wizard will guide you through:

  • Naming your bot
  • Setting up AI Brain (Groq Llama-3 + HuggingFace Embeddings)
  • Connecting Data Sources (URLs, APIs, or Local Files)
  • Defining Deployment Ports

3. Build the Capsule

Compile your configuration and the ChatVat engine into a Docker Image.

chatvat build

What happens here? > The CLI locates the chatvat library on your system, copies the core engine code into a build context, injects your chatvat.config.json, and triggers a Docker build. The result is a sealed image containing your specific bot.

4. Deploy Anywhere

Run your bot using standard Docker commands. It injects your API keys at runtime for security.

# Example: Running on Port 8000
docker run -d \
  -p 8000:8000 \
  --env-file .env \
  --name crypto-bot \
  chatvat-bot

🧠 Architecture Deep Dive

ChatVat implements a modular RAG (Retrieval-Augmented Generation) pipeline designed for resilience.

The Components

Component Role Description
The Cortex Intelligence Powered by Groq for ultra-fast inference using the model of your choice and HuggingFace for embeddings.
The Memory Vector Store A persistent, thread-safe ChromaDB instance. It uses MD5 hashing to prevent duplicate data entry.
The Eyes Crawler A headless Chromium browser (via Crawl4AI/Playwright) capable of reading dynamic JS-heavy websites.
The Nervous System Ingestor A background worker that auto-updates knowledge every X minutes (configurable).
The API Interface A high-performance FastAPI server exposing REST endpoints.

The "Source Injection" Workflow

Unlike traditional builds that pip install libraries from the internet, ChatVat performs Source Injection:

  1. Locate: The CLI finds where chatvat is installed on your host machine.
  2. Extract: It copies the raw Python source code of the engine.
  3. Inject: It places this code into the /app directory of the Docker container.
  4. Seal: The Dockerfile sets PYTHONPATH=/app, making the injected code instantly executable without installation.

🛠️ Configuration Guide

Your bot is defined by chatvat.config.json. You can edit this file manually after running init.

{
    "bot_name": "ChatVatBot",
    "port": 8000,
    "refresh_interval_minutes": 60,
    "system_prompt": "You are a helpful assistant for the .....",
    "llm_model": "llama-3.1-70b-versatile",
    "embedding_model": "all-MiniLM-L6-v2",
    "sources": [
        {
            "type": "static_url",
            "target": "[https://www.amazon.com/gp/bestsellers/books/ref=zg_bs_nav](https://www.amazon.com/gp/bestsellers/books/ref=zg_bs_nav)"
        },
        {
            "type": "dynamic_json",
            "target": "[https://YOUR_API_ENDPOINT](https://YOUR_API_ENDPOINT)",
            "headers": {
                "Authorization": "Bearer ${API_KEY}"
            }
        },
        {
            "type": "local_file",
            "target": "./policy_docs.pdf"
        }
    ]
}
  • refresh_interval_minutes: Set to 0 to disable auto-updates.
  • sources: Supports static_url (Websites), dynamic_json (REST APIs), and local_file (PDF/TXT).
  • headers: Can use ${VAR_NAME} syntax to reference environment variables from your .env file.

📚 API Reference

Once the container is running, interact with it via HTTP REST API.

1. Health Check

Used by cloud balancers (AWS/Render) to verify the bot is alive.

GET /health

Response:

{
  "status": "healthy",
  "version": "0.1.0"
}

2. Chat Interface

The main endpoint for sending queries.

POST /chat

Payload:

{
  "message": "What events are happening on Day 1?"
}

Response:

{
  "message": "On Day 1, the opening ceremony starts at 10 AM..."
}

⚖️ License & Proprietary Notice

Copyright © 2025 Madhav Kapila. All Rights Reserved.

This software is Proprietary (Closed Source).

  • Usage: You are granted a limited license to use this tool for educational, private testing, or internal business purposes.
  • Restrictions:
    • You MAY NOT copy, modify, redistribute, sell, or lease any part of the chatvat source code.
    • You MAY NOT reverse engineer or attempt to extract the source code.
    • You MAY NOT upload this package to public registries (like PyPI) or public repositories (like GitHub) without prior written permission.

All intellectual property rights remain exclusively with Madhav Kapila.


Built with ❤️ by the Madhav Kapila.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chatvat-0.1.6.tar.gz (25.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chatvat-0.1.6-py3-none-any.whl (30.3 kB view details)

Uploaded Python 3

File details

Details for the file chatvat-0.1.6.tar.gz.

File metadata

  • Download URL: chatvat-0.1.6.tar.gz
  • Upload date:
  • Size: 25.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.7 Linux/6.17.0-8-generic

File hashes

Hashes for chatvat-0.1.6.tar.gz
Algorithm Hash digest
SHA256 48fdd8f5f57a36bc2a48ebae8a855756c031cf07dc92c41b546db281e94b7ed9
MD5 95e3d27965054e8d3a33b8f4a50af782
BLAKE2b-256 8e57f7aa0788130b00b9764ad822028d6e1ea121b8fc59c17b0ebf26553ee3cd

See more details on using hashes here.

File details

Details for the file chatvat-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: chatvat-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 30.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.13.7 Linux/6.17.0-8-generic

File hashes

Hashes for chatvat-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 66c6a56c2ffe19c0c7a350d7ebf6701315690547c90ef7bf6def1843a0d69971
MD5 d6f92f7d82cb7a2d86324e2d4e203915
BLAKE2b-256 2f6be89e71bd3fba841845e27d292036018442fe73c5c5c62c1fe3e104d9dcaf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page