Spaces:
Sleeping
Sleeping
estilo_agregado campo nuevo
Browse files- add_estilo_agregado.py +53 -0
- funciones.py +15 -12
- imagen_log.sql +1 -0
- main.py +2 -1
- models.py +7 -0
add_estilo_agregado.py
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Script para agregar el campo 'estilo_agregado' a la tabla 'registro' en la base de datos remota
|
| 3 |
+
"""
|
| 4 |
+
|
| 5 |
+
import mysql.connector
|
| 6 |
+
from dotenv import load_dotenv
|
| 7 |
+
import os
|
| 8 |
+
|
| 9 |
+
# Cargar variables de entorno
|
| 10 |
+
load_dotenv()
|
| 11 |
+
|
| 12 |
+
try:
|
| 13 |
+
# Conexión a la base de datos
|
| 14 |
+
conexion = mysql.connector.connect(
|
| 15 |
+
host=os.getenv('DB_HOST'),
|
| 16 |
+
user=os.getenv('DB_USER'),
|
| 17 |
+
password=os.getenv('mariadb_c'),
|
| 18 |
+
database=os.getenv('DB_NAME'),
|
| 19 |
+
port=int(os.getenv('DB_PORT', 3306)),
|
| 20 |
+
autocommit=True
|
| 21 |
+
)
|
| 22 |
+
|
| 23 |
+
cursor = conexion.cursor()
|
| 24 |
+
|
| 25 |
+
# Verificar si la columna ya existe
|
| 26 |
+
cursor.execute(f"""
|
| 27 |
+
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS
|
| 28 |
+
WHERE TABLE_NAME = 'registro' AND COLUMN_NAME = 'estilo_agregado'
|
| 29 |
+
""")
|
| 30 |
+
|
| 31 |
+
if cursor.fetchone():
|
| 32 |
+
print("ℹ️ El campo 'estilo_agregado' ya existe en la tabla")
|
| 33 |
+
else:
|
| 34 |
+
# Agregar la columna después de 'estilo'
|
| 35 |
+
cursor.execute("""
|
| 36 |
+
ALTER TABLE registro
|
| 37 |
+
ADD COLUMN estilo_agregado varchar(255) AFTER estilo
|
| 38 |
+
""")
|
| 39 |
+
print("✅ Campo 'estilo_agregado' agregado correctamente")
|
| 40 |
+
|
| 41 |
+
# Mostrar estructura actualizada
|
| 42 |
+
cursor.execute("DESCRIBE registro")
|
| 43 |
+
columnas = cursor.fetchall()
|
| 44 |
+
|
| 45 |
+
print("\n📋 Estructura actualizada:")
|
| 46 |
+
for col in columnas:
|
| 47 |
+
print(f" - {col[0]}: {col[1]}")
|
| 48 |
+
|
| 49 |
+
cursor.close()
|
| 50 |
+
conexion.close()
|
| 51 |
+
|
| 52 |
+
except Exception as e:
|
| 53 |
+
print(f"❌ Error: {str(e)}")
|
funciones.py
CHANGED
|
@@ -41,23 +41,24 @@ def crear_registro(datos: RegistroRequest) -> dict:
|
|
| 41 |
prompt_type = datos.prompt_type
|
| 42 |
prompt_eval = datos.prompt_eval
|
| 43 |
estilo = datos.estilo
|
|
|
|
| 44 |
proveedor = datos.proveedor
|
| 45 |
seed = datos.seed
|
| 46 |
|
| 47 |
-
logger.info(f"📊 Datos a insertar - UID: {uid}, Usuario: {display_name}, País: {pais}, Email: {correo}, Prompt: {prompt}, Tipo: {prompt_type}, Eval: {prompt_eval}, Estilo: {estilo}, Proveedor: {proveedor}")
|
| 48 |
|
| 49 |
# Insertar en la BD
|
| 50 |
cursor = conn.cursor()
|
| 51 |
|
| 52 |
sql = """
|
| 53 |
INSERT INTO `registro`
|
| 54 |
-
(uid, display_name, pais, correo, fecha_registro, usos, prompt, prompt_type, prompt_eval, estilo, proveedor, seed)
|
| 55 |
-
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
|
| 56 |
"""
|
| 57 |
|
| 58 |
valores = (
|
| 59 |
uid, display_name, pais, correo, fecha_registro,
|
| 60 |
-
usos, prompt, prompt_type, prompt_eval, estilo, proveedor, seed
|
| 61 |
)
|
| 62 |
|
| 63 |
cursor.execute(sql, valores)
|
|
@@ -73,7 +74,7 @@ def crear_registro(datos: RegistroRequest) -> dict:
|
|
| 73 |
cursor.execute(
|
| 74 |
"""
|
| 75 |
SELECT id, uid, display_name, pais, correo, fecha_registro,
|
| 76 |
-
usos, prompt, prompt_type, prompt_eval, estilo, proveedor, seed, created_at
|
| 77 |
FROM `registro`
|
| 78 |
WHERE id = %s
|
| 79 |
""",
|
|
@@ -100,9 +101,10 @@ def crear_registro(datos: RegistroRequest) -> dict:
|
|
| 100 |
"prompt_type": registro[8],
|
| 101 |
"prompt_eval": registro[9],
|
| 102 |
"estilo": registro[10],
|
| 103 |
-
"
|
| 104 |
-
"
|
| 105 |
-
"
|
|
|
|
| 106 |
}
|
| 107 |
}
|
| 108 |
else:
|
|
@@ -154,7 +156,7 @@ def obtener_registros(limit: int = 10, offset: int = 0) -> dict:
|
|
| 154 |
cursor.execute(
|
| 155 |
"""
|
| 156 |
SELECT id, uid, display_name, pais, correo, fecha_registro,
|
| 157 |
-
usos, prompt, prompt_type, prompt_eval, estilo, proveedor, seed, created_at
|
| 158 |
FROM `registro`
|
| 159 |
ORDER BY created_at DESC
|
| 160 |
LIMIT %s OFFSET %s
|
|
@@ -182,9 +184,10 @@ def obtener_registros(limit: int = 10, offset: int = 0) -> dict:
|
|
| 182 |
"prompt_type": reg[8],
|
| 183 |
"prompt_eval": reg[9],
|
| 184 |
"estilo": reg[10],
|
| 185 |
-
"
|
| 186 |
-
"
|
| 187 |
-
"
|
|
|
|
| 188 |
})
|
| 189 |
|
| 190 |
logger.info(f"📈 Retornando {len(datos)} registros")
|
|
|
|
| 41 |
prompt_type = datos.prompt_type
|
| 42 |
prompt_eval = datos.prompt_eval
|
| 43 |
estilo = datos.estilo
|
| 44 |
+
estilo_agregado = datos.estilo_agregado
|
| 45 |
proveedor = datos.proveedor
|
| 46 |
seed = datos.seed
|
| 47 |
|
| 48 |
+
logger.info(f"📊 Datos a insertar - UID: {uid}, Usuario: {display_name}, País: {pais}, Email: {correo}, Prompt: {prompt}, Tipo: {prompt_type}, Eval: {prompt_eval}, Estilo: {estilo}, Estilo Agregado: {estilo_agregado}, Proveedor: {proveedor}")
|
| 49 |
|
| 50 |
# Insertar en la BD
|
| 51 |
cursor = conn.cursor()
|
| 52 |
|
| 53 |
sql = """
|
| 54 |
INSERT INTO `registro`
|
| 55 |
+
(uid, display_name, pais, correo, fecha_registro, usos, prompt, prompt_type, prompt_eval, estilo, estilo_agregado, proveedor, seed)
|
| 56 |
+
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)
|
| 57 |
"""
|
| 58 |
|
| 59 |
valores = (
|
| 60 |
uid, display_name, pais, correo, fecha_registro,
|
| 61 |
+
usos, prompt, prompt_type, prompt_eval, estilo, estilo_agregado, proveedor, seed
|
| 62 |
)
|
| 63 |
|
| 64 |
cursor.execute(sql, valores)
|
|
|
|
| 74 |
cursor.execute(
|
| 75 |
"""
|
| 76 |
SELECT id, uid, display_name, pais, correo, fecha_registro,
|
| 77 |
+
usos, prompt, prompt_type, prompt_eval, estilo, estilo_agregado, proveedor, seed, created_at
|
| 78 |
FROM `registro`
|
| 79 |
WHERE id = %s
|
| 80 |
""",
|
|
|
|
| 101 |
"prompt_type": registro[8],
|
| 102 |
"prompt_eval": registro[9],
|
| 103 |
"estilo": registro[10],
|
| 104 |
+
"estilo_agregado": registro[11],
|
| 105 |
+
"proveedor": registro[12],
|
| 106 |
+
"seed": registro[13],
|
| 107 |
+
"created_at": registro[14]
|
| 108 |
}
|
| 109 |
}
|
| 110 |
else:
|
|
|
|
| 156 |
cursor.execute(
|
| 157 |
"""
|
| 158 |
SELECT id, uid, display_name, pais, correo, fecha_registro,
|
| 159 |
+
usos, prompt, prompt_type, prompt_eval, estilo, estilo_agregado, proveedor, seed, created_at
|
| 160 |
FROM `registro`
|
| 161 |
ORDER BY created_at DESC
|
| 162 |
LIMIT %s OFFSET %s
|
|
|
|
| 184 |
"prompt_type": reg[8],
|
| 185 |
"prompt_eval": reg[9],
|
| 186 |
"estilo": reg[10],
|
| 187 |
+
"estilo_agregado": reg[11],
|
| 188 |
+
"proveedor": reg[12],
|
| 189 |
+
"seed": reg[13],
|
| 190 |
+
"created_at": reg[14]
|
| 191 |
})
|
| 192 |
|
| 193 |
logger.info(f"📈 Retornando {len(datos)} registros")
|
imagen_log.sql
CHANGED
|
@@ -10,6 +10,7 @@ CREATE TABLE `registro` (
|
|
| 10 |
`prompt_type` varchar(255),
|
| 11 |
`prompt_eval` varchar(255),
|
| 12 |
`estilo` varchar(255),
|
|
|
|
| 13 |
`proveedor` varchar(255),
|
| 14 |
`seed` int,
|
| 15 |
`created_at` timestamp
|
|
|
|
| 10 |
`prompt_type` varchar(255),
|
| 11 |
`prompt_eval` varchar(255),
|
| 12 |
`estilo` varchar(255),
|
| 13 |
+
`estilo_agregado` varchar(255),
|
| 14 |
`proveedor` varchar(255),
|
| 15 |
`seed` int,
|
| 16 |
`created_at` timestamp
|
main.py
CHANGED
|
@@ -62,13 +62,14 @@ async def registrar(datos: RegistroRequest):
|
|
| 62 |
- prompt_type: Tipo de prompt
|
| 63 |
- prompt_eval: Evaluación del prompt procesado
|
| 64 |
- estilo: Estilo para la generación
|
|
|
|
| 65 |
- proveedor: Proveedor del servicio
|
| 66 |
- seed: Seed para generación
|
| 67 |
|
| 68 |
**Respuesta:** Retorna los datos del registro creado con su ID único
|
| 69 |
"""
|
| 70 |
|
| 71 |
-
logger.info(f"📝 Nuevo registro - UID: {datos.uid}, Email: {datos.correo}, Prompt: {datos.prompt}, Tipo: {datos.prompt_type}, Eval: {datos.prompt_eval}, Estilo: {datos.estilo}")
|
| 72 |
|
| 73 |
resultado = crear_registro(datos)
|
| 74 |
|
|
|
|
| 62 |
- prompt_type: Tipo de prompt
|
| 63 |
- prompt_eval: Evaluación del prompt procesado
|
| 64 |
- estilo: Estilo para la generación
|
| 65 |
+
- estilo_agregado: Estilo adicional
|
| 66 |
- proveedor: Proveedor del servicio
|
| 67 |
- seed: Seed para generación
|
| 68 |
|
| 69 |
**Respuesta:** Retorna los datos del registro creado con su ID único
|
| 70 |
"""
|
| 71 |
|
| 72 |
+
logger.info(f"📝 Nuevo registro - UID: {datos.uid}, Email: {datos.correo}, Prompt: {datos.prompt}, Tipo: {datos.prompt_type}, Eval: {datos.prompt_eval}, Estilo: {datos.estilo}, Estilo Agregado: {datos.estilo_agregado}")
|
| 73 |
|
| 74 |
resultado = crear_registro(datos)
|
| 75 |
|
models.py
CHANGED
|
@@ -17,15 +17,21 @@ class RegistroRequest(BaseModel):
|
|
| 17 |
prompt_type: Optional[str] = Field(None, max_length=255, description="Tipo de prompt")
|
| 18 |
prompt_eval: Optional[str] = Field(None, max_length=255, description="Evaluación del prompt")
|
| 19 |
estilo: Optional[str] = Field(None, max_length=255, description="Estilo para la generación")
|
|
|
|
| 20 |
proveedor: Optional[str] = Field(None, max_length=255, description="Proveedor del servicio")
|
| 21 |
seed: Optional[int] = Field(None, description="Seed para generación")
|
| 22 |
|
| 23 |
class Config:
|
| 24 |
example = {
|
|
|
|
| 25 |
"display_name": "Juan Pérez",
|
| 26 |
"pais": "España",
|
| 27 |
"correo": "juan@example.com",
|
| 28 |
"prompt": "crear imagen de perro",
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
"proveedor": "openai",
|
| 30 |
"seed": 12345
|
| 31 |
}
|
|
@@ -44,6 +50,7 @@ class RegistroResponse(BaseModel):
|
|
| 44 |
prompt_type: Optional[str]
|
| 45 |
prompt_eval: Optional[str]
|
| 46 |
estilo: Optional[str]
|
|
|
|
| 47 |
proveedor: Optional[str]
|
| 48 |
seed: Optional[int]
|
| 49 |
created_at: datetime
|
|
|
|
| 17 |
prompt_type: Optional[str] = Field(None, max_length=255, description="Tipo de prompt")
|
| 18 |
prompt_eval: Optional[str] = Field(None, max_length=255, description="Evaluación del prompt")
|
| 19 |
estilo: Optional[str] = Field(None, max_length=255, description="Estilo para la generación")
|
| 20 |
+
estilo_agregado: Optional[str] = Field(None, max_length=255, description="Estilo adicional")
|
| 21 |
proveedor: Optional[str] = Field(None, max_length=255, description="Proveedor del servicio")
|
| 22 |
seed: Optional[int] = Field(None, description="Seed para generación")
|
| 23 |
|
| 24 |
class Config:
|
| 25 |
example = {
|
| 26 |
+
"uid": "usuario123",
|
| 27 |
"display_name": "Juan Pérez",
|
| 28 |
"pais": "España",
|
| 29 |
"correo": "juan@example.com",
|
| 30 |
"prompt": "crear imagen de perro",
|
| 31 |
+
"prompt_type": "imagen",
|
| 32 |
+
"prompt_eval": "muy buena calidad",
|
| 33 |
+
"estilo": "realista",
|
| 34 |
+
"estilo_agregado": "alto detalle",
|
| 35 |
"proveedor": "openai",
|
| 36 |
"seed": 12345
|
| 37 |
}
|
|
|
|
| 50 |
prompt_type: Optional[str]
|
| 51 |
prompt_eval: Optional[str]
|
| 52 |
estilo: Optional[str]
|
| 53 |
+
estilo_agregado: Optional[str]
|
| 54 |
proveedor: Optional[str]
|
| 55 |
seed: Optional[int]
|
| 56 |
created_at: datetime
|