import asyncio from src.ApiKeys.openai_apikey import OpenAICredencial from src.ApiKeys.openai_apikey_mmr import OpenAICredencialRepo from src.ConexionSql.Postgres_conexion import PostgresConexion from entrypoint.init_db import db_credencial from src.ConexionApis.OpenAi_conexion import OpenAICliente from llms.Modelos.Openai_model import ModeloOpenAI from llms.Agente import AgenteAI async def main(): # 🔌 Conexión conexion_admin = PostgresConexion(db_credencial) repo = OpenAICredencialRepo(conexion_admin) credencial_openai = repo.get_by_id(1) print(f"✅ Credencial: {credencial_openai.titulo}") # 🤖 Modelo cliente = OpenAICliente(credencial_openai) modelo = ModeloOpenAI( cliente=cliente, model="gpt-4o", temperature=1, top_p=1.0 ) # 🧠 Agente agente_con_herramientas = AgenteAI( modelo=modelo, nombre="Agente con herramientas", descripcion="Un agente que puede usar herramientas", system_prompt="Eres un asistente que puede usar herramientas para responder preguntas.", rol="asistente", objetivos=["Asistir al usuario en tareas complejas", "usar herramientas para obtener información adicional"] ) print("\n🤖 Agente listo. Escribe 'salir' para terminar.") # 🔁 Loop de interacción while True: entrada = input("🧑 Tú: ") if entrada.strip().lower() in {"salir", "exit", "quit"}: print("👋 Saliendo del agente...") break respuesta = await agente_con_herramientas.interactuar(prompt=entrada) print(f"🤖 Agente: {respuesta}\n") if __name__ == "__main__": import os if os.name == "nt": asyncio.set_event_loop_policy(asyncio.WindowsProactorEventLoopPolicy()) asyncio.run(main())