Realizamos una pequeña comparativa de los sistemas de IA generativa: ChatGPT, Jan, Gemini y Copilot. Solicitamos la generación de código fuente Python. Realizamos una petición a estos sistemas de IA y mostramos el resultado que nos devuelve cada uno. Realizamos unas peticiones de modificación del código generado y mostramos el resultado. Indicamos las conclusiones analizando el código generado por cada uno de ellos.

La petición que hacemos a cada sistema de IA generativa

La petición que hacemos a los sistemas de IA generativa es:

necesito el código fuente en Python de un script que muestre una ventana Windows con un botón. Al pulsar el botón que obtenga en un label la memoria RAM total del equipo, la memoria RAM usada y la memoria RAM libre, en Gigabytes

En el mismo hilo de conversación les pediremos una modificación del código, con el siguiente prompt:

ok, el código es correcto, pero ahora quiero que me muestre también el espacio libre en todas las unidades de disco

Y una segunda modificación del código, con el prompt:

muéstrame el espacio libre de las unidades en TB

Resultado en Jan con el modelo Llama 3.2 1B Instruct Q8 y Wizard Coder Python 13B Q4

En el caso de Jan, un sistema de IA generativa que se instala en el equipo y funciona en local, admite múltiples modelos. Para esta comparativa usaremos dos modelos: Llama y Wizard Coder Python.

Resultado de Jan con el modelo LLama 3.2 1B Instruct Q8

En el caso de Jan con Llama, se obtiene este resultado:

Todo el resultado generado por Jan con el modelo Llama:

Para lograr esto, necesitaremos utilizar la biblioteca psutil para obtener información sobre el sistema operativo y los dispositivos. También necesitarás una ventana Windows con un botón que llame a la función get_memory_info() del módulo psutil. Aquí te dejo el código fuente:

El script funciona como sigue:

  1. Define una función get_memory_info() que recoge los datos de memoria total, usada y libre.
  2. Obtiene la memoria total, usada y libre utilizando el módulo psutil.
  3. Obtiene la información sobre las dispositivos del sistema (RAM y CPU) mediante win32gui.GetDevicesFromWindow() y psutil.disk_usage().
  4. Encontrar un dispositivo que sea RAM se realiza de la siguiente manera:

Recuerda instalar psutil mediante pip: pip install psutil.

Ejecución de código Python generado por Jan con Llama

La ejecución del código Python generado por Jan con Llama, no funciona, usa el paquete win32gui que no se instala correctamente, ni tampoco indica cómo instalarlo.

Resultado de Jan con el modelo Wizard Coder Python 13B Q4

Si usamos el modelo Wizard Coder Python 13B Q4 en Jan, nos devuelve este resultado:

Ejecución de código Python generado por Jan con Wizard Coder Python 13B Q4

En este caso, el código generado se ajusta más a lo pedido, aunque tampoco funciona correctamente. Incluso para poder compilar tenemos que añadir un par de paréntesis de cierre en el el código. Al compilarlo, sí muestra la ventana y el botón que le pedimos:

Pero, al pulsar en el botón «Get Memory Info» devuelve un error y no muestra el resultado pedido.

Tal vez Jan requiera de peticiones en inglés para ser más preciso.

Resultado en ChatGPT

En el caso de ChatGPT, este es el resultado de la pregunta:

Todo el resultado detallado por ChatGPT:

Aquí tienes el código fuente en Python para un script que utiliza la biblioteca tkinter para crear una ventana con un botón. Al pulsar el botón, se muestra la información de la memoria RAM total, usada y libre en un label, en Gigabytes:

Este script utiliza la biblioteca psutil para obtener información sobre la memoria RAM del sistema. Si no tienes instalada esta biblioteca, puedes hacerlo con el siguiente comando:

Ram Info Windows

Este script utiliza la biblioteca psutil para obtener información sobre la memoria RAM del sistema. Si no tienes instalada esta biblioteca, puedes hacerlo con el siguiente comando:

pip install psutil

Al ejecutar el script, verás una ventana con un botón. Al hacer clic en el botón, se mostrará la memoria RAM total, usada y libre en Gigabytes en un label dentro de la misma ventana.

Ejecución de código Python generado por ChatGPT

Si ejecutamos el código que nos ofrece ChatGPT, vemos que funciona perfectamente y que cumple con todos los requisitos que le hemos indicado. Muestra una ventana Windows con un botón. Al pulsar el botón obtiene la RAM total, la RAM usada y la RAM libre y la muestra en la ventana:

Resultado en Copilot

En el caso de Copilot, este es el resultado de la petición:

Todo el resultado detallado por Copilot:

¡Claro! Aquí tienes un ejemplo de código en Python que hace lo que necesitas. Utiliza las bibliotecas tkinter para la interfaz gráfica y psutil para obtener la información de la memoria RAM:

Este script crea una ventana con un botón. Al pulsar el botón, se actualiza un label con la memoria RAM total, usada y libre en gigabytes. Asegúrate de tener instalada la biblioteca psutil ejecutando pip install psutil en tu terminal.

¡Espero que te sea útil!

Ejecución de código Python generado por Copilot

Si ejecutamos el código que nos ofrece Copilot, vemos que funciona perfectamente y que cumple con todos los requisitos que le hemos indicado. Muestra una ventana Windows con un botón. Al pulsar el botón obtiene la RAM total, la RAM usada y la RAM libre y la muestra en la ventana:

Resultado en Gemini

