GPT4Readability Nunca vuelvas a escribir un README de nuevo

No más READMEs, gracias a GPT4Readability

Un paquete de Python para optimizar y documentar tu repositorio de código

Imagen generada por el autor

Navegar por un código Python complejo puede ser una tarea desafiante, especialmente cuando el proyecto carece de suficiente documentación. Esto ocurre con demasiada frecuencia en la vida de un programador. Afortunadamente, gracias a los avances recientes en NLP y Deep Learning, existe una herramienta diseñada para ayudar: GPT4Readability.

GitHub – loevlie/GPT4Readability: Una herramienta potente diseñada para generar automáticamente un archivo README.md…

Una herramienta potente diseñada para generar automáticamente un archivo README.md y sugerir mejoras de código utilizando LLMs. – GitHub…

github.com

GPT4Readability: Tu asistente de codificación con inteligencia artificial

GPT4Readability es un paquete poderoso que aprovecha modelos de lenguaje grandes (LLMs) y una base de datos de vectores para generar un archivo README.md y sugerir mejoras de código para tus repositorios de código Python. Es como tener un asistente personal que no solo comprende y documenta tu código, sino que también te ayuda a mejorarlo.

Pero ¿por qué no puedo simplemente usar ChatGPT?

ChatGPT es una herramienta poderosa. Sin embargo, tiene una limitación cuando se trata de manejar grandes volúmenes de texto o código. Solo puedes ingresar una cierta cantidad de texto o código en ChatGPT a la vez, lo que puede ser restrictivo al tratar con bases de código extensas.

En cambio, GPT4Readability está diseñado para manejar volúmenes más grandes de código. Si bien puede tener dificultades con bases de código extremadamente grandes, puede manejar cómodamente la mayoría de las de tamaño normal. Esto significa que simplemente apuntándolo a la carpeta correcta, puede analizar todo tu proyecto, analizar el contexto completo y generar un README completo o proporcionar sugerencias detalladas de mejora de código. ¡Esto es algo que ChatGPT no puede hacer!

Comenzando con GPT4Readability

Comenzaré explicándote la configuración. Primero, necesitarás instalar el paquete:

pip install GPT4Readability==0.0.3

A continuación, deberás crear una cuenta en OpenAI. Esto se debe a que GPT4Readability utiliza la API de OpenAI para acceder a GPT-3.5 y GPT-4. Eventualmente, se espera también integrar modelos de código abierto de HuggingFace (mantente atento al repositorio de GitHub para obtener actualizaciones). Una vez que hayas creado una cuenta en la plataforma de OpenAI, procede a agregar un método de pago y generar una clave de API.

Ahora, deberás configurar una variable de entorno llamada OPENAI_API_KEY igual a tu nueva clave de API. Esto permitirá que GPT4Readability se autentique con la API de OpenAI. Si no haces esto, se te pedirá que agregues la clave al ejecutar GPT4Readability.

export OPEN_API_KEY="TU CLAVE"

Utilizar los LLMs de GPT-3 y GPT-4 de OpenAI a través de la API no es costoso. El desarrollo completo de esta herramienta cuesta solo $1.50, ¡lo cual parece bastante barato en comparación con los $20 al mes que pagan los usuarios de ChatGPT Plus! Sin embargo, siempre puedes controlar tu uso en el sitio web de OpenAI para asegurarte de no gastar en exceso.

Presentando a tu asistente personal de documentación con IA

Ahora que tienes instalado GPT4Readability y has generado una clave de API de OpenAI, tienes acceso a la CLI. Este artículo se centra en la CLI, pero también puedes probar la aplicación web sin código en HuggingFace Spaces en: https://huggingface.co/spaces/JohanDL/GPT4Readability.

Supongamos que tienes un proyecto de Python que necesita un README, pero ni siquiera recuerdas para qué se suponía que debía hacer el código. En lugar de pasar horas tratando de entender las conexiones en el código base, deja que GPT4Readability haga el trabajo pesado:

gpt4readability /ruta/a/tu/proyecto --funcion readme --output_readme MyAwesomeREADME.md --modelo gpt-3.5-turbo
gif generado por el autor

Solo reemplaza /ruta/a/tu/proyecto con el directorio raíz de tu proyecto de Python. GPT4Readability generará un archivo README.md completo llamado MyAwesomeREADME.md utilizando el modelo “gpt-3.5-turbo” de OpenAI. Actualmente, hay dos modelos disponibles que puedes usar con GPT4Readability:

  1. gpt-3.5-turbo
  2. gpt-4

Mejoras en el Código: Una Herramienta de Aprendizaje para Todos

GPT4Readability no solo sirve para actualizar bases de código que carecen de la documentación que merecen. También es una increíble herramienta de aprendizaje para desarrolladores de todos los niveles. Para generar sugerencias sobre las funciones en tu base de código, utiliza la herramienta suggestions como se muestra a continuación:

gpt4readability /ruta/a/tu/proyecto --funcion suggestions --output_suggestions CodeImprovements.md --modelo gpt-3.5-turbo

Ejemplo de Sugerencia a partir de Ejecutar GPT4Readability en mi Primer Proyecto de Python:

Función original:

def Get_props(file):    """ Esta función recupera la información de la celda de propiedades del cuaderno"""    no_prop = True    nb = nbformat.read(file,as_version=4)    for i in nb['cells']:        if i['cell_type'] == 'code':            if i['source'].startswith('%%properties'):                Metal_A = i['source'].split('\n')[1].split()[-1]                Metal_B = i['source'].split('\n')[2].split()[-1]                Max_H = float(i['source'].split('\n')[3].split()[-1])                result = {'Metal_A':Metal_A,'Metal_B':Metal_B,'Max_H':Max_H}                no_prop = False    if no_prop:        result = None        return result

Sugerencia:

def Get_props(file):    """ Esta función recupera la información de la celda de propiedades del cuaderno"""    nb = nbformat.read(file, as_version=4)    for i in nb['cells']:        if i['cell_type'] == 'code' and i['source'].startswith('%%properties'):            Metal_A, Metal_B, Max_H = i['source'].split('\n')[1:4]            result = {'Metal_A': Metal_A.split()[-1], 'Metal_B': Metal_B.split()[-1], 'Max_H': float(Max_H.split()[-1])}            return result    return None

Explicación:

  1. Se eliminó la variable innecesaria no_prop y su bandera asociada. En su lugar, podemos devolver directamente None si no se encuentran propiedades.
  2. Se combinaron las asignaciones para Metal_A, Metal_B y Max_H en una sola línea para una mejor legibilidad.
  3. Se eliminó la verificación de no_prop después del bucle, ya que podemos devolver directamente None si no se encuentran propiedades.
  4. Se simplificó la creación del diccionario asignando directamente los valores a las claves.

Estos cambios mejoran la legibilidad del código al reducir variables innecesarias y simplificar la lógica. No hay un impacto significativo en el rendimiento ni en la complejidad espacial.

Solo reemplaza /ruta/a/tu/proyecto con el directorio raíz de tu proyecto de Python. GPT4Readability analizará tu código y generará un archivo llamado CodeImprovements.md con sugerencias para mejoras. Las sugerencias siempre están formateadas de la misma manera:

  1. Ruta al archivo
  2. Nombre de la función
  3. Función original
  4. Cambio sugerido
  5. Explicación de por qué se sugiere el cambio

Es importante agregar una explicación a los ajustes de código sugeridos porque puede aumentar la transparencia e incluso ser una oportunidad de aprendizaje. Al revisar estas sugerencias, no solo estás mejorando tu código, también podrías estar mejorando como desarrollador.

Conclusión

GPT4Readability es una herramienta muy útil para comprender y mejorar tus proyectos de Python.

Si GPT4Readability te ahorra tiempo o tienes alguna pregunta, no dudes en comunicarte conmigo (puedes utilizar cualquiera de los enlaces en la sección de abajo). ¡También considera darle una estrella al repositorio de GitHub! Si encuentras un error o tienes una sugerencia para mejorar GPT4Readability, no dudes en abrir un problema en la página de problemas de GitHub.

¡Conéctate conmigo!

Soy un investigador de aprendizaje profundo aspirante que actualmente trabaja como Ingeniero de Visión por Computadora en KEF Robotics en Pittsburgh. ¡Conéctate conmigo y no dudes en comunicarte para hablar sobre cualquier cosa relacionada con el aprendizaje automático!

  • Sígueme en VoAGI
  • Twitter
  • LinkedIn
  • GitHub
  • ¿Me invitas un café?

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Ciencias de la Computación

Algoritmo encuentra esperma en hombres infértiles más rápido y con mayor precisión que los médicos.

La herramienta identifica instantáneamente el esperma, luego deja al embriólogo decidir si el esperma está realmente ...

Inteligencia Artificial

Conoce a SAM-PT Un nuevo método de IA que amplía la capacidad del modelo Segment Anything (SAM) para rastrear y segmentar cualquier cosa en videos dinámicos.

Existen numerosas aplicaciones, como la robótica, la conducción autónoma y la edición de video, que se benefician de ...

Inteligencia Artificial

Equipo de robots en gira de exploración lunar

Un equipo suizo ha propuesto enviar equipos de robots complementarios en misiones exploratorias a la Luna en lugar de...

Inteligencia Artificial

Científicos desarrollan una forma más eficiente de transmitir datos entre dispositivos

Los investigadores demostraron un método de menor potencia para transmitir datos a corta distancia mientras se mantie...

Inteligencia Artificial

Esta herramienta podría proteger tus imágenes de la manipulación de IA

PhotoGuard, creado por investigadores del MIT, altera las fotos de formas imperceptibles para nosotros pero evita que...