613cd90662
- Implemented OpenAICredencial class for managing OpenAI API keys. - Created OpenAICredencialModel and OpenAICredencialMapper for SQLAlchemy integration. - Developed OpenAICredencialRepo for CRUD operations on OpenAI credentials. - Established OpenAICliente class for interacting with OpenAI API. - Introduced PostgresCredencial class for managing PostgreSQL connection details. - Created PostgresCredencialModel and PostgresCredencialMapper for SQLAlchemy integration. - Developed PostgresCredencialRepo for CRUD operations on PostgreSQL credentials. - Added base connection class and PostgreSQL connection implementation. - Included environment variable loading for sensitive data management.
54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
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())
|