Spaces:
Sleeping
Sleeping
Agrego prompt eval
Browse files- add_prompt_eval.py +70 -0
- funciones.py +15 -12
- imagen_log.sql +1 -0
- models.py +2 -0
add_prompt_eval.py
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python3
|
| 2 |
+
"""Script para agregar el campo prompt_eval a la tabla registro"""
|
| 3 |
+
|
| 4 |
+
from connection import get_connection
|
| 5 |
+
import sys
|
| 6 |
+
|
| 7 |
+
def agregar_prompt_eval():
|
| 8 |
+
"""Agrega la columna prompt_eval a la tabla registro"""
|
| 9 |
+
|
| 10 |
+
conn = get_connection()
|
| 11 |
+
|
| 12 |
+
if not conn:
|
| 13 |
+
print("❌ Error: No se pudo conectar a la base de datos")
|
| 14 |
+
sys.exit(1)
|
| 15 |
+
|
| 16 |
+
try:
|
| 17 |
+
cursor = conn.cursor()
|
| 18 |
+
|
| 19 |
+
print("🔧 Agregando campo prompt_eval a la tabla...")
|
| 20 |
+
print("-" * 60)
|
| 21 |
+
|
| 22 |
+
# Verificar si la columna ya existe
|
| 23 |
+
cursor.execute("""
|
| 24 |
+
SELECT COLUMN_NAME
|
| 25 |
+
FROM INFORMATION_SCHEMA.COLUMNS
|
| 26 |
+
WHERE TABLE_NAME = 'registro'
|
| 27 |
+
AND COLUMN_NAME = 'prompt_eval'
|
| 28 |
+
""")
|
| 29 |
+
|
| 30 |
+
if cursor.fetchone():
|
| 31 |
+
print("⚠️ El campo 'prompt_eval' ya existe en la tabla")
|
| 32 |
+
cursor.close()
|
| 33 |
+
conn.close()
|
| 34 |
+
return
|
| 35 |
+
|
| 36 |
+
# Agregar la columna después de 'prompt'
|
| 37 |
+
sql = """
|
| 38 |
+
ALTER TABLE `registro`
|
| 39 |
+
ADD COLUMN `prompt_eval` VARCHAR(255) COMMENT 'Evaluación del prompt'
|
| 40 |
+
AFTER `prompt`
|
| 41 |
+
"""
|
| 42 |
+
|
| 43 |
+
cursor.execute(sql)
|
| 44 |
+
conn.commit()
|
| 45 |
+
|
| 46 |
+
print("✅ Campo 'prompt_eval' agregado correctamente")
|
| 47 |
+
|
| 48 |
+
# Verificar estructura
|
| 49 |
+
cursor.execute("DESCRIBE `registro`")
|
| 50 |
+
columnas = cursor.fetchall()
|
| 51 |
+
|
| 52 |
+
print("\n📋 Estructura actualizada de la tabla:")
|
| 53 |
+
print("-" * 60)
|
| 54 |
+
for col in columnas:
|
| 55 |
+
print(f" {col[0]:<20} {col[1]:<30} {col[2]}")
|
| 56 |
+
|
| 57 |
+
cursor.close()
|
| 58 |
+
conn.close()
|
| 59 |
+
|
| 60 |
+
print("\n✅ Tabla actualizada correctamente")
|
| 61 |
+
|
| 62 |
+
except Exception as e:
|
| 63 |
+
print(f"❌ Error: {e}")
|
| 64 |
+
sys.exit(1)
|
| 65 |
+
|
| 66 |
+
if __name__ == "__main__":
|
| 67 |
+
print("\n🔄 Actualizando estructura de BD...")
|
| 68 |
+
print("=" * 60)
|
| 69 |
+
agregar_prompt_eval()
|
| 70 |
+
print("=" * 60)
|
funciones.py
CHANGED
|
@@ -38,23 +38,24 @@ def crear_registro(datos: RegistroRequest) -> dict:
|
|
| 38 |
fecha_registro = datos.fecha_registro or datetime.now()
|
| 39 |
usos = datos.usos or 0
|
| 40 |
prompt = datos.prompt
|
|
|
|
| 41 |
proveedor = datos.proveedor
|
| 42 |
seed = datos.seed
|
| 43 |
|
| 44 |
-
logger.info(f"📊 Datos a insertar - UID: {uid}, Usuario: {display_name}, País: {pais}, Email: {correo}, Prompt: {prompt}, Proveedor: {proveedor}")
|
| 45 |
|
| 46 |
# Insertar en la BD
|
| 47 |
cursor = conn.cursor()
|
| 48 |
|
| 49 |
sql = """
|
| 50 |
INSERT INTO `registro`
|
| 51 |
-
(uid, display_name, pais, correo, fecha_registro, usos, prompt, proveedor, seed)
|
| 52 |
-
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)
|
| 53 |
"""
|
| 54 |
|
| 55 |
valores = (
|
| 56 |
uid, display_name, pais, correo, fecha_registro,
|
| 57 |
-
usos, prompt, proveedor, seed
|
| 58 |
)
|
| 59 |
|
| 60 |
cursor.execute(sql, valores)
|
|
@@ -70,7 +71,7 @@ def crear_registro(datos: RegistroRequest) -> dict:
|
|
| 70 |
cursor.execute(
|
| 71 |
"""
|
| 72 |
SELECT id, uid, display_name, pais, correo, fecha_registro,
|
| 73 |
-
usos, prompt, proveedor, seed, created_at
|
| 74 |
FROM `registro`
|
| 75 |
WHERE id = %s
|
| 76 |
""",
|
|
@@ -94,9 +95,10 @@ def crear_registro(datos: RegistroRequest) -> dict:
|
|
| 94 |
"fecha_registro": registro[5],
|
| 95 |
"usos": registro[6],
|
| 96 |
"prompt": registro[7],
|
| 97 |
-
"
|
| 98 |
-
"
|
| 99 |
-
"
|
|
|
|
| 100 |
}
|
| 101 |
}
|
| 102 |
else:
|
|
@@ -148,7 +150,7 @@ def obtener_registros(limit: int = 10, offset: int = 0) -> dict:
|
|
| 148 |
cursor.execute(
|
| 149 |
"""
|
| 150 |
SELECT id, uid, display_name, pais, correo, fecha_registro,
|
| 151 |
-
usos, prompt, proveedor, seed, created_at
|
| 152 |
FROM `registro`
|
| 153 |
ORDER BY created_at DESC
|
| 154 |
LIMIT %s OFFSET %s
|
|
@@ -173,9 +175,10 @@ def obtener_registros(limit: int = 10, offset: int = 0) -> dict:
|
|
| 173 |
"fecha_registro": reg[5],
|
| 174 |
"usos": reg[6],
|
| 175 |
"prompt": reg[7],
|
| 176 |
-
"
|
| 177 |
-
"
|
| 178 |
-
"
|
|
|
|
| 179 |
})
|
| 180 |
|
| 181 |
logger.info(f"📈 Retornando {len(datos)} registros")
|
|
|
|
| 38 |
fecha_registro = datos.fecha_registro or datetime.now()
|
| 39 |
usos = datos.usos or 0
|
| 40 |
prompt = datos.prompt
|
| 41 |
+
prompt_eval = datos.prompt_eval
|
| 42 |
proveedor = datos.proveedor
|
| 43 |
seed = datos.seed
|
| 44 |
|
| 45 |
+
logger.info(f"📊 Datos a insertar - UID: {uid}, Usuario: {display_name}, País: {pais}, Email: {correo}, Prompt: {prompt}, Prompt Eval: {prompt_eval}, Proveedor: {proveedor}")
|
| 46 |
|
| 47 |
# Insertar en la BD
|
| 48 |
cursor = conn.cursor()
|
| 49 |
|
| 50 |
sql = """
|
| 51 |
INSERT INTO `registro`
|
| 52 |
+
(uid, display_name, pais, correo, fecha_registro, usos, prompt, prompt_eval, proveedor, seed)
|
| 53 |
+
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
|
| 54 |
"""
|
| 55 |
|
| 56 |
valores = (
|
| 57 |
uid, display_name, pais, correo, fecha_registro,
|
| 58 |
+
usos, prompt, prompt_eval, proveedor, seed
|
| 59 |
)
|
| 60 |
|
| 61 |
cursor.execute(sql, valores)
|
|
|
|
| 71 |
cursor.execute(
|
| 72 |
"""
|
| 73 |
SELECT id, uid, display_name, pais, correo, fecha_registro,
|
| 74 |
+
usos, prompt, prompt_eval, proveedor, seed, created_at
|
| 75 |
FROM `registro`
|
| 76 |
WHERE id = %s
|
| 77 |
""",
|
|
|
|
| 95 |
"fecha_registro": registro[5],
|
| 96 |
"usos": registro[6],
|
| 97 |
"prompt": registro[7],
|
| 98 |
+
"prompt_eval": registro[8],
|
| 99 |
+
"proveedor": registro[9],
|
| 100 |
+
"seed": registro[10],
|
| 101 |
+
"created_at": registro[11]
|
| 102 |
}
|
| 103 |
}
|
| 104 |
else:
|
|
|
|
| 150 |
cursor.execute(
|
| 151 |
"""
|
| 152 |
SELECT id, uid, display_name, pais, correo, fecha_registro,
|
| 153 |
+
usos, prompt, prompt_eval, proveedor, seed, created_at
|
| 154 |
FROM `registro`
|
| 155 |
ORDER BY created_at DESC
|
| 156 |
LIMIT %s OFFSET %s
|
|
|
|
| 175 |
"fecha_registro": reg[5],
|
| 176 |
"usos": reg[6],
|
| 177 |
"prompt": reg[7],
|
| 178 |
+
"prompt_eval": reg[8],
|
| 179 |
+
"proveedor": reg[9],
|
| 180 |
+
"seed": reg[10],
|
| 181 |
+
"created_at": reg[11]
|
| 182 |
})
|
| 183 |
|
| 184 |
logger.info(f"📈 Retornando {len(datos)} registros")
|
imagen_log.sql
CHANGED
|
@@ -7,6 +7,7 @@ CREATE TABLE `registro` (
|
|
| 7 |
`fecha_registro` datetime,
|
| 8 |
`usos` integer,
|
| 9 |
`prompt` varchar(255),
|
|
|
|
| 10 |
`proveedor` varchar(255),
|
| 11 |
`seed` int,
|
| 12 |
`created_at` timestamp
|
|
|
|
| 7 |
`fecha_registro` datetime,
|
| 8 |
`usos` integer,
|
| 9 |
`prompt` varchar(255),
|
| 10 |
+
`prompt_eval` varchar(255),
|
| 11 |
`proveedor` varchar(255),
|
| 12 |
`seed` int,
|
| 13 |
`created_at` timestamp
|
models.py
CHANGED
|
@@ -14,6 +14,7 @@ class RegistroRequest(BaseModel):
|
|
| 14 |
fecha_registro: Optional[datetime] = Field(None, description="Fecha de registro")
|
| 15 |
usos: Optional[int] = Field(0, ge=0, description="Cantidad de usos")
|
| 16 |
prompt: Optional[str] = Field(None, max_length=255, description="Prompt utilizado")
|
|
|
|
| 17 |
proveedor: Optional[str] = Field(None, max_length=255, description="Proveedor del servicio")
|
| 18 |
seed: Optional[int] = Field(None, description="Seed para generación")
|
| 19 |
|
|
@@ -38,6 +39,7 @@ class RegistroResponse(BaseModel):
|
|
| 38 |
fecha_registro: Optional[datetime]
|
| 39 |
usos: int
|
| 40 |
prompt: Optional[str]
|
|
|
|
| 41 |
proveedor: Optional[str]
|
| 42 |
seed: Optional[int]
|
| 43 |
created_at: datetime
|
|
|
|
| 14 |
fecha_registro: Optional[datetime] = Field(None, description="Fecha de registro")
|
| 15 |
usos: Optional[int] = Field(0, ge=0, description="Cantidad de usos")
|
| 16 |
prompt: Optional[str] = Field(None, max_length=255, description="Prompt utilizado")
|
| 17 |
+
prompt_eval: Optional[str] = Field(None, max_length=255, description="Evaluación del prompt")
|
| 18 |
proveedor: Optional[str] = Field(None, max_length=255, description="Proveedor del servicio")
|
| 19 |
seed: Optional[int] = Field(None, description="Seed para generación")
|
| 20 |
|
|
|
|
| 39 |
fecha_registro: Optional[datetime]
|
| 40 |
usos: int
|
| 41 |
prompt: Optional[str]
|
| 42 |
+
prompt_eval: Optional[str]
|
| 43 |
proveedor: Optional[str]
|
| 44 |
seed: Optional[int]
|
| 45 |
created_at: datetime
|