# JARVIS HuggingFace Configuration # All paths driven by environment variables — no hardcoded Windows paths import os # ── Paths (env-var driven, HF-friendly) ──────────────────────────────────── BASE_DIR = os.path.dirname(os.path.abspath(__file__)) MEMORY_DIR = os.environ.get("JARVIS_MEMORY_DIR", os.path.join(BASE_DIR, "data", "memory")) DB_PATH = os.environ.get("JARVIS_DB_PATH", os.path.join(MEMORY_DIR, "jarvis.db")) # ── Model (HuggingFace) ──────────────────────────────────────────────────── # For 16 GB RAM: Phi-3 Mini (3.8B, 4-bit) or Mistral-7B (4-bit) # phi3:mini fits easily; Mistral-7B-Instruct needs bitsandbytes 4-bit quant HF_MODEL = os.environ.get("JARVIS_MODEL", "microsoft/Phi-3-mini-4k-instruct") # Quantisation: set "4bit" to load in 4-bit (saves VRAM/RAM; needs bitsandbytes) # set "8bit" for 8-bit, leave blank for full-precision (fp16/fp32). QUANT_MODE = os.environ.get("JARVIS_QUANT", "4bit") # 4bit / 8bit / none # ── Voice ────────────────────────────────────────────────────────────────── TTS_VOICE = os.environ.get("JARVIS_TTS_VOICE", "en-US-GuyNeural") WHISPER_MODEL = os.environ.get("JARVIS_WHISPER_MODEL", "base") # ── Agent identity ────────────────────────────────────────────────────────── AGENT_NAME = "JARVIS" AGENT_TAGLINE = "Just A Rather Very Intelligent System" # ── Thinking engine ───────────────────────────────────────────────────────── THINKING_ENABLED = os.environ.get("JARVIS_THINKING", "true").lower() == "true" THINKING_INTERVAL = int(os.environ.get("JARVIS_THINK_INTERVAL", "3600")) # ── Memory ────────────────────────────────────────────────────────────────── MAX_HISTORY = int(os.environ.get("JARVIS_MAX_HISTORY", "20"))