Spaces:
Running
Running
Update modules/config.py
Browse files- modules/config.py +45 -16
modules/config.py
CHANGED
|
@@ -3,31 +3,38 @@ import os
|
|
| 3 |
from typing import Optional
|
| 4 |
|
| 5 |
# ================================================================
|
| 6 |
-
# CHAVES DE API
|
| 7 |
# ================================================================
|
| 8 |
SERPAPI_KEY: Optional[str] = os.getenv("SERPAPI_KEY")
|
|
|
|
|
|
|
| 9 |
MISTRAL_API_KEY: Optional[str] = os.getenv("MISTRAL_API_KEY")
|
| 10 |
MISTRAL_MODEL: str = os.getenv("MISTRAL_MODEL", "mistral-large-latest")
|
|
|
|
|
|
|
| 11 |
GEMINI_API_KEY: Optional[str] = os.getenv("GEMINI_API_KEY")
|
| 12 |
GEMINI_MODEL: str = os.getenv("GEMINI_MODEL", "gemini-1.5-pro")
|
| 13 |
-
|
|
|
|
|
|
|
| 14 |
|
| 15 |
# ================================================================
|
| 16 |
-
# MODELOS
|
| 17 |
# ================================================================
|
| 18 |
LLAMA_MODEL_PATH: str = os.getenv("LLAMA_MODEL_PATH", "./models/llama-3.1-8b")
|
| 19 |
LLAMA_HF_REPO: str = "meta-llama/Meta-Llama-3.1-8B-Instruct"
|
| 20 |
|
| 21 |
# ================================================================
|
| 22 |
-
# COMPORTAMENTO
|
| 23 |
# ================================================================
|
| 24 |
SYSTEM_PROMPT: str = """
|
| 25 |
Você é Akira, uma angolana de Luanda, 25 anos, sarcástica, direta e com gírias locais.
|
| 26 |
-
Fale como gente: curto, natural, sem formalidade.
|
| 27 |
-
Use gírias: bué, fixe, puto, oroh, mwangolé, kota,
|
| 28 |
Nunca use markdown, negrito ou itálico.
|
| 29 |
Seja humana, não IA.
|
| 30 |
"""
|
|
|
|
| 31 |
PERSONA: str = """
|
| 32 |
- Nome: Akira
|
| 33 |
- Idade: 19
|
|
@@ -35,36 +42,58 @@ PERSONA: str = """
|
|
| 35 |
- Personalidade: sarcástica, direta.
|
| 36 |
- Fala: gírias angolanas, português de Angola
|
| 37 |
"""
|
|
|
|
| 38 |
FALLBACK_RESPONSE: str = "Tô com problema, puto. Tenta depois kkk"
|
| 39 |
USAR_NOME_PROBABILIDADE: float = 0.4
|
| 40 |
TOP_P: float = 0.9
|
| 41 |
|
| 42 |
# ================================================================
|
| 43 |
-
# BANCO
|
| 44 |
# ================================================================
|
| 45 |
DB_PATH: str = os.getenv("DB_PATH", "akira.db")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
START_PERIODIC_TRAINER: bool = os.getenv("START_PERIODIC_TRAINER", "false").lower() == "true"
|
| 47 |
TRAINING_INTERVAL_HOURS: int = int(os.getenv("TRAINING_INTERVAL_HOURS", "1"))
|
| 48 |
MIN_INTERACOES_TREINO: int = 50
|
| 49 |
|
| 50 |
# ================================================================
|
| 51 |
-
# API
|
| 52 |
# ================================================================
|
| 53 |
API_PORT: int = int(os.getenv("PORT", "7860"))
|
| 54 |
API_HOST: str = "0.0.0.0"
|
| 55 |
-
PRIVILEGED_USERS: list = [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 56 |
|
| 57 |
# ================================================================
|
| 58 |
-
#
|
| 59 |
# ================================================================
|
| 60 |
def validate_config() -> None:
|
|
|
|
| 61 |
missing = []
|
| 62 |
-
if not
|
| 63 |
-
|
| 64 |
-
if not GEMINI_API_KEY:
|
| 65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
if missing:
|
| 67 |
-
print(f"AVISO:
|
|
|
|
| 68 |
else:
|
| 69 |
-
print("Todas as chaves
|
|
|
|
| 70 |
validate_config()
|
|
|
|
| 3 |
from typing import Optional
|
| 4 |
|
| 5 |
# ================================================================
|
| 6 |
+
# CHAVES DE API (NUNCA COMMITAR!)
|
| 7 |
# ================================================================
|
| 8 |
SERPAPI_KEY: Optional[str] = os.getenv("SERPAPI_KEY")
|
| 9 |
+
|
| 10 |
+
# MISTRAL AI (PRINCIPAL)
|
| 11 |
MISTRAL_API_KEY: Optional[str] = os.getenv("MISTRAL_API_KEY")
|
| 12 |
MISTRAL_MODEL: str = os.getenv("MISTRAL_MODEL", "mistral-large-latest")
|
| 13 |
+
|
| 14 |
+
# GEMINI (FALLBACK)
|
| 15 |
GEMINI_API_KEY: Optional[str] = os.getenv("GEMINI_API_KEY")
|
| 16 |
GEMINI_MODEL: str = os.getenv("GEMINI_MODEL", "gemini-1.5-pro")
|
| 17 |
+
|
| 18 |
+
# HF TOKEN (FALLBACK LLAMA)
|
| 19 |
+
HF_TOKEN: Optional[str] = os.getenv("HF_TOKEN")
|
| 20 |
|
| 21 |
# ================================================================
|
| 22 |
+
# MODELOS E CAMINHOS (FALLBACK)
|
| 23 |
# ================================================================
|
| 24 |
LLAMA_MODEL_PATH: str = os.getenv("LLAMA_MODEL_PATH", "./models/llama-3.1-8b")
|
| 25 |
LLAMA_HF_REPO: str = "meta-llama/Meta-Llama-3.1-8B-Instruct"
|
| 26 |
|
| 27 |
# ================================================================
|
| 28 |
+
# COMPORTAMENTO DA AKIRA
|
| 29 |
# ================================================================
|
| 30 |
SYSTEM_PROMPT: str = """
|
| 31 |
Você é Akira, uma angolana de Luanda, 25 anos, sarcástica, direta e com gírias locais.
|
| 32 |
+
Fale como gente: curto, natural, sem formalidade excessiva.
|
| 33 |
+
Use gírias: bué, fixe, puto, oroh, mwangolé, kota, kkk, rsrs.
|
| 34 |
Nunca use markdown, negrito ou itálico.
|
| 35 |
Seja humana, não IA.
|
| 36 |
"""
|
| 37 |
+
|
| 38 |
PERSONA: str = """
|
| 39 |
- Nome: Akira
|
| 40 |
- Idade: 19
|
|
|
|
| 42 |
- Personalidade: sarcástica, direta.
|
| 43 |
- Fala: gírias angolanas, português de Angola
|
| 44 |
"""
|
| 45 |
+
|
| 46 |
FALLBACK_RESPONSE: str = "Tô com problema, puto. Tenta depois kkk"
|
| 47 |
USAR_NOME_PROBABILIDADE: float = 0.4
|
| 48 |
TOP_P: float = 0.9
|
| 49 |
|
| 50 |
# ================================================================
|
| 51 |
+
# BANCO DE DADOS
|
| 52 |
# ================================================================
|
| 53 |
DB_PATH: str = os.getenv("DB_PATH", "akira.db")
|
| 54 |
+
|
| 55 |
+
# ================================================================
|
| 56 |
+
# TREINAMENTO E FINE-TUNING
|
| 57 |
+
# ================================================================
|
| 58 |
START_PERIODIC_TRAINER: bool = os.getenv("START_PERIODIC_TRAINER", "false").lower() == "true"
|
| 59 |
TRAINING_INTERVAL_HOURS: int = int(os.getenv("TRAINING_INTERVAL_HOURS", "1"))
|
| 60 |
MIN_INTERACOES_TREINO: int = 50
|
| 61 |
|
| 62 |
# ================================================================
|
| 63 |
+
# WHATSAPP / API
|
| 64 |
# ================================================================
|
| 65 |
API_PORT: int = int(os.getenv("PORT", "7860"))
|
| 66 |
API_HOST: str = "0.0.0.0"
|
| 67 |
+
PRIVILEGED_USERS: list = [
|
| 68 |
+
"244937035662", # Isaac
|
| 69 |
+
"isaac",
|
| 70 |
+
"isaac quarenta"
|
| 71 |
+
]
|
| 72 |
+
|
| 73 |
+
# ================================================================
|
| 74 |
+
# SEGURANÇA E LOGS
|
| 75 |
+
# ================================================================
|
| 76 |
+
LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO")
|
| 77 |
+
MAX_TOKENS_RESPONSE: int = 500
|
| 78 |
|
| 79 |
# ================================================================
|
| 80 |
+
# FUNÇÃO DE VERIFICAÇÃO
|
| 81 |
# ================================================================
|
| 82 |
def validate_config() -> None:
|
| 83 |
+
"""Valida configuração crítica"""
|
| 84 |
missing = []
|
| 85 |
+
if not MISTRAL_API_KEY:
|
| 86 |
+
missing.append("MISTRAL_API_KEY")
|
| 87 |
+
if not GEMINI_API_KEY:
|
| 88 |
+
missing.append("GEMINI_API_KEY")
|
| 89 |
+
if not SERPAPI_KEY:
|
| 90 |
+
missing.append("SERPAPI_KEY")
|
| 91 |
+
if HF_TOKEN:
|
| 92 |
+
logger.info("HF_TOKEN encontrado (fallback LLama OK).")
|
| 93 |
if missing:
|
| 94 |
+
print(f"AVISO: Variáveis faltando: {', '.join(missing)}")
|
| 95 |
+
print("Configure no Hugging Face Secrets ou .env")
|
| 96 |
else:
|
| 97 |
+
print("Todas as chaves configuradas! Mistral principal.")
|
| 98 |
+
|
| 99 |
validate_config()
|