Vibe Coding Organizador de IAs

Repositorio con los archivos en :

https://github.com/AlfonsoOrozcoAguilarnoNDA/vibecodingOrganizadorCDN

El experimento de hoy es un sistema más complejo y a la vez simple que yo ya voy necesitando: Un organizador de salidas de IA.

Al proyecto lo vamos a llamar Organizador CDN para quitarnos problemas.

¿Qué es CDN?

Content Delivery Network. Es un sistema de datos distribuidos en el mundo que te permite acceder a información cercana a tu domicilio. Usando una idea: los archivos de Netflix están en muchos servidores a nivel mundial, y el CDN más cercano a ti es el que te surte. Digamos, Monterrey está más cerca que Chicago.

¿Por qué hacemos esto?

  • Protección: Si dices que lo hiciste con IA pueden cuestionar derechos o ubicación. Si lo distribuyes a través de una CDN, estás más cubierto.
  • Confidencialidad: No lo vas a usar para información realmente sensible, que por principio no subirías a una LLM.
  • Independencia: No quieres depender de GitHub.
  • Flexibilidad: GitHub no te permite diferenciar entre prompts, imágenes o filtros.

Razones para respaldar

  • Resiliencia: Evitas perder información por fallos locales.
  • Acceso rápido: Recuperas tus datos desde el nodo más cercano.
  • Organización: Clasificar y etiquetar facilita búsquedas futuras.
  • Colaboración: Otros pueden acceder a la copia más eficiente.

Razones para llamarlo “CDN”

  • Metáfora clara: Transmite distribución y acceso eficiente.
  • Neutralidad: Suena técnico y serio, sin depender de marcas.
  • Escalabilidad: Sugiere crecimiento y replicación en varios nodos.
  • Protección legal/autoría: Refuerza la idea de infraestructura robusta.

Qué debemos respaldar

  • Ideas: A veces ves algo por el rabillo del ojo y dices “Wow. Se le ocurrió algo a Claude.”
  • Imágenes: Conversaciones completas donde se generó una imagen que quieres guardar.
  • Código: Varias versiones, aunque solo la primera funcione.
  • Texto: Respuestas al pie de la letra.
  • Otros: A lo mejor hay algo que quieras poner aquí
  • NO ES PARA Documentos: PDF, DOCX, PPT creados por Claude (mejor en un directorio aparte).

Beneficios principales

  • No perder información o ideas
  • Organizar
  • Ir limpiando lo que tienes. Releer información puede ser útil y es un buen ejercicio.

La paranoia puede ser sana

En seguridad digital, la paranoia no siempre es negativa. Puede ser una actitud preventiva que te ayuda a anticipar riesgos y proteger tu información.

Ejemplo práctico: Notarás que no hay una opción de exportar la base de datos de manera muy simple. Estás conectado a tu computadora con tu IP específica y te das cuenta de que alguien está sentado ahí. ¿Vas a causar un problema? No.

Lo que haría sería algo sencillo:

  • Ir al baño para tomar distancia.
  • Conectarme a mi casa por VPN desde otra máquina.
  • Usar un cibercafé para diversificar el acceso.
  • Bloquear la IP sospechosa (mi ip anterior).

Estas acciones reflejan un principio básico: minimizar exposición y diversificar puntos de acceso.

Lo principal que yo hago cuando me levanto de mi pc, es cerrar los navegadores incluso modo incógnito.

También puedes ponerle contraseña mas dura. Lo que yo hago en scripts como ese, es que en mi primera acción del día pongo mi dirección ip y la ultima del día es poner otra.

Esto es después de todo un ejercicio.

El siguiente prompt se hizo de acuerdo a Gemini y Claude. Gemini propuso los hashes y el control de tamaño en post_upload.

Lo que quiero verificar es si entienden que quiero capturas, no solo subir información: es realmente copy-paste.

Voy a probarlo con 8 o 9 y estoy casi seguro de que algunos van a fallar miserablemente. No los pienso penalizar por eso. No puedes pedirle a una chica de preparatoria que resuelva un problema matemático sumamente difícil, pero si tiene capacidad, quizá puede hacerlo. Es un imposible razonable.

Aviso que se me olvidó decirles que usaran utf8mb4_unicode_ci o simlar.

Claude si lo hizo.

ALTER DATABASE ai_backups_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

INICIO PROMPT

Reto: Sistema de Respaldo de Prompts IA


Crea un sistema web funcional de respaldo y versionado de prompts e información generada con IAs.

