aldohenrique commited on
Commit
f034f07
·
verified ·
1 Parent(s): 9053ef0

Update ai_logic.py

Browse files
Files changed (1) hide show
  1. ai_logic.py +32 -15
ai_logic.py CHANGED
@@ -3,7 +3,7 @@ import os
3
  import json
4
  import time
5
  import pickle
6
- from typing import Dict, List, Optional
7
  from bs4 import BeautifulSoup
8
  from urllib.parse import urljoin, urlparse
9
  from langchain.text_splitter import RecursiveCharacterTextSplitter
@@ -241,22 +241,24 @@ class HuggingFaceAPIClient:
241
  "temperature": 0.7
242
  }
243
  try:
244
- response = requests.post(url, headers=self.headers, json=payload, timeout=60)
245
  response.raise_for_status()
246
  return response.json()["choices"][0]["message"]["content"].strip()
247
- except Exception as e:
248
- return f"Erro na API: {str(e)}"
 
 
249
 
250
- def test_model_availability(self, model_name: str) -> bool:
251
  """Testa se um modelo está disponível na API do Hugging Face."""
252
- test_messages = [
253
- {"role": "user", "content": "Teste de disponibilidade."}
254
- ]
255
  try:
256
  response = self.query_model(model_name, test_messages, max_tokens=10)
257
- return not response.startswith("Erro na API")
258
- except Exception:
259
- return False
 
 
260
 
261
  api_client = HuggingFaceAPIClient(HF_TOKEN)
262
 
@@ -264,13 +266,28 @@ api_client = HuggingFaceAPIClient(HF_TOKEN)
264
  def test_and_update_models():
265
  """Testa a disponibilidade dos novos modelos e atualiza a lista MODELS."""
266
  print("Testando disponibilidade dos novos modelos...")
 
 
 
267
  for model_label, model_name in NEW_MODELS_TO_TEST:
268
- if api_client.test_model_availability(model_name):
 
269
  MODELS[model_label] = model_name
270
- print(f"Modelo {model_label} ({model_name}) adicionado à lista.")
271
  else:
272
- print(f"Modelo {model_label} ({model_name}) não disponível.")
273
- print(f"Total de modelos disponíveis: {len(MODELS)}")
 
 
 
 
 
 
 
 
 
 
 
274
 
275
  # --- Chat Principal ---
276
  def responder_como_aldo(session_id: str, pergunta: str, modelo: str = DEFAULT_MODEL) -> str:
 
3
  import json
4
  import time
5
  import pickle
6
+ from typing import Dict, List, Optional, Tuple
7
  from bs4 import BeautifulSoup
8
  from urllib.parse import urljoin, urlparse
9
  from langchain.text_splitter import RecursiveCharacterTextSplitter
 
241
  "temperature": 0.7
242
  }
243
  try:
244
+ response = requests.post(url, headers=self.headers, json=payload, timeout=30)
245
  response.raise_for_status()
246
  return response.json()["choices"][0]["message"]["content"].strip()
247
+ except requests.exceptions.HTTPError as http_err:
248
+ return f"Erro HTTP: {http_err.response.status_code} - {http_err.response.text}"
249
+ except requests.exceptions.RequestException as e:
250
+ return f"Erro na requisição: {str(e)}"
251
 
252
+ def test_model_availability(self, model_name: str) -> Tuple[bool, str]:
253
  """Testa se um modelo está disponível na API do Hugging Face."""
254
+ test_messages = [{"role": "user", "content": "Teste de disponibilidade."}]
 
 
255
  try:
256
  response = self.query_model(model_name, test_messages, max_tokens=10)
257
+ if response.startswith("Erro"):
258
+ return False, response
259
+ return True, "Modelo disponível."
260
+ except Exception as e:
261
+ return False, f"Erro ao testar modelo: {str(e)}"
262
 
263
  api_client = HuggingFaceAPIClient(HF_TOKEN)
264
 
 
266
  def test_and_update_models():
267
  """Testa a disponibilidade dos novos modelos e atualiza a lista MODELS."""
268
  print("Testando disponibilidade dos novos modelos...")
269
+ available_models = []
270
+ unavailable_models = []
271
+
272
  for model_label, model_name in NEW_MODELS_TO_TEST:
273
+ is_available, message = api_client.test_model_availability(model_name)
274
+ if is_available:
275
  MODELS[model_label] = model_name
276
+ available_models.append((model_label, model_name, message))
277
  else:
278
+ unavailable_models.append((model_label, model_name, message))
279
+
280
+ # Exibir resultados
281
+ print("\nResultados da validação:")
282
+ if available_models:
283
+ print("\nModelos disponíveis e adicionados:")
284
+ for label, name, msg in available_models:
285
+ print(f"- {label} ({name}): {msg}")
286
+ if unavailable_models:
287
+ print("\nModelos não disponíveis:")
288
+ for label, name, msg in unavailable_models:
289
+ print(f"- {label} ({name}): {msg}")
290
+ print(f"\nTotal de modelos disponíveis em MODELS: {len(MODELS)}")
291
 
292
  # --- Chat Principal ---
293
  def responder_como_aldo(session_id: str, pergunta: str, modelo: str = DEFAULT_MODEL) -> str: