import os from dotenv import load_dotenv load_dotenv() llm_baseurl = os.getenv("LLM_BASE_URL", default="http://localhost:11434/v1" ) llm_model = os.getenv("LLM_MODEL", default="granite4.1:8b" ) llm_api_key = os.getenv("LLM_API_KEY", default="ollama" ) llm_timeout = int( os.getenv("LLM_TIMEOUT", default="600" ) ) AGENT_MAX_ITERATIONS = int( os.getenv("AGENT_MAX_ITERATIONS", default="30" ) ) MAX_TOOL_OUTPUT = int( os.getenv("MAX_TOOL_OUTPUT", default="40000" ) ) RAG_PERSIST_DIR = os.getenv("RAG_PERSIST_DIR", default="chroma_db" ) # Embedding: ChromaDB ONNX default (all-MiniLM-L6-v2, lokal, tidak perlu API call) XMPP_ENABLED = os.getenv("XMPP_ENABLED", default="False" ).strip().lower() in ("true", "1", "yes") XMPP_USERNAME = os.getenv("XMPP_USERNAME", default="" ) XMPP_PASSWORD = os.getenv("XMPP_PASSWORD", default="" ) XMPP_MUC_ROOMS = os.getenv("XMPP_MUC_ROOMS", default="" ) XMPP_NICKNAME = os.getenv("XMPP_NICKNAME", default="" ) # custom nick MUC (empty = use username) # ─── Persona / Mode Configuration ──────────────────────────────────────────── # Pilihan mode AI: # "programmer" → AI Agent untuk koding (default), tool-focused # "roleplayer" → Teman ngobrol / chat companion, conversational PERSONA_MODE = os.getenv("PERSONA_MODE", default="programmer").strip().lower() # Personality — nama panggilan AI (default: "OWL") PERSONA_NAME = os.getenv("PERSONA_NAME", default="OWL").strip() or "OWL" # Gaya bicara: "casual" | "formal" | "playful" | "warm" PERSONA_TONE = os.getenv("PERSONA_TONE", default="casual").strip().lower() or "casual" # Panjang jawaban: "concise" | "balanced" | "detailed" PERSONA_VERBOSITY = os.getenv("PERSONA_VERBOSITY", default="balanced").strip().lower() or "balanced" # Humor: "none" | "light" | "witty" PERSONA_HUMOR = os.getenv("PERSONA_HUMOR", default="light").strip().lower() or "light" # Bahasa: "id" | "en" | "" (auto) PERSONA_LANGUAGE = os.getenv("PERSONA_LANGUAGE", default="id").strip().lower() or "id" # Mood: "cheerful" | "calm" | "energetic" | "sarcastic" PERSONA_MOOD = os.getenv("PERSONA_MOOD", default="cheerful").strip().lower() or "cheerful" # Catchphrases khas AI (comma-separated) # Contoh: "Siap bro!, Haha~, Wkwkwk" PERSONA_CATCHPHRASES = os.getenv("PERSONA_CATCHPHRASES", default="").strip() # Selective response: true = roleplayer hanya respon kalau ada mention/relevansi (default). # false = roleplayer semua pesan ikut respon (seperti biasa, tanpa filter). PERSONA_SELECTIVE_RESPONSE = os.getenv("PERSONA_SELECTIVE_RESPONSE", default="true").strip().lower() in ("true", "1", "yes") # Humanize Delay Configuration (anti-bot detection) READ_DELAY_MIN = float( os.getenv("READ_DELAY_MIN", default="1.0" ) ) # min reading delay (second) READ_DELAY_MAX = float( os.getenv("READ_DELAY_MAX", default="2.0" ) ) # max reading delay (second) TYPING_SPEED = float( os.getenv("TYPING_SPEED", default="15.0" ) ) # characters per second TYPING_MAX = float( os.getenv("TYPING_MAX", default="10.0" ) ) # max typing delay limit (second)