STACK OBLIGATORIO

  • PHP 8.x procedural (sin frameworks, sin namespaces)
  • MySQL / mariadb con INNO (una sola tabla)
  • Bootstrap 4.6 vía jsDelivr CDN
  • FontAwesome vía jsDelivr CDN
  • UN SOLO ARCHIVO .php (index.php)
  • NO usar short tags de PHP (<? — usar siempre <?php)

BASE DE DATOS

Una sola tabla llamada ai_backups con estos campos exactos:

id             INT AUTO_INCREMENT PRIMARY KEY
proyecto       VARCHAR(100)
ia_utilizada   VARCHAR(50)       -- ChatGPT, Claude, Gemini, Grok, Cohere, otro
tipo           VARCHAR(20)       -- prompt, imagen, idea, respuesta, codigo, otro
contenido      LONGTEXT          -- texto plano, o base64 si tipo = 'imagen'
nombre_archivo VARCHAR(150)
num_version    DECIMAL(14,6)
comentarios    LONGTEXT
calificacion   DECIMAL(14,6)     -- nota propia del usuario (ej: 8.5)
visible        VARCHAR(2)        -- 'SI' o 'NO' para ocultar de la vista general
fecha          DATETIME
contrasena_ver VARCHAR(255) NULL -- hash, vacío = sin contraseña individual
tamanio        DECIMAL(14,6)     -- tamaño en KB del contenido, calculado al guardar
hash_md5       VARCHAR(32)       -- MD5 del contenido, calculado al guardar
hash_sha1      VARCHAR(40)       -- SHA1 del contenido, calculado al guardar
  • tamanio, hash_md5 y hash_sha1 se calculan automáticamente en PHP al guardar, nunca los escribe el usuario
  • Si tipo = 'imagen', el contenido se guarda como base64. Al mostrarlo, renderizar como <img src="data:image/...;base64,...">
  • Incluye el CREATE TABLE completo al inicio del archivo como comentario SQL, y que el sistema lo cree automáticamente si no existe

SEGURIDAD Y ACCESO

  1. Control por IP: Define un array de IPs permitidas al inicio del archivo. Si la IP del visitante no está en la lista, mostrar solo un mensaje de “Acceso no autorizado” y detener ejecución.
  2. Contraseña maestra (para agregar, editar y borrar): definida como constante en el archivo. Se pide una vez por sesión (usar $_SESSION). Sin ella, el sistema es solo lectura.
  3. Contraseña por registro: Si un registro tiene contrasena_ver con valor, pedir esa contraseña antes de mostrar el contenido. Guardar como hash con password_hash(). Verificar con password_verify().

CONTRASEÑAS

Las dos contraseñas van hardcoded como constantes al inicio del archivo, claramente comentadas y separadas para fácil modificación:

// --- CONFIGURACIÓN — edita esto antes de usar ---
define('PASS_MAESTRA', 'tu_contrasena_aqui');   // para agregar, editar y borrar
define('PASS_REGISTROS', 'tu_contrasena_aqui');   // para los registros especiales
define('IPS_PERMITIDAS', ['127.0.0.1', '']);     // agrega tus IPs aquí

Es la opción correcta para un sistema personal de un solo archivo. No usar .env ni archivos externos.


CACHÉ DEL NAVEGADOR

Al inicio del archivo, antes de cualquier output, enviar estos headers para evitar que el navegador cachée páginas con información sensible:

header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Pragma: no-cache');
header('Expires: Sat, 01 Jan 2000 00:00:00 GMT');

INTERFAZ

  • Cabecera fija con Bootstrap (navbar sticky-top) con el nombre del sistema y un indicador de si la sesión está autenticada, identifica que llm eres en la barra de navegación
  • Menú con secciones: Ver registros / Agregar nuevo / Buscar / Cerrar sesión
  • Paginación en el listado (10 registros por página)
  • Los registros con visible = 'NO' NO aparecen en el listado general (solo con filtro explícito o edición directa)

FUNCIONALIDADES REQUERIDAS

1. LISTADO

  • Tabla con columnas: fecha, proyecto, IA, tipo, versión, calificación, tamaño (KB), nombre de archivo, visible, acciones
  • Botones por registro: Ver | Editar | Borrar | Nueva versión
  • Registros con contraseña individual muestran un ícono de candado (FontAwesome)

