CamiloVega commited on
Commit
5cbb64a
verified
1 Parent(s): ed59cc5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -13
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 _init_(self):
33
- self.device = "cuda" if torch.cuda.is_available() else "cpu"
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 de modelos para GPU/CPU"""
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 GPU con manejo de memoria
53
  self.llm_model = AutoModelForCausalLM.from_pretrained(
54
  model_name,
55
- device_map="auto",
56
- torch_dtype=torch.float16 if self.device == "cuda" else torch.float32,
57
  low_cpu_mem_usage=True,
58
  token=HUGGINGFACE_TOKEN
59
  ).eval()
60
 
61
- # Whisper en dispositivo detectado
62
  self.whisper_model = whisper.load_model(
63
  "tiny.en",
64
- device=self.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