Capítulo 4. Copiloto GitHub
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
En este capítulo, vamos a echar un vistazo a GitHub Copilot, al que me referiré como Copilot para abreviar. Es el perro grande en el mundo de los asistentes de codificación de IA. La gente incluso lo llama "aplicación asesina" de la IA generativa. Esto se debe principalmente a sus avanzadas capacidades de sugerencia, creación y explicación de código, que mejoran significativamente la productividad de los desarrolladores. Al comprender y predecir patrones de codificación basados en el contexto, no sólo ahorra tiempo, sino que también ayuda a escribir código más eficiente y sin errores.
En este capítulo, nos sumergiremos en los detalles de Copilot: cuánto cuesta, cómo configurarlo y todas las funciones interesantes que ofrece. Y también seremos sinceros sobre sus inconvenientes. Además, daré algunos consejos útiles para sacarle el máximo partido. No nos detendremos aquí: también veremos cómo Copilot se asocia con otras empresas con el Programa de Socios de Copilot. En este capítulo veremos todo lo que Copilot puede hacer.
Copiloto GitHub
En junio de 2021, Microsoft presentó GitHub Copilot. El director general de GitHub, Nat Friedman, lo describió en una entrada de blog como un "programador par de IA", diseñado para acelerar el trabajo de los desarrolladores ayudándoles a completar tareas de forma más eficiente.
Copilot es el resultado de una asociación entre Microsoft y OpenAI. Inicialmente, utilizaba un gran modelo de lenguaje denominado Codex, una variante de GPT-3 adaptada a la codificación. Microsoft mejoró las capacidades de este LLM integrando un nuevo enfoque conocido como fill-in-the-middle (FIM), que comprende mejor el contexto del código. Esto mejoró la calidad de las sugerencias de código y acortó los tiempos de respuesta. Esta mejora, impulsada por el GPT-3.5 Turbo más avanzado, se tradujo en un notable aumento de la tasa de aceptación de las sugerencias de código. Para mejorar la seguridad, la herramienta incorporó un sistema de IA para bloquear instantáneamente los patrones de codificación de riesgo, centrándose en vulnerabilidades como las credenciales codificadas y las inyecciones SQL.
Precios y versiones
Hay disponible una prueba gratuita de 30 días de Copilot. Una vez terminada, tienes tres opciones.
- Copiloto para particulares
Este plan cuesta 10 $ al mes o 100 $ por una suscripción anual. Ofrece funciones como sugerencias de funciones multilínea que pueden hacer que tu flujo de trabajo de codificación sea más fluido. Una función destacada es su capacidad para acelerar la generación de pruebas, un factor clave para asegurarte de que tu código es fiable y sólido. Además, tiene una función para filtrar patrones de codificación vulnerables. También evita cualquier sugerencia que pueda reflejar código público, asegurando que lo que creas es único y original.
- Copilot para empresas
Este paquete es más completo y cuesta 19 $ al mes por usuario. Incluye todo lo del plan Copilot para particulares y algunas ventajas adicionales diseñadas para empresas. Agiliza la gestión de licencias, lo que supone una gran ventaja para las empresas a la hora de gestionar sus suscripciones y accesos. También hay una función para gestionar las políticas de toda la organización, que ayuda a garantizar la uniformidad en la gobernanza y la coherencia en todos los proyectos. Un aspecto destacado es su protección de la privacidad de primera categoría, que es crucial para mantener seguros los datos empresariales sensibles. Además, admite proxies corporativos, lo que garantiza una conectividad segura y fluida en toda la red de la empresa.
- GitHub Copilot Empresa
Esto tiene un coste de 39 $ al mes por usuario. La característica clave del plan Enterprise es que permite entrenar el sistema en bases de código internas. La versión Enterprise aumenta la eficacia de los desarrolladores, porque la herramienta empieza a dar sugerencias de código más acertadas. Ayuda a impulsar la adopción de mejores prácticas y el cumplimiento de las normas de seguridad. Se adapta a la forma en que los desarrolladores codifican internamente y a sus API, marcos y paquetes favoritos.
Otra ventaja de la versión Enterprise es que puedes entrenarla con lenguajes clásicos como COBOL y Fortran. Los LLM de propósito general podrían no ser tan eficaces con éstos porque faltan datos de entrenamiento procedentes de repositorios públicos. Por supuesto, no tendrían ni idea de los lenguajes propietarios específicos de tu empresa.
El sistema de GitHub también refuerza el modelo de la edición Enterprise escaneando continuamente los repositorios de una empresa. Por ejemplo, se centra en las solicitudes de extracción y fusiones recientes, así como en los comentarios con pulgar hacia arriba y pulgar hacia abajo. Todo esto ayuda a poner de relieve los últimos métodos y estrategias que utiliza una empresa.
Disponer de modelos personalizados ayuda a difundir los conocimientos por toda la organización. La IA capta y comparte los sutiles conocimientos escondidos en el código. Con la formación continua, la IA sigue el ritmo de la base de código cambiante, haciendo que su ayuda sea aún más precisa con el paso del tiempo. Aun así, es muy importante que las organizaciones gestionen los riesgos para la privacidad y la propiedad intelectual que conlleva mezclar estas herramientas de IA en su proceso de desarrollo.
Nota
En 2023, la investigación de Gartner mostró que menos del 10% de las grandes empresas habían empezado a utilizar herramientas de programación asistida por IA. Esta indecisión se debe en parte a preocupaciones sobre la seguridad y la precisión. Sin embargo, con los rápidos avances de la tecnología, se espera que cada vez más empresas empiecen a adoptar estas herramientas en un futuro próximo. En resumen, las ventajas que ofrecen son demasiado importantes para pasarlas por alto.
Caso práctico: Programar hardware
Un interesante estudio de caso de modelos personalizados se refiere a Advanced Micro Devices (AMD). Fundada en 1969, la empresa es pionera en CPU (unidades centrales de procesamiento). En la actualidad, la empresa es líder en semiconductores para centros de datos, sistemas integrados, plataformas de juegos y PC.
Antes de entrar en materia, preparemos el terreno repasando algunos conceptos básicos sobre el desarrollo para sistemas de hardware. Es un juego totalmente distinto al de crear software para algo como una aplicación web. El principal reto es que los desarrolladores tienen que conocer a fondo el sistema de hardware. A diferencia del software normal, que funciona en ordenadores polivalentes, el firmware habla directamente con el hardware. Esto exige un tipo de precisión y compatibilidad mucho más exigente.
Este nivel de precisión es fundamental, porque los errores en el desarrollo del firmware pueden tener consecuencias muy caras. Un solo error puede suponer un golpe económico millonario. Y no se trata sólo del dinero: el tiempo también es un factor importante. Corregir un problema de firmware suele implicar revisar el proceso de fabricación, y eso puede añadir meses al calendario. Este retraso no sólo afecta al calendario de lanzamiento, sino también a la competitividad del producto en el mercado.
Está claro que la mentalidad de "moverse rápido y romper cosas", habitual en el desarrollo ágil de software, no funciona en este entorno. Los riesgos son demasiado grandes para este enfoque. Por eso los desarrolladores de firmware tienen que dedicar mucho tiempo y esfuerzo a elaborar planes detallados y realizar pruebas exhaustivas. Este cuidadoso enfoque garantiza que el firmware sea lo más sólido y libre de errores posible antes de emparejarlo con el hardware.
Cuando AMD echó un vistazo a Copilot en 2023, puso el listón muy alto, y hubo bastante escepticismo comprensible. En un proyecto piloto, AMD creó una versión personalizada de Copilot para varios lenguajes de descripción de hardware (HDL) como Verilog y SystemVerilog. Los HDL son tipos específicos de lenguajes de programación diseñados para esbozar la arquitectura, el diseño y la función de los circuitos electrónicos, especialmente los lógicos digitales. Son cruciales para modelar y simular sistemas electrónicos a distintos niveles de abstracción.
Los resultados del piloto fueron mucho mejores de lo previsto. Sorprendentemente, el estilo del código generado por Copilot se ajustaba más a los estándares de AMD que lo que producían sus propios programadores. La mejora fue tan significativa que algunos de los programadores incluso pasaron de utilizar Vim, un editor de texto altamente personalizable, a adoptar Visual Studio Code como su IDE.
Caso práctico: Shopify
Otro caso práctico interesante es Shopify. Esta empresa gestiona una plataforma que permite a los clientes crear sitios web de comercio electrónico. Shopify tiene alrededor del 10% del mercado en Estados Unidos y el 6% en Europa.
Sin duda, esto ha creado la necesidad de una infraestructura masiva. Considera que hay unos 300 repositorios públicos y unos 5.000 privados. Además, Shopify realiza unas 1.500 implementaciones de su código cada día.
Shopify fue una de las primeras empresas en subirse al carro de Copilot, y ha cambiado las reglas del juego para que los desarrolladores sean más productivos. Actualmente, cerca de 2.000 desarrolladores de Shopify utilizan la herramienta. Y esto es lo mejor: El 70% de ellos dicen que es útil, y el 75% la utiliza mucho. Alrededor del 26% de las sugerencias de código de Copilot son aceptadas.
Claro que hay algunas funciones que no han calado, como la integración con la interfaz de línea de comandos (CLI). Pero a pesar de ello, muchos desarrolladores utilizan el completado de código y el chat a diario.
He aquí algunas conclusiones interesantes:
- Valor de las sugerencias de código
Incluso si un desarrollador no utiliza una sugerencia determinada, no es una pérdida total. Cualquier sugerencia puede suscitar ideas para escribir un código aún mejor.
- Tasa de adopción
El uso suele aumentar con el tiempo, lo que no debería sorprender. Lleva tiempo ajustar los flujos de trabajo diarios y acostumbrarse a las nuevas funciones. También hay una curva de aprendizaje con Copilot.
- Adopción por desarrolladores senior
En los primeros días de adopción de Copilot, a los desarrolladores más experimentados no les entusiasmaba demasiado utilizarlo. Tendían a considerarlo más un juguete que una herramienta seria. Pero a medida que pasaba el tiempo y veían que otros desarrolladores obtenían resultados reales, empezaron a aceptarlo.
- Mejora del aprendizaje
Shopify se dio cuenta de que Copilot es bueno para animar a la gente a probar un nuevo lenguaje o framework. Por ejemplo, hubo un notable aumento en la adopción de Rust.
Cerca de un millón de líneas de la base de código de Shopify se han escrito con esta herramienta, lo que demuestra que Copilot es muy importante para este negocio.
Caso práctico: Accenture
Accenture es una gran organización de servicios profesionales que ayuda a sus clientes a mejorar sus operaciones y su crecimiento mediante tecnologías y sistemas innovadores. La empresa tiene más de 733.000 empleados en más de 120 países.
En 2023, Accenture probó Copilot con 450 de sus desarrolladores internos. La empresa no fijó tareas ni objetivos específicos. En su lugar, los directivos se limitaron a pedir a todos que siguieran con su trabajo como lo harían normalmente.
La prueba con Copilot en Accenture duró seis meses. ¿Qué ocurrió? En términos de codificación, hubo un 35% de aceptación de las sugerencias de Copilot, y el 88% de esos cambios se mantuvieron incluso después de las revisiones del código. La productividad también experimentó un notable impulso. Hubo un aumento del 50% en las pull requests y del 15% en la tasa de fusión. La eficiencia también dio un gran salto adelante, con un 50% más de compilaciones y un aumento del 45% en su tasa de éxito. ¿Y los desarrolladores? Estaban realmente contentos: un enorme 96% consideraba que habían tenido éxito desde el primer día.
Al ver estos resultados, Accenture decidió desplegar Copilot en todo el mundo entre sus 50.000 desarrolladores.
Seguridad
Gartner encuestó a más de 2.000 directores de informática (CIO) y descubrió que el 66% de ellos tiene previsto invertir la mayor cantidad de recursos en ciberseguridad y seguridad de la información en 2023. Esta tendencia es constante desde hace años.
En un momento en que las amenazas cibernéticas son cada vez más complejas y generalizadas, una brecha de seguridad podría suponer grandes pérdidas económicas, daños a la reputación, problemas legales e interrupciones de las operaciones. Además, con una normativa sobre privacidad de datos cada vez más estricta, los CIO tienen que estar atentos al cumplimiento de la normativa para evitar multas y mantener la confianza de los clientes.
Por eso, para GitHub, la seguridad es uno de los principales objetivos de su programa Copilot. GitHub ha desarrollado un sistema basado en LLMs que detecta y corrige patrones de codificación inseguros justo cuando se producen.
También están las funciones de Seguridad Avanzada de GitHub asistidas por Copilot. Éstas son las principales:
- Escaneado de códigos
En tiempo real, Seguridad Avanzada buscará vulnerabilidades de seguridad y errores de codificación.
- Escaneado secreto
El producto puede desenterrar secretos como claves y tokens que hayan sido registrados en repositorios privados.
- Revisión de la dependencia
Muestra las implicaciones de los cambios de dependencia. También proporciona detalles de las vulnerabilidades cuando fusionas un pull request.
Nota
Para estudiantes, profesores y mantenedores de proyectos populares de código abierto, Copilot es gratuito, pero hay un proceso de verificación.
Cómo empezar
Para empezar a utilizar Copilot, primero tienes que crear una cuenta en GitHub. GitHub es un servicio en línea que soporta el control de versiones y el desarrollo colaborativo de software. Está basado en Git, una herramienta que ofrece funciones de revisión de código y gestión de proyectos.
Después de configurar tu cuenta, haz clic en tu foto de perfil en la parte superior derecha de la pantalla. Verás un menú desplegable, como se muestra en la Figura 4-1.
Selecciona Copilot y luego haz clic en Activar GitHub Copilot. Puedes seleccionar el tipo de plan y luego hacer clic en Continuar. Proporcionarás tus datos de pago, suponiendo que no tengas derecho a una cuenta gratuita.
Espacios de código y Visual Studio Code
Hay dos formas de utilizar Copilot. Una forma es acceder a él a través de Codespaces , un entorno de desarrollo basado en la nube que se ejecuta en Visual Studio Code (VS Code) y está disponible directamente en https://github.com.
También puedes optar por la extensión Copilot si utilizas la versión de escritorio de Visual Studio Code. En este libro, vamos a centrarnos en el uso de la extensión VS Code.
El propio IDE es gratuito. La Figura 4-2 muestra la pantalla principal de VS Code. Puedes ejecutarlo en varias plataformas, como Windows (versiones 7, 8, 10 y 11); macOS; y varias distribuciones de Linux como Ubuntu, Debian, Fedora, etc.
A la izquierda está la Barra de Actividad, que es una pila de iconos. Puedes utilizarlos para cargar archivos y carpetas. También puedes seleccionar el quinto icono, que es el grupo de cuadrados, para ir al área de instalación de extensiones(Figura 4-3).
Si introduces "GitHub Copilot" en el cuadro de búsqueda, verás una lista de extensiones. Selecciona la superior y haz clic en Instalar.
A continuación, mira en la parte inferior derecha de la pantalla. Si ves el icono de Copilot, entonces tienes el servicio disponible.
En el centro de la pantalla, verás el código para imprimir "¡Hola, Copilot!". Esto se creó utilizando el siguiente prompt, que Copilot convirtió en código:
Pregunta: # escribe un programa "¡Hola, Copiloto!
El carácter # especifica un comentario. Es una de las formas de indicar a Copilot que genere código.
Observa que el código está en Python. ¿Por qué? La extensión del archivo es py. Copilot utiliza la extensión del archivo para determinar qué lenguaje utilizar.
En la parte superior derecha de la pantalla, hay un icono para ejecutar el programa. Haz clic en él y VS Code iniciará el terminal. A continuación, verás el mensaje impreso.
Sugerencias
Empezar a utilizar Copilot en VS Code es muy sencillo. Cuando empiezas a escribir tu código, la herramienta se pone en marcha, ofreciéndote sugerencias de código y generando fragmentos de código basados en tus entradas.
Supón que escribes la cabecera de una función en Python:
def find_factorial(number):
Copilot sugerirá rápidamente un cuerpo de función completo, como puedes ver en la Figura 4-4. Esta codificación generada se denomina texto fantasma y aparece resaltada en gris.
Ten en cuenta que el código puede parecer un poco diferente en tu máquina, y eso es normal, ya que el LLM subyacente funciona según un complejo conjunto de probabilidades.
Pero aquí está la cosa: GitHub entiende que estás intentando escribir una función para calcular un factorial basado en un parámetro. Así que te sugiere la estructura Si-Entonces que necesitas para obtener el resultado correcto.
Puedes pulsar Tabulador para aceptar la sugerencia de código. Pero si no es lo que buscas, pulsa la tecla Escape para omitirla.
Si pasas el ratón por encima del código generado, verás algunas opciones más, como se muestra en la Figura 4-5.
Puedes hacer clic en Aceptar para aceptar la sugerencia de código, igual que si pulsaras la tecla Tabulador, o puedes seleccionar Aceptar palabra para seleccionar una palabra del código cada vez. Si haces clic en los tres puntos, obtendrás un menú para aceptar una línea o para mostrar siempre la barra de herramientas.
Si haces clic en el 1/2 de la izquierda, podrás ver alternativas para el código generado; en la Figura 4-5, hay dos alternativas, y actualmente se muestra la primera. Hacer clic en ">" te llevaría a la versión 2. Si haces clic en "<", volverás a la versión 1.
También puedes utilizar las teclas de acceso directo que aparecen en la Tabla 4-1 para navegar por las opciones.
OS | Siguiente sugerencia | Sugerencia previa |
---|---|---|
macOS | Opción (⌥) o Alt+]. | Opción (⌥) o Alt+[. |
Windows | Alt+] | Alt+[ |
Linux | Alt+] | Alt+[ |
Si pulsas Ctrl+Intro, VS Code creará una nueva pestaña para mostrar 10 soluciones alternativas(Figura 4-6).
Para seleccionar una de las alternativas, haz clic en Aceptar solución encima de ese código. De lo contrario, cierra la pestaña para rechazarlas todas.
Comentarios
Anteriormente, en "Espacios de código y Visual Studio Code", vimos cómo puedes pedir a Copilot que genere código utilizando uno o varios comentarios. Para ello, debes indicar el comentario en la sintaxis del lenguaje de programación en el que estés trabajando.
Pero puedes hacer más. Puedes utilizar comentarios para interactuar con el sistema como si fuera ChatGPT. Veamos un ejemplo:
Pregunta: # q: ¿Qué es una clase en programación orientada a objetos?
Copiloto: # a: Una clase es un plano para crear objetos. Un objeto tiene propiedades y métodos (funciones) asociados. Casi todo en Python es un objeto.
Puedes ver que la respuesta también está en el contexto del lenguaje en el que estás codificando. Supongamos ahora que preguntas a Copilot cómo funciona el sistema:
Pregunta: # q: ¿Cuál es el atajo para aceptar una sugerencia en línea?
Copiloto: # a: tab
Puedes preguntar a Copilot sobre las características de VS Code:
Pregunta: # q: ¿Cuál es el acceso directo a la configuración de usuario en VS Code?
Copiloto: # a: Ctrl + ,
También puedes preguntarle por las teclas de acceso directo de otros IDE:
Pregunta: # q: ¿Cuál es el atajo de teclado para crear un nuevo archivo en el editor Atom?
Copiloto: # a: ctrl + n
Ten en cuenta que Copilot sabe que estoy en un sistema Windows y proporciona el código basado en esta plataforma.
Chat
Copilot Chat es como ChatGPT, pero para tu entorno de codificación. Resulta útil para charlar sobre código, por ejemplo, cuando necesitas descifrar la sintaxis, eliminar errores, resolver casos de prueba o, simplemente, entender diferentes ideas de programación. Funciona con GPT-4 y GPT-3.5 Turbo de OpenAI, además de algunos LLM propios de Microsoft.
Puedes sumergirte en el Chat directamente desde https://github.com. Es genial para analizar código, gestionar pull requests, echar un vistazo a la documentación o simplemente hacer cualquier pregunta que tengas sobre codificación. Además, Chat está disponible en las aplicaciones de GitHub para iOS y Android, para que puedas llevártelo contigo cuando estés fuera.
Pero ahora vamos a centrarnos en cómo funciona con VS Code. Esto significa añadir una nueva extensión. Sólo tienes que buscar "GitHub Copilot Chat". Una vez que la instales, verás que aparece un nuevo icono en la parte izquierda de tu pantalla. Tiene dos pequeñas burbujas de chat, como puedes ver en la Figura 4-7.
En la parte superior del panel de Chat, verás un grupo de iconos en un menú. El primero, formado por líneas horizontales y una pequeña x, borra todos tus hilos de chat. Esto es importante debido a la forma en que funciona el contexto. Cuando escribes un mensaje, la LLM comprueba el historial de conversaciones. Si tu chat está desordenado en cuanto a temas, puede que acabes recibiendo respuestas poco útiles. Por eso es una buena idea mantener cada chat centrado en un tema concreto e iniciar nuevos chats para temas nuevos.
El siguiente icono, con una persona y una burbuja de chat, te permite enviar comentarios sobre el sistema. Luego está el botón del historial, un reloj, que muestra los hilos anteriores.
Si haces clic en los tres puntos, puedes utilizar el chat dentro del editor, donde hay mucho más espacio para tus chats.
En la parte inferior del cuadro de Chat, hay un área de entrada para hacer una pregunta al sistema.
El sistema de Chat tiene numerosos atajos. Uno de ellos es @workspace, que hace referencia a los archivos abiertos en tu espacio de trabajo. Por ejemplo, si tienes un programa de calculadora en Python, puedes introducir:
Pregunta: @espacio de trabajo /explicar
La Figura 4-8 muestra que Chat ha analizado el archivo de programa y ha proporcionado una explicación en profundidad.
Puedes pedirle a Chat que te explique sólo una parte del código. Resalta la sección que te interese y pulsa el botón derecho del ratón. Aparecerá un menú(Figura 4-9).
Cuando le has dicho a Chat que se centre sólo en una parte del código, no sólo puedes explicar el código, sino también arreglarlo, generar documentación o crear pruebas.
Otro atajo útil es el comando /nuevo. Creará un andamiaje para un nuevo proyecto o función. He aquí algunos ejemplos:
Preguntar: /nuevo Crea un script Python para extraer datos de un sitio web
Pregunta: /nuevo Generar una clase Java para un alumno con campos para nombre, edad y curso
Preguntar: /nuevo Construye una API REST sencilla utilizando Flask
Pregunta: /nuevo Crea una función JavaScript para ordenar una matriz de números en orden ascendente
Pregunta: /nuevo Diseña un esquema de base de datos SQL para un blog, con tablas para usuarios, entradas y comentarios
En respuesta a estas indicaciones, el sistema de Chat te mostrará los pasos principales y, a continuación, te proporcionará el listado de códigos. También tienes varias opciones para saber qué hacer con él. Como puedes ver en la Figura 4-10, hay una barra de menú en la parte superior.
El primer icono copiará el código, y el siguiente lo insertará donde esté el cursor en el archivo (también puedes utilizar Ctrl+Enter). Si seleccionas los tres puntos, podrás insertar el código en un nuevo archivo o en el terminal.
También hay un acceso directo para crear un nuevo Jupyter Notebook: /nuevoCuaderno. Debes especificar qué quieres que haga el cuaderno. Aquí tienes algunos ejemplos de indicaciones:
Pregunta: /newNotebook Crea un cuaderno para visualizar datos de un archivo csv utilizando matplotlib
Pregunta: /newNotebook Crear un cuaderno para preprocesar y limpiar un conjunto de datos para el aprendizaje automático
Pregunta: /newNotebook Crea un cuaderno para implementar un modelo de regresión lineal simple utilizando scikit-learn
Pregunta: /nuevoCuaderno Crea un cuaderno para analizar datos de series temporales
Pregunta: /newNotebook Crea un cuaderno para extraer datos de un sitio web y analizarlos
El chat también proporciona un acceso directo /terminal. Puedes hacer preguntas u obtener ayuda sobre operaciones de terminal o de línea de comandos, como navegar por directorios, ejecutar scripts o instalar paquetes. Aquí tienes algunas indicaciones:
Preguntar: /terminal ¿Cuál es el comando para listar todas las variables de entorno?
Preguntar: /terminal ¿Cómo utilizo grep para encontrar un texto específico en varios archivos?
Preguntar: /terminal ¿Cómo puedo utilizar el comando find para buscar archivos por sus permisos?
Preguntar: /terminal ¿Cómo redirijo la salida de un comando a un archivo?
Preguntar: /terminal ¿Cómo utilizo awk para procesar archivos de texto?
También está @vscode, que se llama agente. Con él, puedes hacer preguntas u obtener ayuda sobre algunos aspectos de VS Code, como una característica, la navegación, la configuración o una extensión.
Aquí tienes algunos ejemplos:
Pregunta: @vscode ¿Cómo divido el editor en varias ventanas?
Preguntar: @vscode ¿Cómo puedo personalizar mis atajos de teclado?
Pregunta: @vscode ¿Cómo configuro un espacio de trabajo multi-root?
Pregunta: @vscode ¿Cómo configuro la automatización de tareas en VS Code?
Pregunta: @vscode ¿Cómo puedo configurar y utilizar Docker con VS Code?
Por último, está el comando /api. Puedes hacer preguntas u obtener ayuda sobre aspectos del desarrollo o uso de la API, como la creación, las pruebas o la integración. Aquí tienes algunos ejemplos:
Pregunta: /api ¿Cómo hago una petición POST con datos JSON en Node.js?
Preguntar: /api ¿Cómo puedo gestionar los problemas de CORS en una API Express.js?
Preguntar: /api ¿Cómo autentico a un usuario en una API REST Django?
Preguntar: /api ¿Cómo puedo paginar los resultados en una API Rails?
Preguntar: /api ¿Cómo versiono una API en ASP.NET Core?
También puedes utilizar /api en el contexto de VS Code:
Preguntar: @vscode /api ¿Cómo creo un nuevo comando en la extensión VS Code?
Preguntar: @vscode /api ¿Cómo puedo leer y escribir configuraciones en la extensión VS Code?
Preguntar: @vscode /api ¿Cómo creo un nuevo panel webview en la extensión VS Code?
Preguntar: @vscode /api ¿Cómo puedo interactuar con el sistema de archivos en VS Code Extension?
Preguntar: @vscode /api ¿Cómo añado un nuevo elemento a la barra de actividades en la extensión VS Code?
Ten en cuenta que si quieres borrar el chat, puedes utilizar /clear.
Chat en línea
Puedes utilizar la función Chat dentro de para listar tu código. Resaltarás el código y luego pulsarás Ctrl+I para Windows o Cmd+I para macOS. Entonces verás una ventana emergente, como la de la Figura 4-11.
Según GitHub, el Chat Inline se ha convertido en una función muy popular. Al fin y al cabo, permite al desarrollador mantenerse dentro de su "flujo".
Puedes utilizar los atajos -que hemos descrito antes- para hacer preguntas sobre el código. La explicación aparecerá en el panel de Chat.
Fíjate en que también hay un icono de una chispa naranja junto al código. Si haces clic en él, aparecerán varias opciones -arreglar el código, explicarlo o reescribirlo- que puedes ver en la Figura 4-12.
Intentemos un ejemplo utilizando el Chat Inline. Utilizaremos este aviso:
Pregunta: Crea una función para ordenar burbujas
Chat crea código para ello. Pero supongamos que queremos ver si hay un tipo de ordenación más rápido. Resalta la función y ejecuta Chat en línea. La Figura 4-13 muestra la respuesta.
El chat sugiere una clasificación rápida y la muestra en "modo dif". Esto permite comparar y contrastar los dos enfoques. Puedes aceptar el nuevo código en su totalidad o sólo partes de él .
Abrir pestañas
Cuando trabajas en un proyecto estándar de desarrollo de software, tu IDE suele estar repleto de un montón de archivos, cada uno de los cuales desempeña su propio papel en el marco de la aplicación. Toma como ejemplo un proyecto web que utilice React. Verás archivos .jsx y .js para los componentes, junto con archivos HTML y CSS, por no mencionar también archivos .json y .env.
¿Qué significa esto para Copilot? Es una gran ayuda. Copiloto mejora cuanto más comprende el contexto de tu trabajo. Esto significa que tiene en cuenta todo lo que hay en el archivo actual en el que estás trabajando. En cuanto a los demás archivos abiertos, el LLM no los escanea todos. Se centra en las partes que son relevantes para lo que estás haciendo. Además, Copilot no mira el resto de archivos de tu proyecto, probablemente para respetar tu privacidad.
Interfaz de línea de comandos
Puedes utilizar Copilot en tu CLI. Allí, las dos funciones principales de Copilot son explicar comandos y sugerirlos.
Para ello, debes instalar la CLI de G itHub y, a continuación, iniciar sesión en tu cuenta de GitHub:
gh auth login
A continuación, instalarás Copilot:
gh extension install github/gh-copilot
Puedes actualizar la extensión:
gh extension upgrade gh-copilot
Aquí tienes un ejemplo de cómo pedir a Copilot que te explique un comando CLI:
Pregunta: gh copilot explica xcopy
La Figura 4-14 muestra la salida.
He aquí cómo hacer que Copilot sugiera un comando:
Prompt: gh copiloto sugiere
A continuación, Copilot te preguntará con qué tipo de comando quieres ayuda -un comando shell genérico, un comando gh o un comando git-, así que especifícalo. Luego te preguntará qué quieres que haga el comando. Aquí tienes un ejemplo:
Pregunta: ¿Cuáles son los comandos para ver y establecer variables de entorno en el sistema?
La Figura 4-15 muestra la respuesta de Copilot, que incluye sugerencias de comandos a utilizar. Puedes copiarlo o pedir a Copilot más ayuda, como que te explique el comando o lo revise.
Programa de socios Copilot
A menudo, los desarrolladores sazonan sus aplicaciones y sacan más partido a sus datos utilizando herramientas de terceros. Por ejemplo, Splunk. Es una de las favoritas para indagar en los registros y el análisis de datos. Los desarrolladores recurren a Splunk para vigilar sus aplicaciones y solucionar problemas rápidamente, gracias a sus potentes funciones de búsqueda e informes. También está New Relic, que se ocupa de que tu aplicación funcione sin problemas. Te proporciona información y diagnósticos en tiempo real, ayudándote a detectar y solucionar problemas de rendimiento y a hacer que tu aplicación funcione mejor para ofrecer una gran experiencia al usuario. Y no nos olvidemos de Datadog. Es un actor clave para el monitoreo tanto de tu infraestructura como de tus aplicaciones. Con su amplia gama de integraciones, Datadog permite a los desarrolladores recopilar, mezclar y mostrar datos de todo tipo de lugares, ayudándoles a tomar decisiones inteligentes sobre cómo aumentar el rendimiento y gestionar los recursos.
Teniendo en cuenta la importancia de estos sistemas, GitHub ha introducido el Programa de Socios Copilot. Presenta una línea creciente de plataformas de integración populares, todas accesibles a través de plugins.
Uno de los primeros socios de este programa es DataStax, la empresa que está detrás de Astra DB, una base de datos vectorial diseñada para crear aplicaciones avanzadas de IA. Gracias a un complemento, los desarrolladores pueden acelerar la creación de bases de datos utilizando Chat. Por ejemplo, Chat ofrece sugerencias de código para la estructura y los metadatos de una base de datos, todo ello en línea con los estándares de codificación. De este modo, el código es más ordenado y fácil de mantener.
Para hacer una pregunta, utiliza la etiqueta @datastax. Algunos ejemplos de preguntas son
Pregunta: Háblame de mi base de datos chat_prod
Pregunta: Háblame del esquema de una tabla
Pregunta: Escribe una consulta SQL para leer de la tabla de chat
Nota
Mary-Brenda Akoda, investigadora de IA con una patente en el campo de la IA para oftalmología, es una ávida usuaria de Copilot. Dice: "En una ocasión, escribí código para todo un proceso de desarrollo de modelos en menos de una hora utilizando Copilot. Era una tarea que normalmente me habría exigido mucho más tiempo y esfuerzo. Curiosamente, cuando tuve que utilizar un IDE en línea que no era compatible con Copilot, me di cuenta de lo tedioso y lento que puede ser el proceso de desarrollo."
Conclusión
Copilot se ha convertido rápidamente en una herramienta de IA imprescindible para la codificación, que mejora enormemente la productividad de los desarrolladores y la calidad del código. Este capítulo te ha ofrecido un resumen de sus principales características, como su capacidad para sugerir bloques de código complejos, sus sólidas medidas de seguridad, su impresionante rendimiento y su facilidad de uso en VS Code. Funciones como el Chat y el Chat Inline en Copilot hacen posible interactuar con la IA mientras estás en medio de la codificación. Aunque sigue siendo una herramienta que necesita orientación humana, Copilot es definitivamente un vistazo al futuro de la codificación impulsada por la IA.
Get Programación asistida por IA now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.