diff --git a/main.py b/main.py index 3d817c1..03b86d8 100644 --- a/main.py +++ b/main.py @@ -1,6 +1,7 @@ +import gradio as gr import ollama -# Inicializar el cliente Ollama. Victor Arbiol Martinez +# Inicializar el cliente Ollama client = ollama.Client(host='http://localhost:11434') class Agent: @@ -83,46 +84,55 @@ def __init__(self, description, agent): agentes = [agente_vuelos, agente_hoteles, agente_informes] -# Definir la información de la búsqueda (esto en un escenario real vendría del usuario) -destino = "Madrid - Paris" -fecha_ida = "2024-12-15" -fecha_vuelta = "2024-12-20" +def ejecutar_busqueda(pregunta, fecha_ida_str, fecha_vuelta_str): + resultados = {} + shared_info = {} + compartir = True -# Definir las tareas -tarea_vuelo = Task( - description=f"Busca vuelo más barato a {destino} para {fecha_ida}/{fecha_vuelta}.", - agent=agente_vuelos -) + # Definir las tareas utilizando la información del usuario + tarea_vuelo = Task( + description=f"Basado en la pregunta: '{pregunta}'. Busca vuelo más barato para el destino en la pregunta para {fecha_ida_str}/{fecha_vuelta_str}.", + agent=agente_vuelos + ) -tarea_hotel = Task( - description=f"Busca hotel más barato para {fecha_ida}/{fecha_vuelta}.", - agent=agente_hoteles -) + tarea_hotel = Task( + description=f"Basado en la pregunta: '{pregunta}'. Busca hotel más barato para las fechas {fecha_ida_str}/{fecha_vuelta_str}.", + agent=agente_hoteles + ) -tarea_informe = Task( - description="Genera un informe con la mejor opción de vuelo y hotel.", - agent=agente_informes -) + tarea_informe = Task( + description=f"Basado en la pregunta: '{pregunta}'. Genera un informe con la mejor opción de vuelo y hotel para las fechas {fecha_ida_str}/{fecha_vuelta_str}.", + agent=agente_informes + ) -tareas = [tarea_vuelo, tarea_hotel, tarea_informe] + tareas = [tarea_vuelo, tarea_hotel, tarea_informe] -# Simular la ejecución del equipo -resultados = {} -shared_info = {} # Usaremos un diccionario para almacenar los resultados de cada agente -compartir = True # Cambia a False para que los agentes trabajen de manera independiente + for tarea in tareas: + resultado = tarea.agent.execute_task(tarea.description, shared_info) + resultados[tarea.agent.role] = resultado + if compartir: + shared_info[tarea.agent.role] = resultado -for tarea in tareas: - resultado = tarea.agent.execute_task(tarea.description, shared_info) - resultados[tarea.agent.role] = resultado - if compartir: - shared_info[tarea.agent.role] = resultado + # Formatear los resultados para la interfaz de Gradio en Markdown con estilos + output_text = "
{role}: {resultado}
\n\n" # Rol en verde, resultado en rojo + output_text += "