Programar con Gemini Code Assist

En este documento se describe cómo puedes usar Gemini Code Assist, un colaborador basado en IA en Google Cloud, para hacer lo siguiente en el editor base de Cloud Workstations:

  • Proporcionar orientación para ayudarte a resolver problemas con tu código.

  • Genera código para tu proyecto.

  • Recibe sugerencias mientras escribes código.

Consulta cómo y cuándo usa tus datos Gemini Google Cloud .

Para ayudarte a cumplir los requisitos de las licencias de tu código, Gemini Code Assist proporciona citas de fuentes cuando sus sugerencias citan de forma directa y detallada una fuente específica. Para obtener más información sobre cómo y cuándo cita fuentes Gemini, consulta el artículo Cómo te ayuda Gemini a generar código y a citar fuentes.

La personalización de código te permite recibir sugerencias de código basadas en el repositorio de código privado de tu organización directamente desde Gemini Code Assist. Consulta cómo configurar la personalización del código.

Este documento está dirigido a desarrolladores de todos los niveles. Se da por supuesto que tienes conocimientos prácticos de Cloud Workstations y que estás familiarizado con Google Cloud. Si lo prefieres, también puedes probar Gemini Code Assist en VS Code, IntelliJ y Cloud Shell Editor.

Antes de empezar

  1. Asegúrate de que tienes el rol de administrador de Cloud Workstations en el proyecto para poder crear configuraciones de estaciones de trabajo.

    Ir a IAM

  2. Configura tu estación de trabajo si aún no lo has hecho y asegúrate de seleccionar Editor base (Code-OSS) en la configuración.

  3. Antes de probar las funciones de Gemini Code Assist en tu archivo de código, asegúrate de que el lenguaje de programación del archivo sea compatible. Para obtener más información sobre los lenguajes de programación admitidos, consulta Lenguajes de programación admitidos.

Conéctate a Google Cloud y selecciona un proyecto

En esta sección, te conectarás a un proyecto con la API Gemini for Google Cloud habilitada en tu estación de trabajo y lo seleccionarás. Google Cloud Google Cloud

Si seleccionas un Google Cloud proyecto que no tenga habilitada la API Gemini para Google Cloud, recibirás una notificación que te dará la opción de habilitar la API desde el IDE. Selecciona Habilitar la API en la ventana de notificación para habilitar la API en tu proyecto. Para obtener más información, consulta Configurar Gemini Code Assist en un proyecto.

Para conectarte a Google Cloud en tu estación de trabajo, sigue estos pasos:

  1. En la Google Cloud consola, inicia tu estación de trabajo.

    Iniciar estación de trabajo

  2. En la barra de actividad de tu estación de trabajo, haz clic en spark Gemini Code Assist.

  3. Sigue las indicaciones para iniciar sesión en Gemini Code Assist si aún no lo has hecho.

  4. Si se te pide que permitas que Cloud Workstations abra el sitio web externo, haz clic en Abrir.

  5. Para iniciar sesión en tu cuenta, sigue las indicaciones.

    Si se te pide que compruebes que has descargado esta aplicación desde Google, haz clic en Iniciar sesión.

    Se abrirá una nueva pestaña en tu navegador con el código de verificación para iniciar sesión en Cloud Code.

  6. Copia el código de verificación y pégalo en tu terminal donde dice Enter authorization code (Introduce el código de autorización) y, a continuación, pulsa Intro (en Windows y Linux) o Retorno (en macOS).

    Ahora estás en contacto con Google Cloud. Gemini está listo para usarse.

Chatear con Gemini Code Assist

En esta sección, aprenderás a abrir el panel de Gemini Code Assist y a chatear con él para que te explique el código.

Para empezar a chatear con Gemini, sigue estos pasos:

  1. Abre un archivo de origen.

  2. En la barra de actividad de tu estación de trabajo, haz clic en spark Gemini Code Assist.

  3. En el panel Gemini Code Assist (Asistencia de Gemini para el código), introduce la petición Explain this code to me y haz clic en send Enviar.

    Gemini usa tu archivo como contexto para tu petición y responde con una explicación de tu código.

    Para centrarte en un bloque de código específico, selecciónalo en el archivo abierto antes de introducir tu petición.