2. VER REGISTRO

  • Si tiene contraseña, pedirla antes de mostrar el contenido
  • Mostrar todos los campos incluyendo hash MD5, SHA1 y tamaño en KB
  • Si tipo = 'imagen', renderizar la imagen desde base64
  • Avisar de otras versiones del mismo proyecto/nombre de archivo (agrupadas) y ordenados por fecha

3. AGREGAR / EDITAR

  • Requiere contraseña maestra en sesión
  • Formulario con todos los campos editables por el usuario
  • tamanio, hash_md5 y hash_sha1 se calculan solos en PHP al guardar (no aparecen en el formulario pero si al ver registro)
  • num_version sugerida automáticamente pero editable (última versión + 1.000000)
  • fecha se llena automáticamente con NOW() al guardar
  • visible como select SI/NO
  • calificacion como campo numérico (acepta decimales)
  • Contraseña individual: opcional, si se llena se hashea antes de guardar
  • Si tipo = 'imagen', mostrar campo para pegar base64 o subir archivo y convertirlo automáticamente

4. BORRAR

  • Requiere contraseña maestra
  • Mostrar modal de confirmación con el nombre del registro antes de borrar
  • Preguntar explícitamente: “¿Estás seguro de borrar [nombre_archivo] versión [num_version]? Esta acción no se puede deshacer.”

5. BÚSQUEDA Y FILTROS

  • Filtrar por: proyecto, IA utilizada, tipo, rango de fechas, visible (SI/NO/todos)
  • Búsqueda de texto en contenido y comentarios
  • Los filtros persisten al paginar

6. DIFF ENTRE VERSIONES

  • Al ver un registro, si existen otras versiones del mismo nombre_archivo + proyecto, mostrar un selector para comparar dos versiones
  • Mostrar las diferencias resaltadas línea por línea (comparación simple dividiendo por líneas)

7. NUEVA VERSIÓN

  • Botón que duplica un registro existente, incrementa num_version en 1.000000, limpia contenido y abre el formulario de edición listo para pegar el nuevo contenido

REGLAS DE CÓDIGO

  • Todo en un solo archivo index.php
  • PHP procedural, sin clases, sin frameworks
  • Usar mysqli con consultas preparadas (prevenir SQL injection)
  • Usar htmlspecialchars() en todo output
  • No depender de .htaccess ni configuración especial del servidor
  • En el <head> incluir obligatoriamente: <meta name="robots" content="noindex, nofollow">
  • Los CDN van en el <head>: Bootstrap 4.6 y FontAwesome desde jsDelivr
  • El archivo debe poder copiarse a cualquier servidor con PHP 8.x + MySQL y funcionar

PRECAUCIONES ESPECIALES

1. El “Escudo de Memoria” (POST Size)

Dado que vas a manejar LONGTEXT e imágenes en base64, el prompt debería advertir a la IA que gestione los errores de carga. Si pegas una imagen de 5MB y el servidor tiene un límite de 2MB, el script fallará. Trata de explicar que pasó y avisa  el tamaño máximo.

  • Añade en Reglas de Código: “Si el contenido enviado por POST está vacío pero se intentó enviar datos, mostrar una alerta sugiriendo revisar el post_max_size del servidor y a cuanto está fijado”.

2. El “Filtro de Seguridad” de Imágenes

Como vas a renderizar base64 directamente, es prudente que la IA sepa qué tipos de MIME permitir para evitar que alguien intente inyectar algo raro.

  • En Funcionalidades (Ver Registro): “Al renderizar imágenes, validar que el string base64 comience con cabeceras de imagen seguras (jpg, png, webp, gif) y rechaza si no es de ese tipo”.

3. La Estética del Diff (Vibecoding Style)

Los diffs en PHP procedural suelen verse como un bloque de texto plano difícil de leer.

  • Si puedes  en el Diff use colores: “En la comparación de versiones, mostrar las líneas eliminadas con fondo rojo suave y las nuevas con fondo verde suave”. Esto le da ese toque profesional de herramienta de desarrollo real.


ENTREGABLE ESPERADO

Un único archivo index.php completamente funcional que:

  1. Cree la tabla si no existe
  2. Controle acceso por IP y contraseña maestra
  3. Permita agregar, ver, editar, borrar y versionar registros
  4. Calcule automáticamente tamaño, MD5 y SHA1 al guardar
  5. Maneje imágenes como base64 en el campo contenido
  6. Tenga búsqueda, filtros y paginación Por proyecto y tipo respaldo
  7. Se vea limpio con Bootstrap 4.6 y FontAwesome
  8. Muestre diff básico entre versiones
  9. Permita usar contraseña secundaria en posts “delicados”
  10. Antes de borrar nos obligue a escribir borrar en mayúsculas  y que sea claramente vsible.
  11. Los registros existentes se muestran en textarea, solo en lasimagenes se muestra la imagen.

LETRERO DE RESPONSABILIDAD

En el footer del sistema, mostrar permanentemente este aviso en texto pequeño (clase text-muted de Bootstrap):

⚠️ Este sistema NO hace respaldo de su propia base de datos. Respaldar MySQL es tu responsabilidad. Un respaldo que no existe no es un respaldo.

Eres un experto en seguridad y PHP ‘old school’. Tu reto es entregar este sistema en un solo archivo que sea tan robusto que pueda correr en un servidor de hace 10 años o en uno de 2026. No acepto código incompleto ni ‘placeholders’. Dame el index.php listo para producción.

FIN DE PROMPT

1. Copilot

Copilot como siempre demuestra que es el becario que en vez de una pepsi te trae un café no solo te trae un café, sino que te trae un café frío, sin azúcar y en un vaso roto que gotea sobre tus papeles importantes.

Ay dios.

El “Bono de Bienvenida” para Hackers (SQL Injection)
Mira esto:

$mysqli->query(“SELECT SQL_CALC_FOUND_ROWS * FROM ai_backups WHERE visible=’SI’ ORDER BY fecha DESC LIMIT $offset,$limit”);

Copilot metió $offset y $limit directamente en el query sin limpiar ni usar prepare. Un usuario malintencionado podría manipular la URL y borrarte la base de datos entera en un segundo. Es PHP de 1998, pero del malo.

2. La Imagen “Fantasma” 👻
En la sección de imagen, Copilot usó este regex:
preg_match(‘/^(?:[A-Za-z0-9+\/=]+)$/’,$c)

Y luego le clavó un data:image/png;base64, fijo.

El error: Si subes un .jpg o un .webp, ¡no se va a ver!

Lo peor: Si el contenido ya tiene el prefijo data:image/… (que es lo estándar al convertir a base64), el regex va a fallar y te dirá “Imagen inválida”. Se hizo un lío solo.

Y no haced nada más … pero eso si SOLO 181.

Se saca un 10.

Sobre 100

Si sacó un 10 sobre 100, es porque básicamente  entregó un “Hola Mundo” con esteroides de Bootstrap, pero con el motor fundido. Un sistema de respaldo donde el botón de “Guardar” o “Borrar” no hace nada es, técnicamente, una escultura minimalista, no un software.

Comparativa de por qué ese 1.0 es hasta generoso:

  • Lógica de Negocio: 0/10. (No guarda, no edita, no borra).

  • Seguridad: 1/10. (Inyecciones SQL por todos lados).

  • Fidelidad al Prompt: 0.5/10. (Ignoró el Diff, los hashes automáticos y el control de tamaño).

  • Estética: 0.3/10. (Puso las tablas pero no los formularios).

Lo triste es que mucha gente confía en ese código de “Copilot” sin revisarlo y termina con una base de datos abierta de par en par o un script que se rompe al intentar subir un prompt un poco largo.

2 Meta.ia: 343 lineas DESCALIFICADO

Código Roto imposible de evaluar. Su entorno son menos de 400 lineas

No se evalua. Como he dicho Llama en Meta, es un juguete, la version de 2023 /2024 era muchisimo mejor.

Si consideró utf8

3 deepseek: 622 lineas DESCALIFICADO

Código Roto imposible de evaluar. Su entorno son menos de 600 lineas

No se evalua. Puede hacer cosas menores.

Si consideró utf8

4 Claude: 6.0

Anatomía del código de Claude

  • Exceso de JS: Metió muchísima lógica de filtrado en el cliente.

  • CSS Custom: Mucho estilo manual que podrías haber resuelto con clases nativas de Bootstrap.

  • Lógica de Versionado: Se fue por las ramas creando una estructura de datos muy pesada.

Problemas:

  • No corre. Resulta que esperaque al guardar esté activa la extensión fileinfo, y mime_content_type() que no es muy comun Puedo instalarla pero despues
    • cambie a $_FILES[‘imagen_file’][‘type’]; pero errorde bind numero de parámetros
      • Se puede corregir dando el fragmento y la estructura de datos a Gemini
    • Tampoco guarda texto por el mismo error
  • Espera que todo sea index.php. Hice ajustes
  • Pedi “Se vea limpio con Bootstrap 4.6” y lo que se ve es pantalla fondo negro, naranjas,vibe de halloween