En el caso de Gemini, este es el resultado de la pregunta:

Todo el resultado detallado por Gemini:

¡Absolutamente! Aquí tienes un script en Python que utiliza la biblioteca Tkinter para crear una ventana simple con un botón y un label, y el módulo psutil para obtener información detallada sobre la memoria RAM del sistema:

Explicación del código:

  1. Importar bibliotecas:
  2. Función obtener_info_memoria():
  3. Crear la interfaz:
  4. Iniciar el bucle principal:

Cómo usar el script:

  1. Guardar el código: Guarda este código en un archivo con extensión .py (por ejemplo, monitor_memoria.py).
  2. Ejecutar el script: Abre una terminal o línea de comandos, navega hasta la carpeta donde guardaste el archivo y ejecuta el comando python monitor_memoria.py.
  3. Interactuar con la ventana: Aparecerá una ventana con un botón. Al hacer clic en el botón, se actualizará el label con la información actualizada sobre la memoria RAM de tu sistema.

Personalizaciones:

  • Diseño: Puedes personalizar el aspecto de la ventana utilizando diferentes opciones de Tkinter para cambiar los colores, fuentes, tamaños, etc.
  • Información adicional: psutil ofrece más información sobre la memoria, como la memoria utilizada por procesos específicos. Puedes agregar esta información al label si lo deseas.
  • Actualizaciones automáticas: Puedes utilizar la función after de Tkinter para actualizar la información de la memoria automáticamente cada cierto tiempo.

Con este script, tendrás una herramienta sencilla para monitorear la memoria RAM de tu sistema directamente desde una ventana de Python.

Ejecución de código Python generado por Gemini

Si ejecutamos el código que nos ofrece Gemini, vemos que funciona perfectamente y que cumple con todos los requisitos que le hemos indicado. Muestra una ventana Windows con un botón. Al pulsar el botón obtiene la RAM total, la RAM usada y la RAM libre y la muestra en la ventana:

Conclusiones de la comparativa de sistemas de IA generativa

Como hemos podido extraer de la pequeña comparativa, los sistemas que nos generan el código Python correcto son ChatGPT, Copilot y Gemini.

Si analizamos el código Python generado por cada uno de ellos, comprobamos que son muy similares. Todos definen una función para obtener la RAM total, usada y libre y para mostrar el resultado en un label. Todos usan el paquete tkinter para mostrar la ventana, el botón y el label.

El que menos líneas de código genera es Copilot, si bien, tanto en Copilot como en Gemini se ha tenido que agrandar la ventana manualmente porque o bien no cabía todo el título o bien no cabía el resultado obtenido. En cambio, en ChatGPT, añade líneas de código para redimensionar la ventana y dejarla a un tamaño perfecto para no tener que agrandarla manualmente.

La ventana original en ChatGPT:

La ventana original en Copilot:

La ventana original en Gemini:

Por lo tanto, los tres sistemas de IA generativa, para este caso concreto de ejemplo, han funcionado correctamente. En cuanto a visualización de la ventana, el que mejor ha funcionado ha sido ChatGPT.

Añadir petición de modificación de resultados

Sobre el mismo hilo de conversación, a los tres sistemas de IA (ChatGPT, Copilot y Gemini) se les pide una modificación del código, la siguiente:

ok, el código es correcto, pero ahora quiero que me muestre también el espacio libre en todas las unidades de disco

Y el resultado para cada uno de ellos es el siguiente.

Resultado de ChatGPT con modificación de código

El resultado de la petición de modificación del código Python, para ChatGPT, pidiendo que muestre también el espacio libre en todas las unidades de disco es:

Si ejecutamos el código modificado ofrecido por ChatGPT devuelve el resultado correcto:

Y le hacemos una segunda modificación:

muéstrame el espacio libre de las unidades en TB

Y ChatGPT devuelve el siguiente código modificado:

Y el resultado correcto:

Resultado de Copilot con modificación de código

El resultado de la petición de modificación del código Python, para Copilot, pidiendo que muestre también el espacio libre en todas las unidades de disco es:

Si ejecutamos el código modificado ofrecido por Copilot devuelve el resultado correcto:

Y le hacemos una segunda modificación:

muéstrame el espacio libre de las unidades en TB

Y Copilot devuelve el siguiente código modificado:

Resultado de Gemini con modificación de código

El resultado de la petición de modificación del código Python, para Gemini, pidiendo que muestre también el espacio libre en todas las unidades de disco es:

Si ejecutamos el código modificado ofrecido por Gemini devuelve el resultado correcto (tenemos que agrandar la ventana manualmente):

Y le hacemos una segunda modificación:

muéstrame el espacio libre de las unidades en TB

Y Gemini devuelve el siguiente código modificado:

Y el resultado correcto:

Conclusión de las modificaciones pedidas a los sistemas de IA

En las modificaciones solicitadas en el mismo hilo de conversación a los sistemas de IA ChatGPT, Copilot y Gemini, se producen algunas diferencias en los resultados ofrecidos. Todos generan los resultados correctos, haciendo la modificación del código pedida para que muestre también el espacio libre de todas las unidades de disco del equipo y la segunda petición de modificación que muestre el resultado en Terabytes (TB).

La única diferencia en el resultado propuesto ha sido de Copilot, que añade un segundo botón para obtener la información del espacio libre de los discos. Y, también, muestra, además del espacio libre, el espacio total (tamaño) de cada disco, cosa que no le hemos pedido.