Leonardo0711 commited on
Commit
ef31123
·
verified ·
1 Parent(s): b97fe5e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -9
app.py CHANGED
@@ -36,10 +36,11 @@ def env_list(name: str) -> list[str]:
36
 
37
 
38
  # ------------------ Config ------------------
39
- MODEL_REPO = os.getenv("MODEL_REPO", "Qwen/Qwen2.5-7B-Instruct-GGUF")
40
- # Si te falta RAM en CPU Basic, usa q3_k_m:
41
- # export MODEL_PATTERN=qwen2.5-7b-instruct-q3_k_m-*.gguf
42
- MODEL_PATTERN = os.getenv("MODEL_PATTERN", "qwen2.5-7b-instruct-q4_k_m-*.gguf")
 
43
 
44
  # Carpeta de modelos en /data (escribible en Docker Spaces)
45
  MODELS_DIR = Path(os.getenv("MODELS_DIR", "/data/models"))
@@ -48,12 +49,12 @@ MODELS_DIR.mkdir(parents=True, exist_ok=True)
48
  # Rendimiento (overrides por variables de entorno)
49
  CPU_COUNT = os.cpu_count() or 2
50
  N_THREADS = env_int("N_THREADS", max(1, CPU_COUNT - 1))
51
- N_BATCH = env_int("N_BATCH", 64) # bajar si vas muy justo de RAM
52
- N_CTX = env_int("N_CTX", 2048) # 2048 va bien en CPU basic
53
 
54
  # Decodificación / longitud por defecto
55
- DEF_TEMPERATURE = env_float("LLM_TEMPERATURE", 0.6)
56
- DEF_TOP_P = env_float("LLM_TOP_P", 0.95)
57
  DEF_MAX_TOKENS = env_int("LLM_MAX_TOKENS", 160) # longitud típica
58
  MAX_TOKENS_CAP = env_int("LLM_MAX_TOKENS_CAP", 320) # tope duro
59
 
@@ -64,6 +65,7 @@ Eres Astrohunters-Guide, un asistente en español.
64
  - Si te paso una URL, lees su contenido y lo usas como contexto.
65
  """)
66
 
 
67
  # CORS
68
  # Opciones:
69
  # - ALLOW_ALL_ORIGINS=1 (menos seguro, útil en pruebas)
@@ -138,7 +140,11 @@ def run_llm(
138
  max_tokens=clamp_tokens(max_tokens),
139
  stream=False,
140
  )
141
- return out["choices"][0]["message"]["content"].strip()
 
 
 
 
142
 
143
 
144
  # ------------------ FastAPI ------------------
 
36
 
37
 
38
  # ------------------ Config ------------------
39
+ # ⇩⇩ Cambiado a Qwen 2.5 3B (mejor para CPU Basic gratuito)
40
+ MODEL_REPO = os.getenv("MODEL_REPO", "Qwen/Qwen2.5-3B-Instruct-GGUF")
41
+ # Opción rápida/ligera: q3_k_m si vas muy justo de RAM:
42
+ # MODEL_PATTERN=qwen2.5-3b-instruct-q3_k_m-*.gguf
43
+ MODEL_PATTERN = os.getenv("MODEL_PATTERN", "qwen2.5-3b-instruct-q4_k_m-*.gguf")
44
 
45
  # Carpeta de modelos en /data (escribible en Docker Spaces)
46
  MODELS_DIR = Path(os.getenv("MODELS_DIR", "/data/models"))
 
49
  # Rendimiento (overrides por variables de entorno)
50
  CPU_COUNT = os.cpu_count() or 2
51
  N_THREADS = env_int("N_THREADS", max(1, CPU_COUNT - 1))
52
+ N_BATCH = env_int("N_BATCH", 64) # bajar si vas justo de RAM
53
+ N_CTX = env_int("N_CTX", 1536) # 1536-2048 ok; menos = más rápido
54
 
55
  # Decodificación / longitud por defecto
56
+ DEF_TEMPERATURE = env_float("LLM_TEMPERATURE", 0.4) # un poco más bajo para menos alucinación
57
+ DEF_TOP_P = env_float("LLM_TOP_P", 0.9)
58
  DEF_MAX_TOKENS = env_int("LLM_MAX_TOKENS", 160) # longitud típica
59
  MAX_TOKENS_CAP = env_int("LLM_MAX_TOKENS_CAP", 320) # tope duro
60
 
 
65
  - Si te paso una URL, lees su contenido y lo usas como contexto.
66
  """)
67
 
68
+
69
  # CORS
70
  # Opciones:
71
  # - ALLOW_ALL_ORIGINS=1 (menos seguro, útil en pruebas)
 
140
  max_tokens=clamp_tokens(max_tokens),
141
  stream=False,
142
  )
143
+ try:
144
+ return out["choices"][0]["message"]["content"].strip()
145
+ except Exception:
146
+ # fallback defensivo
147
+ return str(out)[:1000]
148
 
149
 
150
  # ------------------ FastAPI ------------------