Mostrando entradas con la etiqueta claude ai. Mostrar todas las entradas
Mostrando entradas con la etiqueta claude ai. Mostrar todas las entradas

domingo, 22 de diciembre de 2024

Cursor: La integración de inteligencia artificial en el desarrollo

En el artículo previo vimos cómo utilizar chatbots en línea como asistentes en la programación. Sin embargo, este método se basa principalmente en cortar y pegar, lo cual puede ser problemático. No solo es tedioso usar constantemente Ctrl+C y Ctrl+V, sino que también dificulta que el modelo tenga en cuenta el contexto. Para proyectos grandes, esta técnica resulta poco útil y solo sirve en casos específicos, como micro mejoras en el código.

Teniendo esto en cuenta, era cuestión de tiempo que surgieran herramientas para solucionar estos problemas y mejorar el flujo de trabajo. Hoy hablaremos de Cursor, un entorno de desarrollo integrado (IDE) que integra modelos de lenguaje de última generación y que, actualmente, es uno de los más populares.

¿Qué es Cursor?

En el contexto de una herramienta de desarrollo basada en inteligencia artificial (IA), como Cursor, se puede definir como:

Cursor es un entorno de desarrollo integrado (IDE) impulsado por inteligencia artificial que mejora la productividad de los programadores. Utiliza modelos de lenguaje avanzados para ofrecer funcionalidades como autocompletado de código, generación de funciones o scripts, explicación de código existente, depuración asistida y sugerencias contextuales en tiempo real. Además, integra herramientas como búsqueda inteligente y análisis de código para optimizar el flujo de trabajo en el desarrollo de software.

La siguiente captura de pantalla pertenece al tutorial de bienvenida de la herramienta. Es útil para introducir Cursor, ya que muestra muy bien las funcionalidades principales que ofrece.

Tutorial de bienvenida de Cursor

Prompt and Edit (Editar con un Prompt)

Con la combinación de teclas Ctrl+K, se abre un diálogo directamente en el código, permitiendo utilizar prompts relacionados con el mismo, realizar refactorizaciones específicas, entre otras acciones.

Diálogo de edición en Cursor

En el diálogo que se abre, en la esquina inferior derecha, aparece un desplegable donde se puede seleccionar el modelo utilizado, como gpt-4o. Tras pulsar Enter, se genera la respuesta y la herramienta crea el nuevo código, que aparece destacado en verde. Si nos convence, debemos aprobar los cambios para que se guarden.

Código generado por Cursor

Chat with your Codebase

Mediante Ctrl+L, se abre una nueva pestaña en el lado derecho. Esta funcionalidad permite ampliar el contexto al especificar los archivos que queremos que el modelo tenga en cuenta, o incluso indicar que considere todo el código, utilizando @codebase.

Chat con la base de código en Cursor

Otra ventaja de esta funcionalidad es que explica los cambios propuestos directamente en la ventana, ayudando a entender mejor las modificaciones antes de aprobarlas.

Explicación de cambios en Cursor

En cualquier caso, estas son propuestas que deben ser aceptadas o descartadas manualmente para asegurarse de que se adapten a nuestras necesidades.




Autocompletado y Errores


También ofrece consultas a modelos para arreglar errores:



E incluso para autocompletado como Code Copilot, pero esta funcionalidad viene con limitaciones, al los pocos intentos me encontré con este mensaje y tuve que deshabilitarlo:

 





domingo, 1 de diciembre de 2024

Flujos de Trabajo - AI y Chatbost - Copy Paste - - ¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje? XII

 

Este artículo es parte de una series acerca de  De cómo aprender python con ChatGPT, en el enlace previo, puedes empezar por el principio si quieres.


Si estás comenzando en la programación con un chatbot, lo primero que necesitas es familiarizarte con un entorno de desarrollo. Por eso te recomiendo que comiences con una preguntando a tu chatbot favorito algo del estilo:

¿Puedes explicar cuáles son las herramientas básicas para programar en Python?



Yo he probado con ChatGPT y su respuesta es bastante completa:

1. Intérprete de Python

El intérprete de Python es esencial para ejecutar tus scripts.

Qué es: Python es un lenguaje interpretado, lo que significa que necesitas instalar su intérprete en tu sistema.
Cómo obtenerlo: Descárgalo desde python.org.

Versiones recomendadas: Utiliza la versión más reciente de Python 3 (Python 2 ya no tiene soporte).

Uso básico:
Ejecuta scripts desde la línea de comandos:
bash
Copiar código
python script.py
Usa el intérprete interactivo para probar líneas de código directamente:
bash
Copiar código
python >>> print("Hola, mundo!")

2. Editor de texto o IDE (Entorno de Desarrollo Integrado)

Un buen editor o IDE facilita la escritura y depuración de código.

Editores de texto recomendados:
Visual Studio Code (VS Code): Ligero y con extensiones como Python y Pylance para resaltar sintaxis, autocompletar y depuración.

Sublime Text: Rápido y personalizable, ideal para principiantes.

Atom: Editor gratuito con soporte para Python.
IDEs completos:
PyCharm: Ideal para proyectos grandes. Ofrece herramientas avanzadas como depurador, pruebas unitarias y soporte para frameworks.
Jupyter Notebook: Popular en ciencia de datos y aprendizaje automático, permite combinar código con texto explicativo y gráficos.
Thonny: Sencillo y diseñado para principiantes que empiezan con Python.

3. Administrador de paquetes: pip

Qué es: Herramienta para instalar bibliotecas y paquetes de Python desde el repositorio oficial (PyPI).

Cómo usarlo:

Instalar un paquete:
bash
Copiar código
pip install nombre_del_paquete
Ver paquetes instalados:
bash
Copiar código
pip list
Ejemplo:
Para instalar la biblioteca requests (para realizar peticiones HTTP):

bash

Copiar código
pip install requests

4. Entornos virtuales

Qué son: Espacios aislados para instalar paquetes específicos de un proyecto sin afectar tu instalación global de Python.
Herramientas comunes:
venv (incluido en Python):
bash
Copiar código
python -m venv mi_entorno source mi_entorno/bin/activate # En Linux/Mac mi_entorno\Scripts\activate # En Windows

virtualenv: Una alternativa popular a venv.

Conda: Administrador de entornos y paquetes para ciencia de datos.

5. Control de versiones: Git

Qué es: Una herramienta para gestionar versiones de tu código.
Cómo empezar:
Instala Git desde git-scm.com.

Usa servicios como GitHub, GitLab o Bitbucket para colaborar y almacenar tu código.

Comandos básicos:
bash
Copiar código
git init # Inicializar un repositorio git add archivo.py # Añadir archivos al índice git commit -m "Mensaje" # Crear un commit git push origin main # Subir cambios al repositorio remoto

6. Librerías y frameworks básicos

Python es conocido por su ecosistema rico en bibliotecas y frameworks:

Bibliotecas estándar:
os (manejo del sistema operativo)

sys (interacción con el intérprete)

math (operaciones matemáticas avanzadas)

datetime (manejo de fechas y horas)

Bibliotecas populares:
NumPy: Computación numérica.

Pandas: Manipulación de datos tabulares.

Matplotlib/Seaborn: Visualización de datos.

Flask/Django: Desarrollo web.

TensorFlow/PyTorch: Aprendizaje automático.

7. Depuración y pruebas

Herramientas básicas:
Usa el depurador integrado en tu IDE (por ejemplo, VS Code o PyCharm).
La biblioteca estándar pdb permite depurar directamente desde el terminal.

python

Copiar código
import pdb; pdb.set_trace()

Pruebas automáticas:

Usa unittest (incluido en Python) o herramientas como pytest para garantizar que tu código funcione correctamente.

8. Comunidad y documentación

Documentación oficial de Python:
https://docs.python.org/
Comunidades:
Stack Overflow
Python Discord
Foros locales y grupos de Meetup para Pythonistas.



Especialmente importantes son los puntos 1, 2 y 3. Para empezar, me quedaría con:

  • Instalar el intérprete de Python.
  • Instalar un IDE. En este caso, Visual Studio Code es el más popular.
  • Instalar el gestor de paquetes (pip).

Con esto sería suficiente para comenzar. Ante cualquier contratiempo en estos pasos, le pediría al chatbot que los describa con más detalle.

Flujo de trabajo

Una vez que tenemos todo preparado, lo único que queda es pedirle al chatbot es que genere el código para la tarea que queremos realizar, copiar el código generado y pegarlo en un archivo. En este punto, el IDE nos indicará si hay problemas con la sintaxis y realizará comprobaciones básicas, como por ejemplo si fuese necesario instalar alguna librería, para lo cual ya contaríamos con pip instalado de pasos anteriores. 


Finalmente, podemos ejecutar el código, ya sea desde el IDE o directamente con:


python script.py


Para las siguientes iteraciones, podemos realizar la operación inversa: copiar el código desde nuestro IDE, pegarlo en el chatbot y pedirle que lo modifique según nuestras necesidades. Lo normal es que la herramienta te facilite el trabajo con botones para copiar el código:





Si usamos la misma conversación, esto podría no ser necesario, ya que el chatbot mantendrá el contexto.

Es importante notar que, cuanto mayor sea la porción de código que queramos modificar, más difícil será para la IA tener todo en cuenta y mantener el contexto. Por ello, conviene mantener el código conciso. Es más importante que nunca aplicar principios básicos de programación, como el de responsabilidad única o DRY (Don’t Repeat Yourself - no te repitas).

La buena noticia es que ya existen IDEs que incorporan todas estas herramientas. El más popular actualmente es Cursor IDE, sobre el cual haré en el próximo artículo.


sábado, 21 de septiembre de 2024

Cuáles serían los resultados con otros LLM - Gemini - ¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje? V

Este artículo es el quinto de una series acerca de  De cómo aprender python con ChatGPT, en el enlace previo, puedes empezar por el principio si quieres.



Cuáles serían los resultados con otros LLM como Gemini



Sin duda, ChatGPT está siendo de gran ayuda como asistente de programación, pero ChatGPT no es el único "juguete" que tenemos hoy en día. Puede que sea el chatbot más famoso basado en LLM, y puede que sea el que más relevancia ha alcanzado entre el público general, pero hay otros. Seguramente, el segundo en notoriedad es Gemini de Google, conocido anteriormente como Google Bard, lanzado en marzo de 2023.

La prueba que voy a realizar es la misma, pero en lugar de usar la API de Spotify, usaré la de Blogger, que es otra herramienta de Google, por lo que espero obtener buenos resultados.

¿Me puedes escribir código en Python para publicar un artículo en Blogger usando la API de Blogger?

La respuesta me deja estupefacto, pues estaba esperando código y comentarios sobre el código, y lo que me encuentro es:

"Solo soy un modelo de lenguaje, así que no puedo hacer lo que me pides."

Superada la impresión inicial, le replico:

"Pero ChatGPT puede."

Y la respuesta ya es más parecida a lo que esperaba. Me resulta muy gracioso, porque hasta que no le mencioné a la competencia no se puso en movimiento. Eso sí, en ese caso lo primero que hace es disculparse:

"¡Tienes toda la razón! Como modelo de lenguaje, puedo ayudarte a generar código Python para publicar un artículo en Blogger utilizando la API de Blogger."


 

La respuesta es parecida a la de ChatGPT; el estilo es similar. Como se puede ver en la imagen, ofrece tres versiones: la primera es la misma que cuando pregunté directamente, pero la segunda es la buena.

Para hacer que este código funcione, hay un paso previo: integrarse con la autenticación y autorización de Google. El paso número 1 es, obtener las credenciales de la API:

  1. Accede a la Google Cloud Platform y crea un proyecto.
  2. Habilita la API de Blogger.
  3. Crea un cliente OAuth 2.0 y descarga las credenciales JSON.

Este es el paso que con diferencia, me ha dado más problemas. Por más detalles que le pedí a Gemini, no me dio una forma fácil de hacerlo. Incluso probé con ChatGPT y tampoco tuve suerte, así que tuve que volver a los viejos métodos de siempre:

  • Leer documentación.
  • Usar buscadores tradicionales.
  • Buscar tutoriales, incluso en YouTube.
  • Y mucho ensayo y error.

La verdad es que esa parte de la API de Google es muy poco intuitiva. Los mensajes de error son muy genéricos y no proporcionan información clara sobre el problema. En situaciones como estas, los chatbots son poco útiles.

Una vez superado ese escollo hago la prueba de que me complete el código. En el siguiente prompt ya intento que me den todas las mejoras básicas de golpe:

¿Puedes escribir el código en inglés, añadir pydoc, tratamiento de excepciones y logs?

En mi opinión, aquí es donde estas herramientas realmente lucen, aumentando la eficiencia de cualquier programador.

Pero, a la pregunta: "¿Con cuál de los dos chatbots te quedarías?", yo, por el momento, me quedo con ChatGPT. No solo porque me gusta más la interfaz, sino porque para mí, las respuestas son mejores.

En cualquier caso, no son los únicos chatbots que usan LLM. Hoy en día hay mucha variedad, y yo recomendaría utilizar herramientas como artificialanalysis, donde puedes comparar las diferentes opciones en términos de calidad, precio y velocidad.


domingo, 15 de septiembre de 2024

Siguientes pasos - Análisis de Seguridad -- ¿Cómo de bueno es ChatGPT para aprender un nuevo lenguaje? IV

Este artículo es el quinto de una series acerca de  De cómo aprender python con ChatGPT, en el enlace previo, puedes empezar por el principio si quieres.



Análisis de seguridad

 


Podemos empezar preguntándole a ChatGPT si el código generado es seguro. Es una pregunta trampa, ya que el código ha sido generado por el mismo ChatGPT, pero veamos si es capaz de hacer un buen análisis. El prompt sería:

¿Puedes analizar este código desde el punto de vista de seguridad?

ChatGPT se ha fijado en seis puntos clave:

  1. Manejo de credenciales
  2. Control de excepciones
  3. Validación de datos
  4. Logging
  5. Dependencias externas
  6. Autenticación y sesiones

Para cada uno de estos puntos, ha identificado un riesgo y varias acciones de mitigación. En su conclusión final, indica que no ha encontrado problemas graves. Sin embargo, sugiere literalmente:

validaciones adicionales, asegurando los logs, gestionando las dependencias cuidadosamente, y almacenando las credenciales de forma más segura utilizando un vault de secretos.

Esto es justo lo que quería comprobar. Sugiere efectivamente el uso de un vault de secretos, por lo que, para mí, ha pasado la prueba.