Una pequeña comparativa del sistema de IA DeepSeek y el sistema ChatGPT para generar código Python de obtención de datos de un equipo y guardado en base de datos MySQL. Hacemos una petición inicial y una petición de modificación del código. Mostramos los resultados de la compilación real de los códigos Python generados por ambos sistemas de IA.

Preparación del entorno, prompt con petición y modificación del código generado

Para preparar el entorno, abrimos una sesión de chat en DeepSeek y en ChatGPT, en las mismas condiciones, con una cuenta gratuita.

Realizamos la misma petición en el prompt de ambos sistemas de IA:

genérame el código fuente en python para obtener los datos básicos de un equipp (hostname, IP, uso de ram) y los guarde en una base de datos MySQL

Además, añadimos un error ortográfico a propósito, introduciendo equipp en lugar de equipo.

Se le hace una petición de modificación del código Python para que compruebe si el equipo existe en la BD por el hostname, si existe que lo actualice, con este prompt:

ok, el código está bien pero, por favor, modifícalo para que compruebe si el equipo existe en la base de datos antes de insertarlo. Si existe (buscando por hostname), que haga un update para actualizarlo

Resultado de la IA de DeepSeek en la petición inicial

El código Python que nos ofrece DeepSeek es:

La explicación que DeepSeek aporta, además del código fuente Python:

Explicación del código:

  1. get_system_info(): Esta función obtiene el hostname, la dirección IP y el uso de RAM del sistema.
    • socket.gethostname() obtiene el nombre del host.
    • socket.gethostbyname(hostname) obtiene la dirección IP asociada al hostname.
    • psutil.virtual_memory().percent obtiene el porcentaje de uso de la RAM.
  2. save_to_database(): Esta función se conecta a la base de datos MySQL y guarda la información obtenida.
    • Se conecta a la base de datos utilizando mysql.connector.connect().
    • Crea una tabla llamada system_data si no existe.
    • Inserta los datos del sistema en la tabla.
  3. main(): Esta es la función principal que llama a las otras funciones para obtener la información del sistema y guardarla en la base de datos.

Configuración de la base de datos:

  • Asegúrate de que la base de datos system_info exista en tu servidor MySQL.
  • Cambia los valores de hostuser, y password en la función save_to_database() para que coincidan con tu configuración de MySQL.

Ejecución:

  • Ejecuta el script en tu entorno Python. Los datos del sistema se mostrarán en la consola y se guardarán en la base de datos MySQL.

Este código es un ejemplo básico y puede ser extendido o modificado según tus necesidades, como agregar más métricas del sistema o manejar errores de manera más robusta.

Resultado de la IA de ChatGPT en la petición inicial

El código Python que nos ofrece ChatGPT es:

La explicación que ChatGPT aporta, además del código fuente Python:

Aquí tienes un script en Python que obtiene el hostname, la dirección IP y el uso de RAM del equipo, y guarda estos datos en una base de datos MySQL.

Obtener Datos Equipo

Asegúrate de cambiar 'tu_usuario', 'tu_contraseña' y 'tu_base_de_datos' por los valores correspondientes a tu configuración de MySQL. También debes asegurarte de que MySQL está instalado y configurado correctamente. ¿Necesitas ayuda con algo más?

Resultado de la IA de DeepSeek en la petición de modificación de código

El resultado que proporciona DeepSeek para la petición de modificación del código Python es:

La explicación que DeepSeek aporta, además del código fuente Python, en la petición de modificación:

Cambios realizados:

  1. Verificación de existencia del equipo:
    • Se agregó una consulta SELECT para verificar si el hostname ya existe en la tabla system_data.
    • Si el hostname existe (result no es None), se ejecuta una consulta UPDATE para actualizar los campos ip_addressram_usage y timestamp.
    • Si el hostname no existe, se ejecuta una consulta INSERT para agregar un nuevo registro.
  2. Campo hostname único:
    • Se agregó la restricción UNIQUE al campo hostname en la definición de la tabla para evitar duplicados.
  3. Actualización del timestamp:
    • En la consulta UPDATE, el campo timestamp se actualiza automáticamente a la fecha y hora actuales.

Ejemplo de uso:

  • Si el equipo ya existe en la base de datos, se actualizarán sus datos (ip_addressram_usage y timestamp).
  • Si el equipo no existe, se insertará un nuevo registro.

Este enfoque garantiza que no haya duplicados en la base de datos y que los datos siempre estén actualizados.

Resultado de la IA de ChatGPT en la petición de modificación de código

El resultado que proporciona ChatGPT para la petición de modificación del código Python es:

La explicación que ChatGPT aporta, además del código fuente Python, en la petición de modificación:

Editado

He modificado el código para que primero compruebe si el equipo ya existe en la base de datos (buscando por hostname). Si existe, actualizará sus datos en lugar de insertar un nuevo registro. Déjame saber si necesitas más ajustes.

Compilando el código Python generado por DeepSeek y ChatGPT

Para ejecutar el código generado por ambas IA, en real, hemos creado una BD en un servidor MySQL, añadiendo la tabla con la propia consulta de creación que indica cada IA, separadas, para usar cada una con su correspondiente IA.

Ejecutamos las siguientes consultas SQL (copiadas de la generación de las IA), únicamente modificamos el nombre de las tablas, para dejar una tabla para la IA de DeepSeek (ia_deepseek) y otra para la IA de ChatGPT (ia_chatgpt):

Realizamos la instalación de las librerías Python tal y como indica la IA DeepSeek en sus explicaciones, la de ChatGPT no lo hace:

Realizamos una pequeña modificación en el código generado por las dos IA, tal y como lo indican en sus explicaciones. Únicamente cambiamos los datos de conexión al servidor de MySQL, para que se establezca la conexión real (IP, usuario, contraseña) y el nombre de las tablas en el código Python.

Compilación del código Python generado por DeepSeek en la primera petición

Al intentar compilar el código generado por DeepSeek, muestra un error y no compila. Para poder compilarlo únicamente tenemos que modificar (comentar) las líneas del finally de la captura de error try… except … finally.

Con ese pequeño cambio compila y funciona perfectamente, obteniendo la IP, el nombre de red (hostname) y la memoria RAM usada. Muestra los datos por consola (esto no se lo pedimos):

Y los guarda en un registro de la tabla de la BD MySQL:

Por lo tanto, con esa pequeña modificación del código, ha funcionado perfectamente.

Compilación del código Python generado por ChatGPT en la primera petición

En el caso del ChatGPT, el código muestra un error de sintaxis desde el principio:

Realizamos una modificación en el código para solucionar el error de sintaxis. Solo hay que arreglar la finalización del comentario «»», que incluye «» en lugar de «»». Una vez hecha esta modificación, ejecutamos el código y funciona correctamente, insertando el registro correspondiente en la tabla del servidor de MySQL, con los datos (hostname, IP, RAM usada) correctos.

Compilación del código Python generado por DeepSeek en la modificación de código

Para el caso de la petición de modificación de código, donde pedimos a la IA DeepSeek que modifique el código Python para que permita buscar si ya existe el equipo en la tabla, si existe que lo actualice, si no existe que lo inserte. En el caso de DeepSeek, sin realizar ninguna modificación en el código (salvo las necesarias del nombre de la tabla y los datos de conexión), el resultado es correcto. Compila y realiza las tareas de inserción o actualización correctamente.

Incluso para realizar las pruebas de forma más eficiente, se ha ejecutado el código Python proporcionado por DeekSeep en un equipo Windows y en un equipo Linux.

Y se ha ejecutado varias veces para verificar que no duplica registros. El resultado ha sido correcto:

Compilación del código Python generado por ChatGPT en la modificación de código

Para el caso de la petición de modificación de código, donde pedimos a la IA ChatGPT que modifique el código Python para que permita buscar si ya existe el equipo en la tabla, si existe que lo actualice, si no existe que lo inserte. En el caso de ChatGPT, tenemos que realizar la modificación del código anterior, añadiendo una comilla doble al comentario para que compile.

Tras realizar esta modificación, el resultado es correcto. Compila y realiza las tareas de inserción o actualización correctamente. Realizamos las mismas pruebas que en el caso de DeepSeek, ejecutándolo en Linux y Windows varias veces, el resultado sigue siendo correcto:

Conclusiones finales de la comparativa DeepSeek vs ChatGPT en la generación de código Python

Analizando las explicaciones del código generado, sin duda, DeepSeek proporciona una explicación más detallada y de mejor calidad, comentando las líneas de código más importantes y dando una explicación más detallada del resultado. Tanto en la petición inicial como en la petición de modificación.

Analizando en profundidad el código Python, ambos son similares, con la misma estructuración, creando dos métodos, uno para obtener los datos del equipo y otro para realizar la conexión con la BD y la inserción del registro. Ambos han incluido una captura de errores básica.

Ambos sistemas de IA han generado prácticamente el mismo código, con pequeñas diferencias que no han afectado al resultado final.

Ninguno de los dos ha generado un código perfecto, ChatGPT ha generado un código con más errores de sintaxis, no ha sido capaz de acabar las líneas comentadas y hemos tenido que modificarlo para poder compilarlo.

Por todo ello, el mejor resultado lo ha proporcionado DeepSeek.