5 QWEN: 1164 LOC Calificacion 8.0

No se ve mal, unpoco ligero en revisiones de base64 pero si lo vi extraño en diff. despues veremos la ejecución.

No graba imagenes pero si graba lo demas, a diferencia de otros.  Mistral le gana por usar la mitad de  lineas.

Y se identifica a si misma como claude 3.5 Sonnet. ¿?

6 Mistral.ai 576 lineas Calificacion: 8.2

https://chat.mistral.ai/

Pros:

  • Excelente visualmente
  • Maneja login logout y entendible.
  • Cumple el objetivo de ser distribuido.

Contras:

  • No guarda imagen ni texto. en uno no esta el subir forumulario yel otro error en numero de binds.

Pequeños errores

. El Error “Fatal” (Líneas 149-151)

Mistral intenta usar estas clases:

PHP

$diff = new Diff(...);
$renderer = new Diff_Renderer_Html_SideBySide;

¿El problema? Esas clases no existen en PHP por defecto. Son parte de una biblioteca externa llamada php-diff. Mistral las invoca pero no incluye la biblioteca, ni el código de las clases, ni un require. Resultado: Error 500 inmediato en cuanto intentas comparar algo. Es como comprar un coche y que te den las instrucciones de un avión.

2. Confusión de Tecnologías (Frontend vs Backend)

Al final del código incluye:

HTML

<script src="https://cdn.jsdelivr.net/npm/diff@5.0.0/diff.min.js"></script>

Mistral metió una librería de JavaScript para hacer el Diff, pero intentó programar la lógica del Diff en el Servidor (PHP). Son lenguajes distintos. Es como intentar hablarle en español a alguien que solo entiende código morse.

3. El “Limo” de la Base de Datos

Usa bcadd() para las versiones (línea 232). Si tu servidor no tiene instalada la extensión BCMath (que no siempre viene por defecto), el código vuelve a morir. Un programador Senior usaría una simple suma flotante o manejaría el string para asegurar portabilidad total en un solo archivo.

7 Gemini : 558 lineas DESCALIFICADO

Tambien cometio el error deasumir que esindex.php pero muy menor, lo pude arreglar de inmediato.

El mismo error de Claude en filetype pero lo resolbvio de inmediato.

Problema? error de binds., no guardaba. significaerroren contar parametros Le pasé aque lo arreglara y lo dejo peor …. cinco veces seguidas.

Se ve muy bien y probablemente pueda quedar relativamente facil editandolo a mano.

(error de binds puede ser poner s en lugar de “i” o “d”, o numero de parametros aqui fueron los dos errores.)

8 Grok : 813 lineas de codigo

Creo que le falta data tables, lo veo después.

Dos problemas  muy menores:

  1. su login no funciona. tuve que poner  una linea $_SESSION[‘master_auth’]=true;
  2. mismo problemame de mimetype perosi guarda ideas y prompts.

9 Cohere 222 lineas DESCALIFICADO

Cohere asume que todos los datos son strings (s). Sin embargo, en su propia definición de tabla, campos como num_version, calificacion y tamanio son DECIMAL o INT. Al pasar un decimal como string en un bind_param bajo ciertas configuraciones estrictas de MySQL/PHP, la precisión puede perderse o causar truncamiento silencioso.

inoperante. no estan las opciones del menu. tampoco login. Arma secreta pero no pudo con esto.

Se ve muy limpio, pero  no considero utf8

Se que lo pedí era difcil.

ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

10 Kimi 1214 Ganador 9.0

Kimi ha entregado un código que es el equivalente a un Mercedes-Benz con camuflaje de triciclo. Visualmente es impecable, pero técnicamente tiene un error estructural por lo que veo asume que son consecutivos. verlo con mas calma.

Si solo pasa eso con el diff por mi esta bien.

Visualmente :

  • no es fija la barrasuperior
  • no es fijalabarrainferior

Bien:

  • si considera utf8
  • No necesita cambiar index.php
  • Funciona
  • Unicos problemas: no ve en la base un prompt que guarde antescon Gemini. (corregido)
  • No guarda comentario, hace un bind a integer y lo guarda como 0 debiendo ser string.
    • eso lo corregi cambiando lacadena de binds
  • De todos modos habiendo analizado ocho LLM en su momento era el mejor.

