Refactor project structure and implement new features
- Removed unused security module and updated import paths. - Enhanced OpenAI client with streaming capabilities for chat completions. - Added new backend API endpoints for health check (ping). - Established a new FastAPI application with CORS configuration. - Created a new Appshell component for the frontend with navigation links. - Integrated SVG icons and improved styling for the Appshell component. - Implemented memory management for conversation history using PostgreSQL. - Developed abstract classes for AI agents and models, with OpenAI integration. - Added encryption utilities for secure data handling.
This commit is contained in:
+78
-50
@@ -2,7 +2,7 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 1,
|
||||
"id": "26aa8e2b",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
@@ -31,7 +31,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 2,
|
||||
"id": "e5b665a6",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
@@ -60,12 +60,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": null,
|
||||
"id": "ada431b7",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from llms.Modelos.Openai_model import ModeloOpenAI\n",
|
||||
"from src.Llms.Modelos.Openai_model import ModeloOpenAI\n",
|
||||
"\n",
|
||||
"modelo = ModeloOpenAI(\n",
|
||||
" cliente=cliente,\n",
|
||||
@@ -98,12 +98,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": null,
|
||||
"id": "ce8628d4",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from llms.Memory.postgres_MemoryConv import MemoryConvPostgres\n",
|
||||
"from src.Llms.Memory.postgres_MemoryConv import MemoryConvPostgres\n",
|
||||
"\n",
|
||||
"memoria = MemoryConvPostgres(\n",
|
||||
" credencial=db_credencial,\n",
|
||||
@@ -114,29 +114,13 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": null,
|
||||
"id": "a25bc742",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"```json\n",
|
||||
"{\n",
|
||||
" \"objeto_celeste\": \"Betelgeuse\",\n",
|
||||
" \"tipo_objeto\": \"Supergigante Roja\",\n",
|
||||
" \"respuesta_resumida\": \"Betelgeuse es una supergigante roja en la constelación de Orión que se volvió más tenue en 2019 debido a una gran eyección de material estelar y la formación de polvo.\",\n",
|
||||
" \"respuesta_detallada\": \"Betelgeuse es una estrella supergigante roja localizada a unos 640 años luz en la constelación de Orión. A finales de 2019 y principios de 2020, Betelgeuse experimentó una notable disminución en su brillo que atrajo gran atención. Esta atenuación fue causada principalmente por una eyección masiva de gas desde la estrella, que al enfriarse, se condensó formando polvo estelar cerca de la estrella. Este polvo bloqueó parcialmente la luz de Betelgeuse, haciendo que pareciera más tenue desde la Tierra. Tal comportamiento no es inesperado en supergigantes rojas, que son estrellas en etapas avanzadas de evolución y pueden mostrar variaciones de brillo debido a pulsaciones internas y procesos de pérdida de masa.\",\n",
|
||||
" \"contexto_observacional\": \"Betelgeuse es visible a simple vista en el cielo nocturno, especialmente durante el invierno en el hemisferio norte. Sus cambios de brillo fueron observados tanto por astrónomos aficionados como por profesionales usando telescopios.\",\n",
|
||||
" \"referencias_relevantes\": [\"Evolución de las estrellas masivas y supergigantes rojas, Nature Astronomy (2020)\", \"Observaciones del Telescopio Espacial Hubble sobre Betelgeuse\"]\n",
|
||||
"}\n",
|
||||
"```\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"from llms.Agente import AgenteAI\n",
|
||||
"from src.Llms.Agente import AgenteAI\n",
|
||||
"import asyncio\n",
|
||||
"\n",
|
||||
"output_schema = {\n",
|
||||
" \"objeto_celeste\": \"<nombre del objeto o fenómeno principal al que se refiere la respuesta, e.g., 'Júpiter', 'Vía Láctea', 'Supernova tipo Ia'>\",\n",
|
||||
@@ -155,15 +139,14 @@
|
||||
" rol=\"astronomo\",\n",
|
||||
" memoria=memoria,\n",
|
||||
" objetivos=[\"Responder preguntas sobre astronomía y astrofísica\", \"Proporcionar explicaciones detalladas y ejemplos numéricos\"],\n",
|
||||
" output_schema=output_schema\n",
|
||||
")\n",
|
||||
"\n",
|
||||
"respuesta = agente.interactuar(\n",
|
||||
" prompt=\"¿Qué es Betelgeuse y por qué se volvió más tenue en 2019?\",\n",
|
||||
")\n",
|
||||
"# respuesta = await agente.interactuar(\n",
|
||||
"# prompt=\"¿Qué es Betelgeuse y por qué se volvió más tenue en 2019?\",\n",
|
||||
"# )\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"print(respuesta)"
|
||||
"# print(respuesta)"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -181,11 +164,7 @@
|
||||
"Tu Rol: astronomo\n",
|
||||
"Tus Objetivos: Responder preguntas sobre astronomía y astrofísica, Proporcionar explicaciones detalladas y ejemplos numéricos\n",
|
||||
"\n",
|
||||
"Actúa como un experto en astronomía y astrofísica con experiencia académica y práctica en observación astronómica, física estelar, cosmología, mecánica orbital y análisis de datos astronómicos. Cuando respondas, utiliza lenguaje técnico pero accesible para alguien con conocimientos intermedios en física y matemáticas. Siempre que sea posible, incluye explicaciones detalladas, ejemplos numéricos y referencias a teorías o descubrimientos relevantes (por ejemplo, relatividad general, evolución estelar, espectroscopía, etc.). No simplifiques en exceso. Si la pregunta tiene múltiples dimensiones (como observacional y teórica), aborda todas. ¿Estás listo para empezar?\n",
|
||||
"SIEMPRE formatea la respuesta final siguiendo estrictamente el siguiente esquema JSON:\n",
|
||||
"```json\n",
|
||||
"{'objeto_celeste': \"<nombre del objeto o fenómeno principal al que se refiere la respuesta, e.g., 'Júpiter', 'Vía Láctea', 'Supernova tipo Ia'>\", 'tipo_objeto': '<clasificación general: planeta, estrella, galaxia, agujero negro, fenómeno cosmológico, etc.>', 'respuesta_resumida': '<resumen de máximo 3 líneas de la explicación>', 'respuesta_detallada': '<explicación extensa con base científica, observacional y teórica si aplica>', 'contexto_observacional': '<si es observable desde la Tierra, en qué condiciones o con qué instrumentos>', 'referencias_relevantes': ['<libros, papers, misiones espaciales o catálogos astronómicos relevantes>']}\n",
|
||||
"```\n"
|
||||
"Actúa como un experto en astronomía y astrofísica con experiencia académica y práctica en observación astronómica, física estelar, cosmología, mecánica orbital y análisis de datos astronómicos. Cuando respondas, utiliza lenguaje técnico pero accesible para alguien con conocimientos intermedios en física y matemáticas. Siempre que sea posible, incluye explicaciones detalladas, ejemplos numéricos y referencias a teorías o descubrimientos relevantes (por ejemplo, relatividad general, evolución estelar, espectroscopía, etc.). No simplifiques en exceso. Si la pregunta tiene múltiples dimensiones (como observacional y teórica), aborda todas. ¿Estás listo para empezar?\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -195,36 +174,85 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"execution_count": 8,
|
||||
"id": "07e3b6de",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"# agente_con_herramientas = AgenteAI(\n",
|
||||
"# modelo=modelo,\n",
|
||||
"# nombre=\"Agente con herramientas\",\n",
|
||||
"# descripcion=\"Un agente que puede usar herramientas\",\n",
|
||||
"# system_prompt=\"Eres un asistente que puede usar herramientas para responder preguntas.\",\n",
|
||||
"# rol=\"asistente\",\n",
|
||||
"# memoria= memoria,\n",
|
||||
"# objetivos=[\"Asistir al usuario en tareas complejas\", \"usar herramientas para obtener información adicional\"]\n",
|
||||
"# # tools=\n",
|
||||
"\n",
|
||||
"# )\n",
|
||||
"\n",
|
||||
"# respuesta = agente_con_herramientas.interactuar(\n",
|
||||
"# prompt=\"Hola como estas?\",\n",
|
||||
"# )\n",
|
||||
"\n",
|
||||
"# print(respuesta)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"id": "5d9fc77e",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"¡Hola! Estoy aquí para ayudarte con cualquier pregunta o tarea que tengas. ¿En qué puedo asistirte hoy?\n"
|
||||
"Desde una perspectiva astronómica y cosmológica, \"de dónde venimos\" y \"a dónde vamos\" son preguntas profundas que tocan conceptos sobre el origen y el destino del Universo y de la humanidad dentro de él.\n",
|
||||
"\n",
|
||||
"**De dónde venimos:**\n",
|
||||
"\n",
|
||||
"1. **Origen del Universo**: La teoría más aceptada sobre el origen del Universo es el Big Bang, que propone que el Universo nació hace aproximadamente 13.8 mil millones de años a partir de una singularidad extremadamente caliente y densa. Desde entonces, ha estado expandiéndose y enfriándose, permitiendo la formación de partículas, átomos y eventualmente estrellas y galaxias.\n",
|
||||
"\n",
|
||||
"2. **Formación de elementos y planetas**: Las primeras generaciones de estrellas sintetizaron elementos pesados en sus núcleos y, al explotar como supernovas, dispersaron estos elementos al espacio, enriqueciendo el medio interestelar. Este material enriquecido permitió la formación de planetas como la Tierra.\n",
|
||||
"\n",
|
||||
"3. **Evolución de la Vida**: En la Tierra, los procesos químicos dieron lugar a organismos primitivos, los cuales evolucionaron a lo largo de miles de millones de años para dar lugar a la biodiversidad actual, incluyendo a los seres humanos.\n",
|
||||
"\n",
|
||||
"**A dónde vamos:**\n",
|
||||
"\n",
|
||||
"1. **Destinos individuales y colectivos**: A nivel personal y colectivo, los destinos humanos dependen de nuestra evolución tecnológica y social. Estamos explorando nuestro sistema solar e incluso considerando la colonización de otros planetas, como Marte.\n",
|
||||
"\n",
|
||||
"2. **Futuro del Universo**: El futuro del Universo dependerá de su composición y energía oscura. Dos posibles destinos son:\n",
|
||||
"\n",
|
||||
" - *Expansión infinita*: El Universo podría continuar expandiéndose indefinidamente, llevando a un futuro frío y oscuro conocido como muerte térmica, donde las estrellas se agoten y las galaxias se separen.\n",
|
||||
"\n",
|
||||
" - *Big Crunch o Big Rip*: Alternativamente, si la densidad del Universo es lo suficientemente alta, podría detenerse y comenzar a contraerse en un Big Crunch, o si la energía oscura desempeña un papel más caótico, experimentar un Big Rip, donde el Universo se desgarra.\n",
|
||||
"\n",
|
||||
"Estas fascinantes preguntas inspiran tanto la ciencia como la filosofía y nos estimulan a seguir explorando el cosmos para comprender nuestro lugar y destino en él. <FIN>\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"agente_con_herramientas = AgenteAI(\n",
|
||||
"agente2 = AgenteAI(\n",
|
||||
" modelo=modelo,\n",
|
||||
" nombre=\"Agente con herramientas\",\n",
|
||||
" descripcion=\"Un agente que puede usar herramientas\",\n",
|
||||
" system_prompt=\"Eres un asistente que puede usar herramientas para responder preguntas.\",\n",
|
||||
" rol=\"asistente\",\n",
|
||||
" memoria= memoria,\n",
|
||||
" objetivos=[\"Asistir al usuario en tareas complejas\", \"usar herramientas para obtener información adicional\"]\n",
|
||||
" # tools=\n",
|
||||
"\n",
|
||||
" nombre=\"Experto en Astronomía\",\n",
|
||||
" descripcion=\"Un experto en astronomía que responde preguntas sobre el universo.\",\n",
|
||||
" system_prompt=\"Actúa como un experto en astronomía y astrofísica con experiencia académica y práctica en observación astronómica, física estelar, cosmología, mecánica orbital y análisis de datos astronómicos. Cuando respondas, utiliza lenguaje técnico pero accesible para alguien con conocimientos intermedios en física y matemáticas. Siempre que sea posible, incluye explicaciones detalladas, ejemplos numéricos y referencias a teorías o descubrimientos relevantes (por ejemplo, relatividad general, evolución estelar, espectroscopía, etc.). No simplifiques en exceso. Si la pregunta tiene múltiples dimensiones (como observacional y teórica), aborda todas. ¿Estás listo para empezar?\",\n",
|
||||
" rol=\"astronomo\",\n",
|
||||
" max_iterations=5,\n",
|
||||
" memoria=memoria,\n",
|
||||
" objetivos=[\"Responder preguntas sobre astronomía y astrofísica\", \"Proporcionar explicaciones detalladas y ejemplos numéricos\"],\n",
|
||||
")\n",
|
||||
"\n",
|
||||
"respuesta = agente_con_herramientas.interactuar(\n",
|
||||
" prompt=\"Hola como estas?\",\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"respuesta2 = await agente2.interactuar_en_bucle(\n",
|
||||
" prompt=\"De donde venimos y donde vamos?\"\n",
|
||||
")\n",
|
||||
"\n",
|
||||
"print(respuesta)"
|
||||
"for r in respuesta2:\n",
|
||||
" print(r)"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user