Borrar el historial de chat

Gemini Code Assist usa el historial de chat para obtener contexto adicional al responder a tus peticiones.

Si tu historial de chat ya no es relevante para lo que quieres conseguir, puedes restablecerlo: en el panel Gemini Code Assist, haz clic en delete Restablecer chat.

Generar código con peticiones

En las siguientes secciones se muestra cómo usar Gemini Code Assist para generar código con la petición de ejemplo Function to create a Cloud Storage bucket en un archivo. También puedes seleccionar una parte del código y pedir ayuda a Gemini Code Assist a través de la función de chat, así como recibir y aceptar o rechazar sugerencias de código mientras programas.

Hacer peticiones a Gemini Code Assist en un archivo

  1. En un archivo de origen, en una línea nueva, introduce el comentario Function to create a Cloud Storage bucket y, a continuación, pulsa Intro (en Windows y Linux) o Retorno (en macOS).

  2. Para generar código, pulsa Control + Intro (en Windows y Linux) o Control + Retorno (en macOS).

    Junto al texto de tu petición en el archivo, Gemini Code Assist genera el código en forma de texto fantasma.

  3. Opcional: Para aceptar el código generado, pulsa Tab.

Opcional: Cambiar la combinación de teclas para generar código

Si la combinación de teclas predeterminada para generar código no funciona como se indica en la sección anterior, puedes cambiarla siguiendo estos pasos:

  1. En tu estación de trabajo, haz clic en menu Menú y, a continuación, ve a Archivo > Preferencias > Combinaciones de teclas.

  2. En la lista de combinaciones de teclas, busca Cloud Code: Generate Code (Cloud Code: generar código).

  3. Haz clic en Cloud Code: Generate Code (Cloud Code: generar código) y, a continuación, en edit Change Keybinding (Cambiar combinación de teclas).

  4. En el cuadro de diálogo que aparece, introduce tu propio acceso directo.

  5. Pulsa Intro (en Windows y Linux) o Retorno (en macOS).

    Ahora puedes usar la combinación de teclas que acabas de asignar para generar código con Gemini.

Preguntar a Gemini Code Assist con el código seleccionado mediante el chat

Gemini Code Assist puede realizar tareas o responder a tus preguntas en función del código que selecciones. Para obtener código generado a partir de una petición con código seleccionado, sigue estos pasos:

  1. En la barra de actividad, haz clic en spark Gemini Code Assist para abrir el panel de chat Gemini Code Assist.

  2. En un archivo de origen, selecciona un bloque de código.

  3. En el campo de texto de chat de Gemini Code Assist, introduce una petición para el código seleccionado.

    Por ejemplo, selecciona una función de tu código e introduce la petición Write a unit test for this function.

    Gemini usa el código que has seleccionado como referencia y responde a tu petición.

Recibir sugerencias mientras escribes código

Mientras escribes código, Gemini Code Assist te ofrece sugerencias de código insertado que puedes aceptar o ignorar. Para probar esta función, sigue estos pasos:

  1. En un archivo de origen, en una línea nueva, empieza a escribir una función. Por ejemplo, si estás en un archivo de Python, escribe def. Gemini sugiere código en forma de texto fantasma.

  2. Para aceptar la sugerencia de código de Gemini Code Assist, pulsa Tab. De lo contrario, para ignorar la sugerencia, pulsa Esc o sigue escribiendo el código.

Opcional: Inhabilitar las sugerencias insertadas

Si prefieres inhabilitar las sugerencias insertadas en Gemini Code Assist, sigue estos pasos:

  1. En tu estación de trabajo, selecciona menu Menú y, a continuación, ve a Archivo > Preferencias > Configuración.

  2. En la pestaña Usuario del cuadro de diálogo Configuración, ve a Extensiones > Cloud Code.

  3. Desplázate hasta que encuentres la lista Cloudcode: Gemini Code Assist: Inline Suggestions: Enable Auto y, a continuación, selecciona Off (Desactivado).

    De esta forma, se desactivarán las sugerencias insertadas. También puedes pulsar Control + Intro (en Windows y Linux) o Control + Retorno (en macOS) para activar manualmente las sugerencias insertadas.

