geronimo-pericoli commited on
Commit
9663e57
·
verified ·
1 Parent(s): e6fff97

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +1 -153
app.py CHANGED
@@ -83,22 +83,6 @@ for source, rel_path in SOURCES.items():
83
 
84
 
85
 
86
- ##### LOAD SPACES METADATA #####
87
- SPACES_JSON_PATH = Path("./spaces.json")
88
-
89
- # Cargar metadatos de spaces
90
- def load_spaces_metadata():
91
- try:
92
- with open(SPACES_JSON_PATH, 'r', encoding='utf-8') as f:
93
- return json.load(f)
94
- except Exception as e:
95
- print(f"Error cargando spaces.json: {str(e)}")
96
- return {"spaces": []}
97
-
98
- spaces_metadata = load_spaces_metadata()
99
-
100
- # Diccionario para cachear conexiones a spaces
101
- space_clients: Dict[str, Client] = {}
102
 
103
 
104
 
@@ -267,106 +251,6 @@ async def search_tavily(
267
 
268
 
269
 
270
- async def list_spaces_names() -> dict:
271
- """
272
- Devuelve una lista simplificada con los nombres y descripciones de todos los spaces disponibles.
273
-
274
- Returns:
275
- dict: {
276
- "status": "success"|"error",
277
- "spaces": list[dict{"name": str, "description": str}],
278
- "count": int
279
- }
280
- """
281
- try:
282
- spaces_list = [
283
- {"name": space["name"], "description": space["description"]}
284
- for space in spaces_metadata["spaces"]
285
- ]
286
-
287
- return {
288
- "status": "success",
289
- "spaces": spaces_list,
290
- "count": len(spaces_list)
291
- }
292
- except Exception as e:
293
- return {
294
- "status": "error",
295
- "message": f"Error al obtener la lista de spaces: {str(e)}",
296
- "spaces": [],
297
- "count": 0
298
- }
299
-
300
-
301
- async def query_context(
302
- space_name: str,
303
- message_text: str,
304
- api_name: str = "/get_context_only"
305
- ) -> dict:
306
- """
307
- Esta herramienta obtiene SOLO el contexto relevante para una consulta desde un Space especializado.
308
-
309
- Parámetros:
310
- space_name (str): Nombre exacto del Space a consultar (debe existir en 'list_spaces_names')
311
- message_text (str): Texto de la consulta/pregunta para generar el contexto
312
- api_name (str, optional): Endpoint de la API a usar (siempre "/get_context_only")
313
-
314
- Retorna:
315
- dict: {
316
- "status": "success"|"error",
317
- "space": str, # Nombre del Space consultado
318
- "query": str, # Texto de la consulta enviada
319
- "context": str, # Contexto formateado obtenido
320
- "url": str # URL del Space
321
- }
322
- """
323
-
324
- try:
325
- space_info = next((s for s in spaces_metadata["spaces"] if s["name"] == space_name), None)
326
-
327
- if not space_info:
328
- print(f"Space no encontrado: {space_name}")
329
- return {
330
- "status": "error",
331
- "message": f"Space '{space_name}' no encontrado",
332
- "available_spaces": [s["name"] for s in spaces_metadata["spaces"]]
333
- }
334
-
335
- print(f"Obteniendo contexto del space: {space_name}")
336
-
337
- if space_name not in space_clients:
338
- print(f"Creando nuevo cliente para space: {space_name}")
339
- space_clients[space_name] = Client(space_info["url"], hf_token=HF_TOKEN)
340
-
341
- client = space_clients[space_name]
342
-
343
- print(f"Enviando consulta para contexto a space {space_name}")
344
- context = client.predict(
345
- message=message_text,
346
- api_name=api_name
347
- )
348
-
349
- print(f"Contexto obtenido (longitud: {len(context) if context else 0})")
350
-
351
- return {
352
- "status": "success",
353
- "space": space_name,
354
- "query": message_text,
355
- "context": context,
356
- "url": space_info["url"]
357
- }
358
-
359
- except Exception as e:
360
- print(f"Error en query_context: {str(e)}")
361
- return {
362
- "status": "error",
363
- "space": space_name,
364
- "query": message_text,
365
- "error": str(e),
366
- "url": space_info.get("url", "") if space_info else ""
367
- }
368
-
369
-
370
 
371
 
372
 
@@ -462,43 +346,7 @@ with gr.Blocks(title="Herramientas MCP", theme=gr.themes.Base()) as tools_tab:
462
  api_name="_list_retrievers"
463
  )
464
 
465
- with gr.Accordion("Búsqueda Web", open=False):
466
- tavily_interface = gr.Interface(
467
- fn=search_tavily,
468
- inputs=[
469
- gr.Textbox(label="Consulta de búsqueda", placeholder="Ej: últimas noticias sobre IA"),
470
- gr.Slider(1, 30, value=7, step=1, label="Últimos N días (0 para sin límite)"),
471
- gr.Slider(1, 10, value=1, step=1, label="Máximo de resultados"),
472
- gr.Checkbox(label="Incluir respuesta directa", value=False)
473
- ],
474
- outputs=gr.JSON(label="Resultados de Tavily"),
475
- title="Búsqueda Web (Tavily)",
476
- description="Realiza búsquedas en web usando la API de Tavily.",
477
- api_name="_search_tavily"
478
- )
479
-
480
- with gr.Accordion("HuggingFace Spaces", open=False):
481
- spaces_interface = gr.Interface(
482
- fn=list_spaces_names,
483
- inputs=None,
484
- outputs=gr.JSON(label="Lista de Spaces"),
485
- title="Lista de Spaces",
486
- description="Obtiene una lista simplificada con los nombres y descripciones de todos los spaces disponibles.",
487
- api_name="_list_space_names"
488
- )
489
-
490
- context_interface = gr.Interface(
491
- fn=query_context,
492
- inputs=[
493
- gr.Textbox(label="Nombre del Space", placeholder="Ej: mi-space"),
494
- gr.Textbox(label="Consulta", placeholder="Ingrese su pregunta o consulta"),
495
- gr.Textbox(label="API Name", value="/get_context_only", visible=False)
496
- ],
497
- outputs=gr.JSON(label="Contexto obtenido"),
498
- title="Obtener Contexto",
499
- description="Obtiene SOLO el contexto relevante para una consulta desde un Space especializado.",
500
- api_name="_query_context"
501
- )
502
 
503
  # Creamos el Agente MCP (puedes personalizar esto según necesites)
504
  with gr.Blocks(title="Agente MCP", theme=gr.themes.Base()) as agent_tab:
 
83
 
84
 
85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86
 
87
 
88
 
 
251
 
252
 
253
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254
 
255
 
256
 
 
346
  api_name="_list_retrievers"
347
  )
348
 
349
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
350
 
351
  # Creamos el Agente MCP (puedes personalizar esto según necesites)
352
  with gr.Blocks(title="Agente MCP", theme=gr.themes.Base()) as agent_tab: