danielgx300 commited on
Commit
3cfa2ae
·
verified ·
1 Parent(s): 87c8442

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +12 -8
app.py CHANGED
@@ -44,7 +44,7 @@ class ControlDeTraficoIA:
44
  self.peticiones = deque()
45
  self.tokens_procesados = deque()
46
 
47
- # Límites de cuota
48
  self.MAX_RPM = 5 # Máximo 5 peticiones por minuto
49
  self.MAX_TPM = 30000 # Máximo 30,000 tokens por minuto
50
 
@@ -81,11 +81,11 @@ class ControlDeTraficoIA:
81
  with self.lock:
82
  now = time.time()
83
  self.peticiones.append(now)
84
- self.tokens_processed_now = self.tokens_procesados.append((now, estimado_tokens))
85
 
86
  control_trafico = ControlDeTraficoIA()
87
 
88
- # 4. PROCESAMIENTO DE HISTORIALES
89
  def parse_telegram_text(text_obj):
90
  if isinstance(text_obj, str):
91
  return text_obj
@@ -136,8 +136,10 @@ for file_path in sorted(json_files):
136
 
137
  del seen_messages
138
 
139
- CHUNK_SIZE = 15
140
- OVERLAP = 5
 
 
141
  documents = []
142
  for i in range(0, len(valid_messages), CHUNK_SIZE - OVERLAP):
143
  chunk_msgs = valid_messages[i : i + CHUNK_SIZE]
@@ -156,7 +158,9 @@ embeddings = HuggingFaceEmbeddings(
156
  if documents:
157
  print("🧠 Creando base de datos unificada...")
158
  vectorstore = FAISS.from_documents(documents, embeddings)
159
- retriever = vectorstore.as_retriever(search_kwargs={"k": 8})
 
 
160
  print("✅ Base de datos lista.")
161
  else:
162
  print("⚠️ No hay documentos para indexar.")
@@ -217,7 +221,7 @@ def handle_query(message):
217
  )
218
  return
219
 
220
- # 1. Recuperar contexto de FAISS
221
  docs = retriever.invoke(message.text)
222
  context_text = "\n\n---\n\n".join([doc.page_content for doc in docs])
223
 
@@ -241,7 +245,7 @@ def handle_query(message):
241
  # Dormir el hilo secundario para esperar la vacante de cuota de forma segura
242
  time.sleep(espera_necesaria)
243
 
244
- # Registrar el consumo forzado ya que se cumplió el tiempo de espera requerido
245
  control_trafico.registrar_consumo_forzado(estimacion_tokens)
246
 
247
  # Volver a activar la animación de escribiendo en el chat de Telegram
 
44
  self.peticiones = deque()
45
  self.tokens_procesados = deque()
46
 
47
+ # Límites de cuota oficiales para gemma-4-31b
48
  self.MAX_RPM = 5 # Máximo 5 peticiones por minuto
49
  self.MAX_TPM = 30000 # Máximo 30,000 tokens por minuto
50
 
 
81
  with self.lock:
82
  now = time.time()
83
  self.peticiones.append(now)
84
+ self.tokens_procesados.append((now, estimado_tokens))
85
 
86
  control_trafico = ControlDeTraficoIA()
87
 
88
+ # 4. PROCESAMIENTO MULTI-ARCHIVO DE HISTORIALES
89
  def parse_telegram_text(text_obj):
90
  if isinstance(text_obj, str):
91
  return text_obj
 
136
 
137
  del seen_messages
138
 
139
+ # OPTIMIZACIÓN 1: Chunks más grandes (30 mensajes) y mayor solapamiento (10 mensajes)
140
+ # Esto garantiza que las conversaciones y reseñas largas no se corten a la mitad
141
+ CHUNK_SIZE = 30
142
+ OVERLAP = 10
143
  documents = []
144
  for i in range(0, len(valid_messages), CHUNK_SIZE - OVERLAP):
145
  chunk_msgs = valid_messages[i : i + CHUNK_SIZE]
 
158
  if documents:
159
  print("🧠 Creando base de datos unificada...")
160
  vectorstore = FAISS.from_documents(documents, embeddings)
161
+
162
+ # OPTIMIZACIÓN 2: k=15 (Recupera el doble de contexto de memoria para el modelo)
163
+ retriever = vectorstore.as_retriever(search_kwargs={"k": 15})
164
  print("✅ Base de datos lista.")
165
  else:
166
  print("⚠️ No hay documentos para indexar.")
 
221
  )
222
  return
223
 
224
+ # 1. Recuperar contexto de FAISS (Ahora trae 15 bloques para un contexto ultra robusto)
225
  docs = retriever.invoke(message.text)
226
  context_text = "\n\n---\n\n".join([doc.page_content for doc in docs])
227
 
 
245
  # Dormir el hilo secundario para esperar la vacante de cuota de forma segura
246
  time.sleep(espera_necesaria)
247
 
248
+ # Registrar el consumo forzado ya que se cumplió el tiempo de espera de la ventana de 1 minuto
249
  control_trafico.registrar_consumo_forzado(estimacion_tokens)
250
 
251
  # Volver a activar la animación de escribiendo en el chat de Telegram