Opcional: Excluir archivos del contexto con un archivo .aiexclude

Puedes excluir archivos para que Gemini Code Assist no los tenga en cuenta como contexto creando un archivo .aiexclude. Un archivo .aiexclude sigue una sintaxis similar a la de un archivo .gitignore, con las siguientes diferencias:

  • Un archivo .aiexclude vacío o inexistente no bloquea ningún archivo de su directorio ni de todos los subdirectorios.
  • Un archivo .aiexclude no admite la negación, en la que se anteponen patrones con un signo de exclamación (!).
  • Un archivo .aiexclude coincide de forma ávida con el carácter *. De esta forma, se buscarán coincidencias indiscriminadamente en directorios y archivos. Este archivo .aiexclude no distingue entre ** y * en lo que respecta a carpetas o archivos.

Actualmente, solo se admite un archivo .aiexclude. Para configurar el archivo .aiexclude, crea un archivo con el mismo nombre en la raíz de la carpeta del espacio de trabajo..aiexclude Si quieres colocar este archivo fuera de la raíz del espacio de trabajo o cambiarle el nombre, la ruta se puede definir en los ajustes de VS Code, en "Context Exclusion File". El valor de la ruta proporcionado en este ajuste se resolverá en relación con la carpeta raíz del espacio de trabajo abierto.

Ejemplos

En los siguientes ejemplos se muestra cómo configurar un archivo .aiexclude:

  • Bloquear todos los archivos llamados apikeys.txt en el directorio del espacio de trabajo o en un subdirectorio:

    apikeys.txt
    
  • Bloquear todos los archivos con la extensión .key en el directorio del espacio de trabajo o en un subdirectorio:

    *.key
    
  • Bloquea solo el archivo apikeys.txt en el mismo directorio que el archivo .aiexclude, pero no ningún subdirectorio:

    /apikeys.txt
    
  • Bloquea todos los archivos del directorio my/sensitive/dir y todos los subdirectorios. La ruta debe ser relativa al directorio raíz del espacio de trabajo.

    my/sensitive/dir/*
    

Inhabilitar las sugerencias de código que coincidan con las fuentes citadas

Gemini proporciona información de citas cuando cita de forma directa y detallada otra fuente, como código fuente disponible públicamente. Para obtener más información, consulta Cómo y cuándo cita fuentes Gemini.

Para evitar que se sugiera código que coincida con las fuentes citadas, puedes modificar el ajuste geminicodeassist.recitation.maxCitedLength a 0 en un archivo settings.json:

"geminicodeassist.recitation.maxCitedLength": 0

Usar acciones inteligentes

Para ayudarte a aumentar la productividad y minimizar el cambio de contexto, Gemini Code Assist ofrece acciones inteligentes basadas en IA directamente en tu editor de código fuente. Cuando seleccionas código en el editor, puedes ver y elegir entre una lista de acciones relevantes para tu contexto.

Para usar las acciones inteligentes, sigue estos pasos:

  1. En un archivo de origen, selecciona un bloque de código.

  2. Junto al bloque de código seleccionado, haz clic en lightbulb Mostrar acciones de código.

    El icono de bombilla de acciones inteligentes aparece después de seleccionar un bloque de código en Shell y Workstations.

  3. Selecciona una acción, como Generar pruebas unitarias.

    Gemini genera una respuesta basada en la acción que hayas seleccionado.

Usar la transformación de código

Gemini Code Assist ofrece la función Transformación de código, que te permite seleccionar una parte del código de un archivo y solicitar modificaciones en el código mediante peticiones en lenguaje natural, usando un cuadro de texto insertado.

Con la transformación de código, puedes hacer lo siguiente:

  • Generar líneas de comentarios para documentar el código
  • Solucionar problemas con el código
  • Mejorar la legibilidad del código
  • Hacer que el código sea más eficiente

También puedes ver las fuentes de contexto de una respuesta generada en el panel Gemini: Chat.

Enviar peticiones a Gemini Code Assist con el cuadro de texto insertado

El cuadro de texto insertado te permite interactuar con Gemini Code Assist directamente en tu código.

Para abrir el cuadro de texto insertado y enviar una petición a Gemini, sigue estos pasos:

  1. En un archivo de origen, pulsa Control + I (en Windows y Linux) o Comando + I (en macOS).

  2. Escribe una petición, como Write a function to create a Cloud Storage bucket, y pulsa Intro (en Windows y Linux) o Retorno (en macOS).

    Gemini Code Assist genera el código en función de tu petición.

Ver las diferencias del código refactorizado

Con la vista de diferencias integrada en el cuadro de texto insertado, puedes ver los cambios que sugiere Gemini y tu código original. Después, puedes aceptar o rechazar los cambios sugeridos.

Para ver las diferencias del código refactorizado en el cuadro de texto insertado, sigue estos pasos:

  1. En un archivo de origen, selecciona una función y abre el cuadro de texto insertado pulsando Control + I (en Windows y Linux) o Comando + I (en macOS).

  2. Introduce una petición, como Add comments, y pulsa Intro (en Windows y Linux) o Retorno (en macOS).

    Cuando Gemini genera los cambios de código en la función seleccionada, aparece la vista de diferencias.

    Fuentes de contexto que se muestran en el panel Gemini: Chat.

  3. Para aceptar o descartar los cambios, haz clic en Aceptar o Descartar.

Ver las fuentes de contexto de una respuesta generada

La función de visualización del contexto muestra los archivos de tu proyecto (las fuentes de contexto) que se han usado como referencia para generar respuestas a tus peticiones. Saber qué archivos se han usado como referencia te ayuda a acotar tus peticiones y obtener respuestas más específicas. Las fuentes de contexto se muestran cada vez que usas Gemini Chat.

Para ver las fuentes de contexto de la respuesta generada, en el panel Gemini: Chat, desplázate hasta que veas el fragmento Fuentes de contexto. Despliega el fragmento para ver todas las fuentes de contexto.

Fuentes de contexto que se muestran en el panel Gemini: Chat.

Usar comandos inteligentes

Los comandos inteligentes son comandos que puedes usar en el cuadro de texto insertado para realizar acciones específicas en tu código.

Para obtener una explicación de todo un archivo de origen con el comando inteligente /explain, sigue estos pasos:

  1. En un archivo, abre el cuadro de texto insertado pulsando Control + I (en Windows y Linux) o Comando + I (en macOS).

  2. Pulsa / para ver la lista de comandos inteligentes y sus descripciones.

  3. Selecciona /explain.

    Gemini genera una explicación de todo el archivo en el cuadro de texto insertado.

  4. Opcional: Si quieres ver la respuesta generada en el panel Gemini: Chat, haz clic en Ver en Chat.

Ver el historial de peticiones

Acceder al historial de peticiones te ahorra tiempo cuando quieres reutilizar peticiones en un archivo de origen grande.

Para acceder al historial de peticiones, abre el cuadro de texto insertado en el archivo pulsando Control + I (en Windows y Linux) o Comando + I (en macOS) y, a continuación, pulsa Control + Flecha hacia arriba (en Windows y Linux) o Comando + Flecha hacia arriba (en macOS). De esta forma, puedes desplazarte por tus peticiones anteriores y volver a usarlas cuando sea necesario.

Mejorar la legibilidad del código para hablantes no nativos de inglés

Si no eres hablante nativo de inglés y dependes de aplicaciones de traducción, puedes usar el cuadro de texto insertado para generar comentarios en otros idiomas.

Para convertir comentarios del inglés a otro idioma o añadir comentarios nuevos en otro idioma, sigue estos pasos:

  1. En un archivo de origen, selecciona el código al que quieras añadir comentarios.

  2. Abre el cuadro de texto insertado pulsando Control + I (en Windows y Linux) o Comando + I (en macOS).

  3. Escribe una petición, como Add spanish comments, y pulsa Intro (en Windows y Linux) o Retorno (en macOS).

    Gemini genera comentarios en el idioma que hayas especificado en tu petición y muestra la diferencia de estas sugerencias.

  4. Para aceptar o descartar estos cambios en el código, haz clic en Aceptar o en Descartar.

Probar otras peticiones de ejemplo

Después de leer la sección Generar código con peticiones de este documento, prueba algunas de las peticiones de ejemplo que se indican a continuación.

Obtener una explicación del código

  1. En un archivo de origen, selecciona la función que quieras que se explique.
  2. En el panel Gemini Code Assist, introduce la petición Explain this code to me.

    Gemini usa el código seleccionado como referencia y responde con una explicación de la función seleccionada.

Generar planes de pruebas

  1. En un archivo de origen, selecciona el código al que quieras añadir pruebas unitarias.
  2. En el panel Gemini Code Assist, introduce la petición Write unit tests for my code.

Obtener ayuda para depurar código

  1. En un archivo de origen, selecciona el código que quieras depurar.
  2. En el panel Gemini Code Assist, introduce la petición Help me debug my code.

Hacer que tu código sea más legible

  1. En un archivo de origen, selecciona el código que quieras que sea más legible.
  2. En el panel Gemini Code Assist, introduce la petición Make my code more readable.

    Si prefieres centrarte en una parte específica del código, selecciona la parte que quieras antes de pedirle algo a Gemini.

Problemas conocidos

En las siguientes secciones se describen los problemas conocidos de Gemini Code Assist.

Las advertencias de recitación de licencias no se mantienen entre sesiones

Si las advertencias de recitación de licencias no se mantienen entre sesiones, consulta los registros persistentes:

  1. Haz clic en menu Menú > Ver > Salida.

  2. Selecciona Gemini Code Assist - Citas.

Problemas de conectividad en la ventana de salida de Gemini Code Assist

Si ves un error de conexión u otros problemas de conectividad en la ventana de salida de Gemini Code Assist, prueba lo siguiente:

  • Configura tu cortafuegos para permitir el acceso a oauth2.googleapis.com y cloudaicompanion.googleapis.com.

  • Configura tu cortafuegos para permitir la comunicación a través de HTTP/2, que usa gRPC.

Puedes usar la herramienta grpc-health-probe para probar la conectividad. Si la comprobación se realiza correctamente, se obtiene el siguiente resultado:

$ grpc-health-probe -addr cloudaicompanion.googleapis.com:443 -tls error: this server does not implement the grpc health protocol (grpc.health.v1.Health): GRPC target method can't be resolved

Si la comprobación no se realiza correctamente, se muestra el siguiente resultado:

timeout: failed to connect service "cloudaicompanion.googleapis.com:443" within 1s

Para obtener más detalles, ejecuta lo siguiente antes de grpc-health-probe:

export GRPC_GO_LOG_SEVERITY_LEVEL=info

Gemini Code Assist y JetBrains Gateway

Gemini Code Assist no se ejecuta a través de JetBrains Gateway. Por lo tanto, Gemini Code Assist no se ejecuta en los IDEs de Cloud Workstations que requieren JetBrains Gateway para conectarse.

La opción "Activar Gemini Code Assist" sigue apareciendo después de seleccionar un proyecto de Gemini Code Assist

Si has seleccionado tu proyecto siguiendo las instrucciones de esta guía, que incluyen habilitar la API de Gemini para Google Cloud, puede que haya un problema con el servidor LS.

Para obtener más información sobre el problema, haz lo siguiente:

  1. En la barra de estado, haz clic en spark Asistencia de Gemini Code y, a continuación, selecciona Enviar comentarios.

  2. Haz clic en Mostrar en cualquiera de los archivos de registro para ver más detalles y solucionar el problema.

Enviar comentarios

Para dejar comentarios sobre tu experiencia, sigue estos pasos:

  1. En la barra de estado, haz clic en Gemini Code Assist y, a continuación, en el menú Selección rápida, selecciona Enviar comentarios.

  2. En el formulario, rellena los campos Título y Comentarios.

  3. Para compartir tus registros de Skaffold o de Asistente de IA, selecciona la opción Enviar registros de Skaffold o Enviar registros de Asistente de IA.

  4. Haz clic en Enviar comentarios.

Siguientes pasos