import os from pathlib import Path from huggingface_hub import hf_hub_download # Directorio del modelo BASE_DIR = Path(__file__).resolve().parent MODEL_DIR = BASE_DIR / "model" MODEL_DIR.mkdir(exist_ok=True) # Modelo recomendado: Qwen 2.5 0.5B Instruct (Habla espaƱol fluido, afinado para chat) REPO_ID = "bartowski/Qwen2.5-0.5B-Instruct-GGUF" FILENAME = "Qwen2.5-0.5B-Instruct-Q4_K_M.gguf" DESTINATION = MODEL_DIR / FILENAME def ensure_model() -> Path: """Verifica si el modelo existe localmente; si no, lo descarga desde Hugging Face.""" if DESTINATION.exists(): print(f"[OK] El modelo ya existe en: {DESTINATION} ({DESTINATION.stat().st_size / (1024 * 1024):.2f} MB)") return DESTINATION print(f"[DESCARGA] Bajando {FILENAME} desde Hugging Face ({REPO_ID})...") print("Esto se realiza una sola vez en el Build de Render o al arrancar localmente.") file_path = hf_hub_download( repo_id=REPO_ID, filename=FILENAME, local_dir=str(MODEL_DIR), local_dir_use_symlinks=False ) downloaded_path = Path(file_path) print(f"[EXITO] Modelo descargado en: {downloaded_path} ({downloaded_path.stat().st_size / (1024 * 1024):.2f} MB)") return downloaded_path if __name__ == "__main__": ensure_model()