teszenofficial commited on
Commit
85f87d0
·
verified ·
1 Parent(s): 3585b81

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +33 -10
app.py CHANGED
@@ -203,7 +203,20 @@ class SearchRequest(BaseModel):
203
  def build_prompt(user_input: str, web_context: Optional[str] = None) -> str:
204
  """Construye el prompt con contexto web opcional"""
205
  if web_context:
206
- return f"### Contexto de búsqueda web:\n{web_context}\n\n### Instrucción:\n{user_input}\n\n### Respuesta:\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
207
  return f"### Instrucción:\n{user_input}\n\n### Respuesta:\n"
208
 
209
  def format_search_results(search_data: Dict) -> str:
@@ -212,15 +225,12 @@ def format_search_results(search_data: Dict) -> str:
212
 
213
  if search_data.get("wikipedia") and search_data["wikipedia"].get("success"):
214
  wiki = search_data["wikipedia"]
215
- context_parts.append(f"Wikipedia - {wiki['title']}:\n{wiki['summary']}")
216
 
217
  if search_data.get("web_results"):
218
- web_snippets = []
219
- for i, result in enumerate(search_data["web_results"][:3], 1):
220
- web_snippets.append(f"{i}. {result['title']}: {result['snippet'][:200]}")
221
-
222
- if web_snippets:
223
- context_parts.append("Resultados web:\n" + "\n".join(web_snippets))
224
 
225
  return "\n\n".join(context_parts) if context_parts else ""
226
 
@@ -286,11 +296,24 @@ async def generate(req: PromptRequest):
286
  # Realizar búsqueda web si está activada
287
  if req.use_web_search:
288
  try:
289
- search_results = await search_engine.search(user_input)
 
 
 
 
 
 
 
 
 
 
 
 
290
  web_context = format_search_results(search_results)
291
 
292
  if web_context:
293
- print(f"🔍 Búsqueda web completada. Contexto agregado: {len(web_context)} caracteres")
 
294
  except Exception as e:
295
  print(f"Error en búsqueda web: {e}")
296
 
 
203
  def build_prompt(user_input: str, web_context: Optional[str] = None) -> str:
204
  """Construye el prompt con contexto web opcional"""
205
  if web_context:
206
+ # Formato especial para búsqueda web con instrucciones claras
207
+ return f"""### Instrucción del sistema:
208
+ Eres un asistente que busca información en internet. Debes resumir la información encontrada de forma clara y útil.
209
+
210
+ ### Información encontrada en la web:
211
+ {web_context}
212
+
213
+ ### Pregunta del usuario:
214
+ {user_input}
215
+
216
+ ### Respuesta:
217
+ Hola, encontré esto en la web:
218
+
219
+ """
220
  return f"### Instrucción:\n{user_input}\n\n### Respuesta:\n"
221
 
222
  def format_search_results(search_data: Dict) -> str:
 
225
 
226
  if search_data.get("wikipedia") and search_data["wikipedia"].get("success"):
227
  wiki = search_data["wikipedia"]
228
+ context_parts.append(f"[Wikipedia - {wiki['title']}]\n{wiki['summary']}\nFuente: {wiki['url']}")
229
 
230
  if search_data.get("web_results"):
231
+ for i, result in enumerate(search_data["web_results"][:4], 1):
232
+ snippet = result['snippet'][:300].strip()
233
+ context_parts.append(f"[Resultado {i}: {result['title']}]\n{snippet}\nFuente: {result['url']}")
 
 
 
234
 
235
  return "\n\n".join(context_parts) if context_parts else ""
236
 
 
296
  # Realizar búsqueda web si está activada
297
  if req.use_web_search:
298
  try:
299
+ # Extraer la consulta de búsqueda del mensaje del usuario
300
+ search_query = user_input
301
+
302
+ # Si el mensaje es una pregunta larga, extraer palabras clave
303
+ if len(user_input.split()) > 8:
304
+ # Usar las primeras palabras más relevantes
305
+ words = user_input.lower().split()
306
+ # Filtrar palabras comunes
307
+ stop_words = {'qué', 'cuál', 'cómo', 'dónde', 'cuándo', 'por', 'para', 'el', 'la', 'los', 'las', 'un', 'una', 'es', 'sobre', 'me', 'puedes', 'explicar', 'decir', 'información'}
308
+ keywords = [w for w in words if w not in stop_words][:5]
309
+ search_query = ' '.join(keywords)
310
+
311
+ search_results = await search_engine.search(search_query)
312
  web_context = format_search_results(search_results)
313
 
314
  if web_context:
315
+ print(f"🔍 Búsqueda web completada para: '{search_query}'")
316
+ print(f" Contexto agregado: {len(web_context)} caracteres")
317
  except Exception as e:
318
  print(f"Error en búsqueda web: {e}")
319