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

278 lines
9.4 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "255345d5",
"metadata": {},
"outputs": [],
"source": [
"from src.TextManager.biblioteca import Biblioteca\n",
"from src.TextManager.biblioteca_mmr import BibliotecaRepo\n",
"from src.Llms.Embedders.Openai_embedder import OpenAIEmbedder\n",
"from src.ApiKeys.openai_apikey_mmr import OpenAICredencialRepo\n",
"from src.ConexionSql.Postgres_conexion import PostgresConexion\n",
"from src.TextManager.nota import Nota\n",
"from src.TextManager.notas_biblioteca_mmr import generar_tabla_nota_para_biblioteca, NotaRepo\n",
"from sqlalchemy import MetaData\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "b414a66c",
"metadata": {},
"outputs": [],
"source": [
"def agregar_nota_a_biblioteca(\n",
" conexion: PostgresConexion,\n",
" biblioteca_id: str,\n",
" titulo: str,\n",
" texto: str = \"\",\n",
" tags: list[str] = None,\n",
" conexiones: list[str] = None,\n",
" resumen: str = \"\"\n",
"):\n",
" print(\"[INFO] Iniciando el proceso de agregar nota a la biblioteca...\")\n",
"\n",
" # Obtener la biblioteca\n",
" print(f\"[INFO] Buscando biblioteca con ID: {biblioteca_id}\")\n",
" repo_biblioteca = BibliotecaRepo(conexion)\n",
" biblioteca = repo_biblioteca.get_by_id(biblioteca_id)\n",
" if biblioteca is None:\n",
" print(f\"[ERROR] No se encontró la biblioteca con ID {biblioteca_id}\")\n",
" raise ValueError(f\"No se encontró la biblioteca con ID {biblioteca_id}\")\n",
" print(f\"[INFO] Biblioteca encontrada: {biblioteca.nombre} (vector_dim={biblioteca.vector_dim})\")\n",
"\n",
" # Crear objeto Nota\n",
" print(f\"[INFO] Creando objeto Nota con título: {titulo}\")\n",
" nota = Nota(\n",
" titulo=titulo,\n",
" texto=texto,\n",
" tags=tags or [],\n",
" conexiones=conexiones or [],\n",
" resumen=resumen or \"\",\n",
" # vector=biblioteca.embedder.embed_text(texto),\n",
" # vector_resumen=biblioteca.embedder.embed_text(resumen) if resumen else None\n",
" )\n",
" # Mostrar atributos seguros\n",
" print(\n",
" f\"[DEBUG] Nota creada: titulo='{nota.titulo}', \"\n",
" f\"texto_len={len(nota.texto)}, \"\n",
" f\"tags={len(nota.tags)}, \"\n",
" f\"conexiones={len(nota.conexiones)}, \"\n",
" f\"resumen_len={len(nota.resumen)}\"\n",
" )\n",
"\n",
" # Preparar tabla y modelo de nota\n",
" print(f\"[INFO] Generando tabla y modelo de Nota para la biblioteca: {biblioteca.nombre}\")\n",
" metadata = MetaData()\n",
" tabla, ModeloNota = generar_tabla_nota_para_biblioteca(\n",
" biblioteca.nombre,\n",
" biblioteca.vector_dim,\n",
" metadata\n",
" )\n",
" print(f\"[INFO] Creando tabla en la base de datos si no existe...\")\n",
" metadata.create_all(conexion.get_engine())\n",
" print(f\"[INFO] Tabla '{tabla.name}' verificada/creada.\")\n",
"\n",
" # Guardar la nota\n",
" print(f\"[INFO] Guardando nota en la base de datos...\")\n",
" repo_nota = NotaRepo(conexion.get_session(), ModeloNota)\n",
" nota_id = repo_nota.add(nota)\n",
" print(f\"[INFO] Nota guardada con ID: {nota_id}\")\n",
"\n",
" resultado = {\n",
" \"mensaje\": f\"Nota '{titulo}' agregada con éxito a la biblioteca '{biblioteca.nombre}'.\",\n",
" \"nota_id\": nota_id\n",
" }\n",
"\n",
" print(f\"[SUCCESS] {resultado['mensaje']}\")\n",
" return resultado\n"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "8e57e511",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[INFO] Iniciando el proceso de agregar nota a la biblioteca...\n",
"[INFO] Buscando biblioteca con ID: BBLI20250511-a91dbb2168172979414\n",
"[INFO] Biblioteca encontrada: biblio_Pruebas_1 (vector_dim=3072)\n",
"[INFO] Creando objeto Nota con título: fdsfdsfsdfewww\n",
"[DEBUG] Nota creada: titulo='fdsfdsfsdfewww', texto_len=0, tags=0, conexiones=0, resumen_len=0\n",
"[INFO] Generando tabla y modelo de Nota para la biblioteca: biblio_Pruebas_1\n",
"[INFO] Creando tabla en la base de datos si no existe...\n",
"[INFO] Tabla 'biblio_pruebas_1' verificada/creada.\n",
"[INFO] Guardando nota en la base de datos...\n",
"[INFO] Nota guardada con ID: NOTA20250511-0cf0187e58905045667\n",
"[SUCCESS] Nota 'fdsfdsfsdfewww' agregada con éxito a la biblioteca 'biblio_Pruebas_1'.\n"
]
},
{
"data": {
"text/plain": [
"{'mensaje': \"Nota 'fdsfdsfsdfewww' agregada con éxito a la biblioteca 'biblio_Pruebas_1'.\",\n",
" 'nota_id': 'NOTA20250511-0cf0187e58905045667'}"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from entrypoint.init_db import db_credencial\n",
"conexion_admin = PostgresConexion(db_credencial)\n",
"\n",
"agregar_nota_a_biblioteca(\n",
" conexion=conexion_admin,\n",
" biblioteca_id=\"BBLI20250511-a91dbb2168172979414\",\n",
" titulo=\"fdsfdsfsdfewww\"\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "431f24f1",
"metadata": {},
"outputs": [],
"source": [
"def listar_notas_de_biblioteca(conexion: PostgresConexion, biblioteca_id: str) -> list[dict]:\n",
" repo_biblioteca = BibliotecaRepo(conexion)\n",
" biblioteca = repo_biblioteca.get_by_id(biblioteca_id)\n",
" if not biblioteca:\n",
" raise ValueError(f\"No se encontró la biblioteca con ID: {biblioteca_id}\")\n",
"\n",
" metadata = MetaData()\n",
" tabla, ModeloNota = generar_tabla_nota_para_biblioteca(biblioteca.nombre, biblioteca.vector_dim, metadata)\n",
" metadata.create_all(conexion.get_engine())\n",
"\n",
" repo_nota = NotaRepo(conexion.get_session(), ModeloNota)\n",
" notas = repo_nota.get_all()\n",
" return [\n",
" {\n",
" \"id\": n.id,\n",
" \"titulo\": n.titulo,\n",
" \"tags\": n.tags,\n",
" \"texto\": n.texto,\n",
" \"resumen\": n.resumen,\n",
" \"conexiones\": n.conexiones\n",
" }\n",
" for n in notas\n",
" ]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "ae4f2994",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'id': 'NOTA20250511-6cf9b177a2249549641',\n",
" 'titulo': 'Hola que tal',\n",
" 'tags': [],\n",
" 'texto': '',\n",
" 'resumen': '',\n",
" 'conexiones': []},\n",
" {'id': 'NOTA20250511-664831e1bd118315114',\n",
" 'titulo': 'Holoooo',\n",
" 'tags': [],\n",
" 'texto': '',\n",
" 'resumen': '',\n",
" 'conexiones': []},\n",
" {'id': 'NOTA20250511-04dbb203a9126228444',\n",
" 'titulo': 'sajdhasjdhasjdh',\n",
" 'tags': [],\n",
" 'texto': '',\n",
" 'resumen': '',\n",
" 'conexiones': []},\n",
" {'id': 'NOTA20250511-668f68e425271569668',\n",
" 'titulo': 'fsdfdf',\n",
" 'tags': [],\n",
" 'texto': '',\n",
" 'resumen': '',\n",
" 'conexiones': []},\n",
" {'id': 'NOTA20250511-a6ad7166d5660286632',\n",
" 'titulo': 'fsdfdf',\n",
" 'tags': [],\n",
" 'texto': '',\n",
" 'resumen': '',\n",
" 'conexiones': []},\n",
" {'id': 'NOTA20250511-639fa883c2266940759',\n",
" 'titulo': 'fsdfdf',\n",
" 'tags': [],\n",
" 'texto': '',\n",
" 'resumen': '',\n",
" 'conexiones': []},\n",
" {'id': 'NOTA20250511-27e86a8da6529002860',\n",
" 'titulo': 'fsdfdf',\n",
" 'tags': [],\n",
" 'texto': '',\n",
" 'resumen': '',\n",
" 'conexiones': []},\n",
" {'id': 'NOTA20250511-06479aca23973772356',\n",
" 'titulo': 'fsdfdf',\n",
" 'tags': [],\n",
" 'texto': '',\n",
" 'resumen': '',\n",
" 'conexiones': []},\n",
" {'id': 'NOTA20250511-0d577e3336174429305',\n",
" 'titulo': 'fdsfdsfsdfewww',\n",
" 'tags': [],\n",
" 'texto': '',\n",
" 'resumen': '',\n",
" 'conexiones': []},\n",
" {'id': 'NOTA20250511-0cf0187e58905045667',\n",
" 'titulo': 'fdsfdsfsdfewww',\n",
" 'tags': [],\n",
" 'texto': '',\n",
" 'resumen': '',\n",
" 'conexiones': []}]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"listar_notas_de_biblioteca(\n",
" conexion=conexion_admin,\n",
" biblioteca_id=\"BBLI20250511-a91dbb2168172979414\"\n",
")"
]
}
],
"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
}