File size: 2,737 Bytes
40b3752
ac35688
 
 
 
 
 
 
40b3752
ac35688
 
 
 
 
40b3752
 
40b123c
 
 
40b3752
9f05f25
 
40b3752
 
9f05f25
 
4923fb1
 
40b123c
ac35688
9f05f25
f728ad5
 
92f3987
40b3752
dfce113
92f3987
 
 
 
 
 
 
 
9f05f25
40b3752
ac35688
92f3987
40b3752
 
 
92f3987
40b123c
9470356
 
 
9f05f25
 
40b3752
 
ac35688
40b3752
92f3987
9f05f25
40b3752
 
 
de81947
 
92f3987
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# FILE: modules/config_settings_public.py (Hugging Face Demo - v2.0 - Verified Models)

import os
import logging
from huggingface_hub import hf_hub_download

logger = logging.getLogger("ZOTHEOS_Config")
if not logger.handlers:
    handler = logging.StreamHandler()
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - [%(funcName)s] - %(message)s')
    handler.setFormatter(formatter)
    logger.addHandler(handler)
    logger.setLevel(logging.INFO)

# --- βœ… VERIFIED WEB-OPTIMIZED MODEL SOURCES ---
# These models are smaller, faster.
MODEL_DEFINITIONS = {
    "mistral": {
        "repo_id": "TheBloke/Mistral-7B-Instruct-v0.2-GGUF",
        "filename": "mistral-7b-instruct-v0.2.Q2_K.gguf" # Smallest quantization for speed
    },
    "gemma": {
        "repo_id": "google/gemma-2b-it-gguf", # Using the official Google repository
        "filename": "gemma-2b-it.gguf"
    },
    "qwen": {
        "repo_id": "second-state/Qwen1.5-1.8B-Chat-GGUF",
        "filename": "Qwen1.5-1.8B-Chat-Q4_K_S.gguf"
    }
}

MODEL_PATHS = {}

logger.info("βœ…βœ…βœ… RUNNING IN WEB DEMO MODE (Hugging Face Space) βœ…βœ…βœ…")
N_GPU_LAYERS_FALLBACK = 0  # Force CPU-only mode

for name, model_info in MODEL_DEFINITIONS.items():
    logger.info(f"Downloading model for demo: {name} from {model_info['repo_id']}")
    try:
        MODEL_PATHS[name] = hf_hub_download(repo_id=model_info["repo_id"], filename=model_info["filename"])
        logger.info(f"βœ… Successfully downloaded {name}")
    except Exception as e:
        logger.error(f"❌ FAILED to download {name}: {e}")
        raise e

# --- WEB-OPTIMIZED MODEL PARAMETERS ---
MODEL_SPECIFIC_PARAMS = {
    "_default": { 
        "n_gpu_layers": N_GPU_LAYERS_FALLBACK,
        "n_ctx": 2048, # Smaller context for lower RAM
        "n_batch": 512,
        "verbose": True
    },
    "mistral": { "chat_format": "mistral-instruct" },
    "gemma": { "chat_format": "gemma" },
    "qwen": { "chat_format": "chatml" }
}

# --- AGI-TIER INFERENCE & PROMPTS ---
INFERENCE_PRESETS = {"balanced": {"temperature": 0.7, "max_tokens": 512}}
DEFAULT_INFERENCE_PRESET = "balanced"
DEFAULT_SYSTEM_PROMPT = "You are ZOTHEOS, an ethical AI. Respond only in English."
MODEL_ROLES = {"mistral": "analyst", "gemma": "humanist", "qwen": "skeptic"}
MODEL_ROLE_SYSTEM_PROMPTS = {
    "analyst": "You are an impartial analyst. Provide structured, logical insights. Respond only in English.",
    "humanist": "You are an empathetic AI. Focus on the emotional and ethical impact. Respond only in English.",
    "skeptic": "You are a respectful skeptic. Question assumptions and highlight risks. Respond only in English.",
}

logger.info("βœ… Hugging Face Demo Configuration Loaded Successfully.")