This repository has been archived on 2025-11-27. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Fitz_Studio/Apikeys.ipynb
T
2025-05-05 02:21:55 +02:00

253 lines
11 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "26aa8e2b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"✅ Credencial: Credencial_enmanuel\n"
]
}
],
"source": [
"from backend.ApiKeys.openai_apikey import OpenAICredencial\n",
"from backend.ApiKeys.openai_apikey_mmr import OpenAICredencialRepo # Ajusta si está en otro módulo\n",
"from backend.ConexionSql.Postgres_conexion import PostgresConexion\n",
"\n",
"# 1. Crear instancia de conexión (asegúrate de configurar bien tu conexión en Base_conexion)\n",
"from entrypoint.init_db import db_credencial\n",
"conexion_admin = PostgresConexion(db_credencial)\n",
"\n",
"# 3. Guardar la credencial en la base de datos\n",
"repo = OpenAICredencialRepo(conexion_admin)\n",
"credencial_openai = repo.get_by_id(1)\n",
"print(f\"✅ Credencial: {credencial_openai.titulo}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "e5b665a6",
"metadata": {},
"outputs": [],
"source": [
"from backend.ConexionApis.OpenAi_conexion import OpenAICliente\n",
"\n",
"cliente = OpenAICliente(credencial_openai)\n",
"\n",
"# system_prompt = \"Eres un asistente útil\"\n",
"# prompt = \"¿Cuálqier pregunta que quieras hacer?\"\n",
"\n",
"# # 3. Enviar texto al modelo usando chat (API moderna)\n",
"# respuesta = cliente.chat_completion(\n",
"# model=\"gpt-3.5-turbo\", # o \"gpt-3.5-turbo\"\n",
"# messages=[\n",
"# {\"role\": \"system\", \"content\": f\"{system_prompt}\"},\n",
"# {\"role\": \"user\", \"content\": f\"{prompt}\"}\n",
"# ],\n",
"# temperature=0.3 # Opcional: controla creatividad\n",
"# )\n",
"\n",
"# # 4. Imprimir respuesta\n",
"# contenido = respuesta.choices[0].message.content\n",
"# print(contenido)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "ada431b7",
"metadata": {},
"outputs": [],
"source": [
"from llms.Modelos.Openai_model import ModeloOpenAI\n",
"\n",
"modelo = ModeloOpenAI(\n",
" cliente=cliente,\n",
" model=\"gpt-4o\",\n",
" temperature=1,\n",
" top_p=1.0\n",
")\n",
"\n",
"# respuesta = modelo.responder(\n",
"# prompt=\"¿Cuál es la capital de Japón?\",\n",
"# system_prompt=\"Eres un asistente que responde preguntas de forma interesante y creativa.\",\n",
"# )\n",
"\n",
"# print(respuesta)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "059fba92",
"metadata": {},
"outputs": [],
"source": [
"# from llms.Modelos.Openai_model_mmr import ModeloOpenAIConfigRepo\n",
"\n",
"# modelo_config_repo = ModeloOpenAIConfigRepo(conexion=conexion_admin, cliente=cliente)\n",
"# modelo_config_repo.add(modelo)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "ce8628d4",
"metadata": {},
"outputs": [],
"source": [
"from llms.Memory.postgres_MemoryConv import MemoryConvPostgres\n",
"\n",
"memoria = MemoryConvPostgres(\n",
" credencial=db_credencial,\n",
" nombre_tabla=\"memoria_conversacion_pruebas\",\n",
" k=10\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 6,
"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"
]
}
],
"source": [
"from llms.Agente import AgenteAI\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",
" \"tipo_objeto\": \"<clasificación general: planeta, estrella, galaxia, agujero negro, fenómeno cosmológico, etc.>\",\n",
" \"respuesta_resumida\": \"<resumen de máximo 3 líneas de la explicación>\",\n",
" \"respuesta_detallada\": \"<explicación extensa con base científica, observacional y teórica si aplica>\",\n",
" \"contexto_observacional\": \"<si es observable desde la Tierra, en qué condiciones o con qué instrumentos>\",\n",
" \"referencias_relevantes\": [\"<libros, papers, misiones espaciales o catálogos astronómicos relevantes>\"]\n",
"}\n",
"\n",
"agente = AgenteAI(\n",
" modelo=modelo,\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",
" 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",
"\n",
"\n",
"print(respuesta)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "5a1de9b1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Tu nombre es: Experto en Astronomía\n",
"Tu descripción: Un experto en astronomía que responde preguntas sobre el universo.\n",
"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"
]
}
],
"source": [
"print(agente.full_system_prompt)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "07e3b6de",
"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"
]
}
],
"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)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}