akra35567 commited on
Commit
eef58ce
·
1 Parent(s): 024dee5

Update modules/config.py

Browse files
Files changed (1) hide show
  1. 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
- HF_TOKEN: Optional[str] = os.getenv("HF_TOKEN") # OBRIGATÓRIO PARA LLAMA
 
 
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, k。以, rsrs.
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 E TREINAMENTO
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 = ["244937035662", "isaac", "isaac quarenta"]
 
 
 
 
 
 
 
 
 
 
56
 
57
  # ================================================================
58
- # VALIDAÇÃO
59
  # ================================================================
60
  def validate_config() -> None:
 
61
  missing = []
62
- if not SERPAPI_KEY: missing.append("SERPAPI_KEY")
63
- if not MISTRAL_API_KEY: missing.append("MISTRAL_API_KEY")
64
- if not GEMINI_API_KEY: missing.append("GEMINI_API_KEY")
65
- if not HF_TOKEN: missing.append("HF_TOKEN") # OBRIGATÓRIO
 
 
 
 
66
  if missing:
67
- print(f"AVISO: Faltam chaves: {', '.join(missing)}")
 
68
  else:
69
- print("Todas as chaves OK!")
 
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()