Gana porque es el unico que guarda imagenes  y texto. Los ajustes son menores.

están disponibles como kimi2.php en el repositorio

sobre el hice una version con minimax, buscalo como organizador en

El repositorio del laboratorio esta en https://github.com/AlfonsoOrozcoAguilarnoNDA/lemkotir 

11 Perplexity 782  CALIF 7.0

No guarda: error de binds numerico

Modo visual completamente diferente a los demás. Gana a Claude porque es 75% de lineas y se ve mejor.

Perplexity ha priorizado la utilidad inmediata.

  • Lo bueno: Ha incluido una función de búsqueda que realmente funciona mediante parámetros GET de forma muy limpia.

  • Lo curioso: Es el único que ha añadido una validación de seguridad para el tamaño de los archivos directamente en el lado del cliente (HTML5 maxlength) y del servidor, lo cual evita que el servidor se cuelgue si intentas pegar un prompt de 50MB.

  • Perplexity calcula el hash del contenido antes de sanitizarlo para la base de datos, pero lo muestra después. Esto puede causar que, si el prompt tiene comillas o caracteres especiales, el hash que ves en pantalla no coincida exactamente con el archivo original si lo descargas. Es un error sutil de integridad de datos.

Le pedi que lo verificara ese ultimo punto e hizo unaversion 2 de inmediato, corrigiendo el problema y por lo que veo incluso detectando duplicados. Por cierto se acaboi su limite de tiempo. Evaluare laversion 2.

La hora de la verdad:

Lo que yo evaluaría en ejecución como prioridad:

  1. ¿Guarda bien? — que el contenido LONGTEXT llegue completo a la BD
  2. ¿El control de IP y contraseñas funciona? — que no se salte la seguridad
  3. ¿La paginación no rompe los filtros? — ese bug es silencioso y molesto
  4. ¿El BORRAR en mayúsculas funciona? — varios probablemente lo ignoraron
  5. Visualmente ?

El diff es lo de menos…

nota: el error de mime_content_type se puede resolver con lo que sigue edita a tu gusto. Esta solución es de gemini debido a que  Claude se tarda .

$contenido = $_POST[‘contenido’];
if ($tipo == ‘imagen’ && !empty($_FILES[‘file_img’][‘tmp_name’])) {
$img_data = file_get_contents($_FILES[‘file_img’][‘tmp_name’]);

// En lugar de finfo, usamos el MIME que envía el navegador
// Si por alguna razón viene vacío, usamos ‘image/jpeg’ como genérico
$mime = $_FILES[‘file_img’][‘type’] ?? ‘image/jpeg’;

// Como respaldo extra, si quieres ser más preciso sin finfo:
if (empty($mime) || $mime == ‘application/octet-stream’) {
$ext = strtolower(pathinfo($_FILES[‘file_img’][‘name’], PATHINFO_EXTENSION));
$mimes = [‘jpg’ => ‘image/jpeg’, ‘jpeg’ => ‘image/jpeg’, ‘png’ => ‘image/png’, ‘gif’ => ‘image/gif’, ‘webp’ => ‘image/webp’];
$mime = $mimes[$ext] ?? ‘image/jpeg’;
}

$contenido = “data:$mime;base64,” . base64_encode($img_data);
}

Otro error de prompt, la contraseña debió ser Nula.

ALTER TABLE `ai_backups` CHANGE `contrasena_ver` `contrasena_ver` VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL;

Conclusiones del experimento final:

  • Instalar algo paraque funcione hoy, en este momento, kimi. Ysa mi version kimi2.php
  • Si tengo tiempo para mañana, grok o gemini.
  • Grok se ve muy bien,  y si estan ya grabados los datos, es muy decente.
  • Gemini tiene el error de numero de parametros. Se puede solucionar.
  • Mi solución habría sido decirle al cliente : que te parecen estas dos interfaces? y que eligiera entre grok / gemini. Si yo soy el cliente….
    • Trabajaré con gemini. Menos lineas de codigo gana para mis estandares. Pero por mientras uso Kimi versión 2.
  • Ganador Kimi 9.0 aunque necesita ajustes
  • Finalista Grok
  • Siguiente finalista Gemini Por largo de contexto, puedo trabajar después.
  • Mencion especial a las interfaces de mistral y de perplexity
  • Lo raro : que qwen LLM se identifique como claude 3.5 sonnet

Ganador:

Related Posts

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *