Cómo empezar con Github Copilot: guía básica para desarrolladores
¿Recuerdas a aquel compañero de clases al que todos querían a su lado porque podías consultarlo y te sugería las respuestas sin esfuerzo alguno?
Si no lo recuerdas, buenas noticias, probablemente fueras tú 😜.
Si eres programador, hoy quiero presentarte a tu compañero sabelotodo que querrás tener el resto de tu vida. Hablamos de Github Copilot.
En el artículo de hoy nos proponemos enmarcar teóricamente esta tecnología y rápidamente pasar a explicar cómo instalarla en tu ordenador y desarrollar algunos ejemplos sencillos para evaluar el rendimiento del modelo.
Para entrar en materia debemos definir primeramente este modelo.
¿Qué es Github Copilot?
Copilot es una herramienta basada en inteligencia artificial, específicamente en el algoritmo Codex de OpenAI, para acompañar a sus usuarios en el proceso de desarrollo, convirtiendo indicaciones en lenguaje natural a código en distintos lenguajes de programación y completando código basado en el contexto.
Por esto hacía la analogía anterior del compañero listo de tu clase, porque una vez instalado te comenzará a sugerir código, permitiéndote ahorrar mucho tiempo.
Ahorra en software
Únete al boletín premium semanal con los mejores lifetime deals y ofertas de software.
¿Cómo funciona Copilot?
Copilot utiliza el mismo mecanismo que GPT-3, pero su entrenamiento está enfocado al desarrollo, por lo que fue entrenado con los repositorios de código fuente de Github.
En este sentido, es importante destacar que para su entrenamiento se utilizaron solamente los repositorios públicos de Github, por lo que se desestima toda la polémica inicial basada en la preocupación por la sugerencia por parte de Copilot de claves privadas o información sensible en general.
¿Para qué lenguajes de programación está disponible?
Según su web oficial, Copilot está optimizado para trabajar con Python, JavaScript, TypeScript, Ruby, Go, C#, y C++.
No obstante, puede probar con otros lenguajes, pero no se garantizan resultados óptimos.
¿Con qué entornos de desarrollo se integra?
En la práctica, Copilot puede encontrarse como una extensión en algunos de los entornos de desarrollo más utilizados en la actualidad, como son: Visual Studio, Neovim, la familia de JetBrains y Visual Studio Code, que estaremos utilizando para implementar los ejemplos de este artículo.
Instalando Copilot en Visual Studio Code
- El primer paso es instalar la herramienta Visual Studio Code. Puedes descargarla de forma gratuita desde su web oficial.
- Abrir Visual Studio Code y entrar en el apartado Extensiones en el menú de la izquierda o simplemente presionar Control + Shift + X.
- Escribir en el campo de búsqueda Copilot y hacer clic en Instalar.
- Una vez instalado, obtendremos una pestaña como esta, informándolo.
- A continuación, la extensión solicitará acceso a la cuenta de Github. Hacemos clic en Iniciar Sesión en Github.
- Iniciamos sesión en Github y confirmamos el acceso de la extensión a nuestra cuenta y listo, ya tenemos Copilot funcional en nuestro ordenador.
Manos a la obra, hagamos algunos ejemplos
Ejemplo 1. Hola Mundo
Vamos a empezar exigiéndole poco a la herramienta con el clásico Hola Mundo para ir calentando motores. Veamos el resultado.
Este primer ejemplo es muy básico, y de no cumplir las expectativas sería decepcionante, pero Copilot cumplió esta vez.
Con un comentario en lenguaje natural, la IA fue capaz de generar el nombre del método y su sintaxis. Prueba superada.
Ejemplo 2. Average
Vamos a subir el nivel solo un poco, enfocándonos en una operación básica de cálculo de average, donde nuevamente le daremos una indicación inicial en lenguaje natural y esperamos el resultado.
En este caso, Copilot fue capaz de asumir que el método average necesitaba un parámetro numbers para representar la lista de números para realizar la operación de suma y la respectiva división que requiere este cálculo.
Prueba superada.
Ejemplo 3. Validando un email
La validación es una operación muy común en los sistemas informáticos.
Su aplicación se basa en el uso de expresiones regulares que por lo general los desarrolladores buscamos para ahorrar tiempo, pero con la ayuda de Copilot estas operaciones triviales lo son mucho más.
Veamos cómo funciona con expresiones regulares.
A destacar en este caso como resolvió la indicación de preguntarle el correo al usuario, llamar la función e imprimir el resultado, 3 instrucciones en un mismo comentario que “entendió” a la perfección. Prueba superada.
Ejemplo 4. Fibonacci
El objetivo de este ejemplo fue demostrar que tan bien se le da la recursividad a Copilot. Para esto elegimos un ejemplo clásico, la sucesión de Fibonacci.
En esta serie, cada número es la suma de los 2 anteriores.
En este caso decidimos darle a Copilot una instrucción sencilla y esperar el resultado de su interpretación.
De esta forma, con un simple “a Fibonacci method” la respuesta fue la implementación de un método que requiere un número como entrada y devuelve la sucesión de Fibonacci hasta el mismo. Prueba superada.
Ejemplo 5. Convertir grados Celsius a Fahrenheit
Ejemplo simple para ver que tan bien se le da la conversión de unidades.
Prueba superada
Ejemplo 6. Día de la semana de una fecha
En esta prueba le complicamos un poco más el input, le pedimos que pregunte al usuario una fecha en un formato específico y que devuelva el día de la semana.
Para esto debería asumir que la fecha que le pasa el usuario debe ser usada como parámetro, y debe realizar la conversión a un objeto fecha del lenguaje para realizar la operación.
Veamos cómo lo resuelve Copilot.
En este caso vemos como Copilot es capaz de importar la librería que necesita para el trabajo con fechas y es capaz de hacer las conversiones necesarias. Probemos el código generado en la consola.
Prueba superada.
Ejemplo 7. Días pasados entre 2 fechas
Seguimos con el trabajo con fechas, esta vez quiero que Copilot me calcule cuantos días han pasado entre 2 fechas introducidas por el usuario. Veamos el resultado.
En este caso me llamó la atención el modo en que Copilot llamó al método.
Para probarlo le pedí primeramente que le preguntara al usuario la primera fecha, luego la segunda y después que llamara la función e imprimiera el resultado, y para mi sorpresa, Copilot pudo inferir que los parámetros que necesitaba eran los que le pidió al usuario, esto nunca se lo indiqué explícitamente.
Sin embargo, en este caso no fue capaz de importar la librería datetime que necesitaba para realizar la operación, por lo que necesitó de mi intervención para “recordárselo”.
No obstante, considero que superó la prueba.
Ejemplo 8. Base64
Otro ejemplo simple pero muy útil, la codificación y decodificación entre cadenas de texto y base64.
Prueba superada.
Ejemplo 9. Clasificador de triángulos
Este ejemplo tiene como objetivo ver como se adapta Copilot a la interacción con el usuario.
En este caso le pedí que hiciera un método que verificara si dado 3 lados se podía formar un triángulo entre ellos.
Posteriormente, le pedí otro método que clasificara un triángulo y con mi intervención hice que validara antes el triángulo.
Posteriormente le indiqué que llamara la función asumiendo los valores.
Prueba superada.
Ejemplo 10. Traductor de Google
Este ejemplo tiene como objetivo verificar el comportamiento de Copilot consumiendo servicios en internet.
Para este caso elegimos el traductor de Google, y le indicamos que implementara una función que tradujera una palabra utilizando el traductor de Google.
Posteriormente que llamara la función para traducir la palabra “perro” en inglés y en francés, y luego que hiciera lo mismo en los lenguajes más populares. Veamos como Copilot lo resuelve.
Ejecutemos el código generado en la consola.
Prueba superada.
Accesos rápidos en Visual Studio Code
Puedes ahorrar tiempo utilizando los siguientes atajos de teclado.
Aceptar sugerencia | Tab |
Rechazar sugerencia | Esc |
Mostrar próxima sugerencia online | Alt+] |
Mostrar sugerencia anterior online | Alt+[ |
Activar sugerencia online | Alt+\ |
Abrir panel de sugerencias de Copilot | Ctrl+Enter |
En este caso recomiendo muchísimo el uso del panel de sugerencias de sugerencias de Copilot.
Este panel sintetiza hasta 10 soluciones para tu problema para que puedas elegir la que te parezca más adecuada en tu caso.
Hablemos de dinero, ¿cuánto me cuesta Copilot?
Copilot cuenta con un plan de pruebas gratuito por 60 días, suficiente para que te enamores 😂.
A partir de ese momento, puedes optar por pagar $10 al mes o $100 al año por cada usuario. Si te dedicas profesionalmente a la programación, solo por el tiempo que te ahorra, creo que el dinero estará muy bien invertido.
Hasta aquí el artículo de hoy. Espero que los ejemplos te hayan podido ilustrar sobre las potencialidades de la inteligencia artificial como apoyo al desarrollo de software y específicamente el poder de Copilot como uno de sus primeros representantes formales y eficientes.
Te dejo con su web oficial para que revises todos los detalles y te invito como siempre a que permanezcas con nosotros. Si te gustó este contenido creo que puede interesarte nuestra selección de alternativas de modelos de lenguaje similares a GPT-3.