Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -17,7 +17,7 @@ logging.basicConfig(
|
|
17 |
level=logging.INFO,
|
18 |
format='%(asctime)s - %(levelname)s - %(message)s'
|
19 |
)
|
20 |
-
logger = logging.getLogger(__name__)
|
21 |
|
22 |
# Obtener token de Hugging Face
|
23 |
HUGGINGFACE_TOKEN = os.getenv('HUGGINGFACE_TOKEN')
|
@@ -29,8 +29,8 @@ if not HUGGINGFACE_TOKEN:
|
|
29 |
login(token=HUGGINGFACE_TOKEN)
|
30 |
|
31 |
class NewsGenerator:
|
32 |
-
def
|
33 |
-
self.device = "
|
34 |
self.whisper_model = None
|
35 |
self.llm_model = None
|
36 |
self.tokenizer = None
|
@@ -39,7 +39,7 @@ class NewsGenerator:
|
|
39 |
self._load_models()
|
40 |
|
41 |
def _load_models(self):
|
42 |
-
"""Carga optimizada
|
43 |
try:
|
44 |
# Modelo DeepSeek
|
45 |
model_name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B"
|
@@ -49,19 +49,19 @@ class NewsGenerator:
|
|
49 |
token=HUGGINGFACE_TOKEN
|
50 |
)
|
51 |
|
52 |
-
# Configuraci贸n para
|
53 |
self.llm_model = AutoModelForCausalLM.from_pretrained(
|
54 |
model_name,
|
55 |
-
device_map="
|
56 |
-
torch_dtype=torch.
|
57 |
low_cpu_mem_usage=True,
|
58 |
token=HUGGINGFACE_TOKEN
|
59 |
).eval()
|
60 |
|
61 |
-
# Whisper en
|
62 |
self.whisper_model = whisper.load_model(
|
63 |
"tiny.en",
|
64 |
-
device=
|
65 |
)
|
66 |
|
67 |
logger.info("Modelos cargados exitosamente")
|
@@ -82,7 +82,6 @@ class NewsGenerator:
|
|
82 |
def generate_news(self, prompt: str, max_length: int = 512) -> str:
|
83 |
"""Generaci贸n de noticias con DeepSeek"""
|
84 |
try:
|
85 |
-
# Formato de prompt espec铆fico para DeepSeek
|
86 |
formatted_prompt = (
|
87 |
f"<|System|>\nEres un periodista profesional. Genera un art铆culo noticioso "
|
88 |
f"basado en estos datos:\n{prompt}\n<|End|>\n"
|
@@ -94,7 +93,6 @@ class NewsGenerator:
|
|
94 |
return_tensors="pt"
|
95 |
).to(self.device)
|
96 |
|
97 |
-
# Generaci贸n optimizada para GPU
|
98 |
with torch.inference_mode():
|
99 |
outputs = self.llm_model.generate(
|
100 |
**inputs,
|
@@ -282,6 +280,6 @@ def create_interface():
|
|
282 |
return app
|
283 |
|
284 |
|
285 |
-
if __name__ == "__main__":
|
286 |
app = create_interface()
|
287 |
-
app.launch(share=True
|
|
|
17 |
level=logging.INFO,
|
18 |
format='%(asctime)s - %(levelname)s - %(message)s'
|
19 |
)
|
20 |
+
logger = logging.getLogger(__name__) # Corregido __name__
|
21 |
|
22 |
# Obtener token de Hugging Face
|
23 |
HUGGINGFACE_TOKEN = os.getenv('HUGGINGFACE_TOKEN')
|
|
|
29 |
login(token=HUGGINGFACE_TOKEN)
|
30 |
|
31 |
class NewsGenerator:
|
32 |
+
def __init__(self): # Corregido __init__
|
33 |
+
self.device = "cpu" # Forzado a CPU
|
34 |
self.whisper_model = None
|
35 |
self.llm_model = None
|
36 |
self.tokenizer = None
|
|
|
39 |
self._load_models()
|
40 |
|
41 |
def _load_models(self):
|
42 |
+
"""Carga optimizada para CPU"""
|
43 |
try:
|
44 |
# Modelo DeepSeek
|
45 |
model_name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B"
|
|
|
49 |
token=HUGGINGFACE_TOKEN
|
50 |
)
|
51 |
|
52 |
+
# Configuraci贸n para CPU
|
53 |
self.llm_model = AutoModelForCausalLM.from_pretrained(
|
54 |
model_name,
|
55 |
+
device_map="cpu", # Dispositivo expl铆cito
|
56 |
+
torch_dtype=torch.float32, # Precisi贸n CPU
|
57 |
low_cpu_mem_usage=True,
|
58 |
token=HUGGINGFACE_TOKEN
|
59 |
).eval()
|
60 |
|
61 |
+
# Whisper en CPU
|
62 |
self.whisper_model = whisper.load_model(
|
63 |
"tiny.en",
|
64 |
+
device="cpu" # Dispositivo forzado
|
65 |
)
|
66 |
|
67 |
logger.info("Modelos cargados exitosamente")
|
|
|
82 |
def generate_news(self, prompt: str, max_length: int = 512) -> str:
|
83 |
"""Generaci贸n de noticias con DeepSeek"""
|
84 |
try:
|
|
|
85 |
formatted_prompt = (
|
86 |
f"<|System|>\nEres un periodista profesional. Genera un art铆culo noticioso "
|
87 |
f"basado en estos datos:\n{prompt}\n<|End|>\n"
|
|
|
93 |
return_tensors="pt"
|
94 |
).to(self.device)
|
95 |
|
|
|
96 |
with torch.inference_mode():
|
97 |
outputs = self.llm_model.generate(
|
98 |
**inputs,
|
|
|
280 |
return app
|
281 |
|
282 |
|
283 |
+
if __name__ == "__main__": # Corregido __main__
|
284 |
app = create_interface()
|
285 |
+
app.launch() # Eliminado share=True
|