Obtener sugerencias de código
watsonx Code Assistant
Genera sugerencias de código mediante conversaciones de chat o completando código en el editor.
Utilizar conversaciones de chat
Introduzca un mensaje que explique el código que necesita, y watsonx Code Assistant genera algo que puede elegir utilizar.
- Para iniciar una nueva conversación de chat, haz clic en el icono Nuevo
.
- Hacer una pregunta o dar una instrucción.
- Haga clic en el ícono Enviar
. Watsonx Code Assistant envía su entrada al modelo de código y muestra la respuesta en el chat.
Seleccione el mensaje en el que watsonx Code Assistant generó el último resultado correcto y continúe la conversación de chat desde allí en un nuevo chat.
- Para utilizar un mensaje anterior o existente en un nuevo chat, haga clic en el ícono Iniciar nuevo chat
.
- Hacer una pregunta o dar una instrucción.
- Haga clic en el ícono Enviar
. Watsonx Code Assistant envía su entrada al modelo de código y muestra la respuesta en el chat.
Transferencia de código entre el chat y el editor
Cuando reciba una sugerencia de código que desee utilizar, puede insertar un bloque de código del chat en su editor.
- Sitúe el cursor en el editor.
- En el chat, haga clic en el icono Insertar
.
Si tiene código en el editor que desea utilizar como contexto en el chat, puede copiar el código en el chat.
- Resalta el código en el editor.
- Haga clic con el botón derecho para mostrar el menú emergente.
- Elija watsonx Code Assistant.
- Elija Añadir código seleccionado al chat.
Utilizar el lenguaje natural
Cada mensaje de chat forma parte de una conversación de chat. Mantenga las conversaciones centradas en torno a un tema o tarea específicos. Cuando cambies tu contexto a otro lenguaje de programación, a otro proyecto de tu espacio de trabajo o a una tarea de programación diferente, crea una nueva conversación de chat. Obtendrá resultados más pertinentes para sus preguntas.
Ejemplos:
Create a Python class Customer. Include attributes for firstName, lastName and age.Create a JavaScript function that fetches data from a REST API endpoint, dynamically populates an HTML table with the results, and updates the UI asynchronously
Utilización de la biblioteca de avisos
Watsonx Code Assistant incluye una biblioteca de instrucciones que contiene un conjunto de peticiones de codificación comunes en lenguaje natural. Puede utilizarlos tal cual en su chat, o modificarlos para su caso de uso.
Para acceder a la biblioteca de avisos:
- Haga clic en el icono Abrir
.
- Haga clic en Biblioteca para abrirla.
- Haga clic en el icono Copiar
.
- Vuelva a hacer clic en Preguntar biblioteca para cerrarla.
- Pega el mensaje en el chat.
Redactar mensajes de chat eficaces
Para obtener los mejores resultados en su conversación:
- Escriba sus mensajes de chat en inglés.
- Empieza con una instrucción sencilla y clara.
- Utilice los mensajes de chat posteriores para refinar el código de salida del modelo.
- Sea tan específico y detallado como pueda en cada paso. Puede mejorar gradualmente el código creado a través de mensajes de chat posteriores.
- Utilice referencias a archivos y métodos en su mensaje para proporcionar el contexto pertinente. Por ejemplo, si quieres que el modelo cree un método similar a otro método, añade '
similar to @<method>a tu mensaje. - Si ves que las respuestas pierden relevancia, o si empiezas una nueva tarea, crea una nueva conversación de chat y trabaja a partir de ahí. Es mejor tener muchas conversaciones de chat cortas, cada una con un contexto específico, que una gran conversación que podría confundir al modelo con mensajes de chat diferentes y sin relación entre sí.
Referenciar código en su espacio de trabajo
Para hacer preguntas o perfeccionar un archivo, clase, función o método específico en su espacio de trabajo local, puede utilizar una referencia de código. Estas referencias proporcionan un contexto importante y pueden ayudar a aumentar la precisión de la respuesta.
- Escribe el símbolo '
@' como parte de tu mensaje de chat para ver una lista de archivos, clases y métodos de tu espacio de trabajo. - Filtre la lista escribiendo los caracteres del nombre del archivo, clase o método al que desea hacer referencia.
- Haga clic para seleccionar la referencia. Watsonx Code Assistant envía el contenido de la referencia como parte de tu mensaje.
Las entradas en .gitignore no se incluyen como opciones de referencia de código. Si tienes datos confidenciales, como archivos de .env, asegúrate de añadirlos a .gitignore.
Cuando abre una carpeta de espacio de trabajo local, watsonx Code Assistant crea un índice de estos elementos en la memoria para que pueda hacer referencia a estos archivos y funciones en el chat. El editor también indexa los archivos que añades o modificas durante la sesión. El índice contiene hasta 1.000 de los archivos más recientes en estos lenguajes de programación:
- C
- C++
- Go
- Java
- JavaScript
- Python
- TypeScript
La indexación de archivos solo funciona en repositorios locales.
Cuando se hace referencia a un método, o se utiliza CodeLens en un método, watsonx Code Assistant admite determinados lenguajes de código. La referencia a un archivo completo funciona en todos los idiomas. Para obtener más información, consulte Ayuda lingüística al trabajar con métodos.
Al hacer referencia a un archivo, el límite de tamaño es de 50 KB. Si alcanza este límite, divida el archivo en funciones individuales y haga referencia a cada una de ellas. O divida el archivo en 49 KB, teniendo en cuenta los límites de las funciones, y haga referencia al archivo en cada división. Con cualquiera de los dos métodos, hay que fusionar los resultados.
Casos prácticos con ejemplos que hacen referencia al código:
| Caso de uso | Mensaje de ejemplo |
|---|---|
| Generar una función a partir de una función existente | Crear un método ' send_translate_message ' que sea similar a @send_code_explanation_message |
| Generar una prueba unitaria que siga las pruebas unitarias existentes | Cree una prueba unitaria para @getName que sea similar a las pruebas unitarias de @testLoadTablesChildConnectionReceiverJob.h |
| Mejorar las funciones existentes | Añadir tratamiento de errores y declaraciones de registro a @format_documents |
| Mejorar las funciones existentes | Actualizar @setEmail con gestión de errores para cadenas nulas |
| Explicar código | Qué hace @mainmain.py |
| Explicar código | Explicar la lógica de @send_invoice |
| Generar documentación para funciones y clases | Añadir JavaDoc a @Cliente |
Recuperación generación aumentada
Plan Estándar
Con el plan Estándar, su organización puede configurar la generación aumentada de recuperación (RAG), que es el proceso de optimización de la salida del modelo de lenguaje extenso (LLM) mediante el aumento de la solicitud con el contexto adicional. Para obtener más información, consulte Configuración de la generación aumentada de recuperación(RAG).
Si envía una consulta, watsonx Code Assistant utiliza las herramientas RAG para recuperar la información de sus bases de código o documentación. Este contexto relevante se añade a la consulta antes de enviarla al modelo LLM. El sistema RAG determina las fuentes que deben incluirse o excluirse para generar una respuesta con la información más útil.
RAG requiere el plan watsonx Code Assistant Standard y la ampliación Visual Studio Code. No está disponible para su uso con el plug-in Eclipse.
Cuando RAG esté activado para sus repositorios Git, introduzca @repo < instruction > o @docs < instruction > en las conversaciones de chat para generar una respuesta que utilice el contexto del repositorio
referenciado o los documentos del almacén de vectores. Sustituya el parámetro < instruction > por un mensaje de aviso.
-
Ejemplo de sintaxis para utilizar el repositorio de código base referenciado:
@repo how is a chat message processed? -
Ejemplo de sintaxis para utilizar la colección de documentos referenciada:
@docs What are the steps to setup a connection to the user data store?
Uso de los comandos de chat
Comandos de chat que puedes utilizar para realizar determinadas tareas:
| Mandato | Descripción | Para obtener más información |
|---|---|---|
/document |
Generar documentación para un archivo referenciado o un método o una clase en el área de trabajo activa | Generación de documentación |
/docs |
Formule preguntas que hagan referencia a la documentación de los productos IBM y Red Hat | Obtener respuestas de la documentación IBM |
/explain |
Utilice la IA generativa para analizar y resumir su código y comprender lo que hace | Explicación del código |
/help |
Obtener asistencia rápida sobre tareas | Escribe ' /help ' en el chat |
/unit-test |
Generación de pruebas unitarias para varios lenguajes de programación | Generación de pruebas unitarias |
/translate |
Traducir código de un idioma a otro | Traducir código |
@repo |
Para uso con la generación aumentada de recuperación (RAG) | Habilitación de RAG |
@docs |
Para uso con la generación aumentada de recuperación (RAG) | Habilitación de RAG |
Gestión de sesiones de conversación por chat
Puede utilizar el menú Sesiones de chat para gestionar las sesiones de conversación de chat existentes.
Para abrir el menú:
- Haga clic en el icono Abrir
.
- Haz clic en Sesiones de chat.
Cambiar de sesión de conversación en el chat
Para pasar de una sesión de conversación de chat a otra, seleccione la sesión en la lista de sesiones de chat.
Cambiar el nombre de una sesión de chat
Para cambiar el nombre de una sesión de conversación de chat:
- En la sesión de chat, haz clic en el icono del menú de desbordamiento
.
- Pulse Renombrar.
- Escriba el nuevo nombre y pulse Intro.
Borrar sesiones de chat
Para eliminar una única sesión de conversación de chat:
- En la sesión de chat, haz clic en el icono del menú de desbordamiento
.
- Pulse Suprimir.
Para eliminar varias sesiones de conversación de chat:
- Haga clic en el icono Seleccionar chats
.
- Seleccione los chats que desea eliminar o haga clic en Seleccionar todo.
- Haga clic en el icono de eliminación
y, a continuación, haga clic en el botón Eliminar para confirmar.
Completar código en el editor
Obtén sugerencias de código introduciendo código o comentarios en tu editor.
Uso del editor en Eclipse
Para C, C++, Go, JavaScript, Python y TypeScript:
- Haz clic con el botón derecho en el archivo.
- Haga clic en Abrir con y, a continuación, en Editor de texto.
Para Java, la generación de código en línea con el editor de Java en el Eclipse IDE es compatible con watsonx Code Assistant, pero primero debe configurarse.
-
Vaya a Content Assist en la configuración de Eclipse.
Navegación a Content Assist Sistema operativo Vía de acceso MacOS Eclipse > Configuración > Java > Editor > Content Assist Windows Ventana > Preferencias > Java > Editor > Content Assist -
En la sección Inserción, desmarque Insertar propuestas individuales automáticamente.
-
En la sección Activación automática, añada "
._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" a Activadores de activación automática para Java y confirme que está marcada la opción Activar activación automática. -
Haga clic en Aplicar y Cerrar.
Finalización de una línea
Mientras escribes una línea de código en tu editor, watsonx Code Assistant puede sugerirte código para completarla.
- Empieza a escribir una línea de código y haz una pausa.
- Watsonx Code Assistant añade una sugerencia de código para completar la línea que has escrito.
- En Visual Studio Code, pulse Tab para aceptar la sugerencia. En Eclipse, pulse Retorno o Intro para aceptar la sugerencia. O pulse Esc para rechazar.
Finalización multilínea
Puede obtener una sugerencia de código multilínea basada en una línea de código o en un comentario que introduzca.
-
Empieza a escribir una línea de código o introduce un comentario que describa el código que deseas.
Para obtener mejores resultados, incluya en su comentario el lenguaje de programación previsto, por ejemplo:
// Sort an array with a fast sort function (TypeScript programming language) -
Utiliza un atajo de teclado.
Atajos de teclado por defecto Sistema operativo Atajo MacOs Opción+. Windows Alt+. -
Watsonx Code Assistant añade una sugerencia de código multilínea.
-
En Visual Studio Code, pulse Tab para aceptar la sugerencia. En Eclipse, pulse Retorno o Intro para aceptar la sugerencia. O pulse Esc para rechazar.
Desactivación de la finalización de código para lenguajes de código específicos
Si es necesario, puede utilizar la configuración Completion: Disabled Languages para la extensión Visual Studio Code para desactivar la finalización de código para lenguajes de código específicos.
-
Abra la configuración de la extensión watsonx Code Assistant.
-
Haga clic en Añadir artículo para seleccionar un idioma de código. Las opciones son:
Lenguajes de código Opción Lenguaje de los códigos cC cppC++ goGo javaJava javascriptJavaScript javascriptreactJavaScript Reaccionar pythonPython typescriptTypeScript typescriptreactTypeScript Reaccionar
Para volver a habilitar un idioma de código, puede eliminarlo de la lista.
-
Haga clic en el idioma del código en la lista.
-
Haga clic en el icono Eliminar elemento
para eliminarlo de la lista de idiomas desactivados.
Cambiar los atajos de teclado
Puede cambiar los atajos de teclado si las combinaciones predeterminadas ya están asignadas a otras tareas.
Para cambiar los métodos abreviados de teclado en Visual Studio Code:
- Haga clic en el menú Código.
- Seleccione Valores.
- Seleccione Atajos de teclado.
- Buscar '
watsonx. - Para el acceso directo que desee cambiar, haga clic en el icono de lápiz de edición Cambiar asignación de teclas y asigne una combinación de teclas diferente.
Para cambiar los atajos de teclado en Eclipse:
- Haga clic en el Eclipse menú.
- Seleccione Valores.
- Escriba "
Keys" para filtrar la configuración y, a continuación, haga clic en Teclas. - Escriba '
WCApara filtrar la lista. - Seleccione el atajo de teclado que desea cambiar.
- En el campo Binding, introduzca una nueva combinación de teclas.
Desactivación de la finalización de código
Si es necesario, puede desactivar la finalización del código en la ventana del editor.
Para desactivar la finalización de código en Visual Studio Code:
- En la esquina inferior derecha del editor, haga clic en el icono Desactivar watsonx Code Assistant Completions
.
- Puede volver a activar las finalizaciones haciendo clic de nuevo en el icono Activar finalizaciones watsonx Code Assistant.
Para desactivar la finalización de código en el Eclipse IDE:
- En la barra de herramientas del editor, haga clic en el icono Desactivar complementos watsonx Code Assistant.
- Puede volver a activar las finalizaciones haciendo clic de nuevo en el icono Activar finalizaciones watsonx Code Assistant.
Buenas prácticas para generar sugerencias de código
Utilice estos consejos para obtener los mejores resultados.
Utiliza el chat para bloques de código más largos. Utilice la generación de código en el editor para el perfeccionamiento y el código repetitivo.
Utiliza el chat para:
- Generar un esquema de una clase
- Especificar un método en detalle
- Refinar el código sugerido con más instrucciones (por ejemplo, renombrar o reemplazar)
Utilice la generación de código en el editor para:
- Completa la línea de código que empezaste a escribir
- Creación automática de código repetitivo, como getters y setters
- Crear métodos y código que puedan describirse con una sola línea de comentario
Comment-to-code: utilice comentarios descriptivos, no instrucciones
Cuando utilices el comentario al código en el editor, escribe un comentario que describa el comportamiento previsto, de forma similar a como escribes comentarios para el código que has escrito. Por ejemplo, utilice " //return even numbers from an arraylist o " //method that returns even numbers from an arraylist.
No escriba su comentario como una instrucción, como ' //write a method that returns even numbers from an arraylist. Watsonx Code Assistant utiliza modelos entrenados para completar código en datos que contienen muchos comentarios
típicos y descriptivos, por lo que este tipo de comentarios arroja mejores resultados.
Contexto utilizado para la generación de código en el editor
El ingrediente clave para la generación de código es el contexto, es decir, el código circundante que se pasa al modelo. Para la generación de código en el editor, watsonx Code Assistant utiliza:
- Las 20 líneas de código anteriores a la línea en la que se activa la generación.
- Las 20 líneas de código posteriores a la línea en la que se activa la generación.
- Hasta 200 líneas desde el principio del fichero actual donde se activa la generación.
- Hasta 5 fragmentos de código similares al código que rodea la línea en la que se activó la generación. Estos fragmentos se toman de los 10 últimos archivos que haya abierto en el mismo lenguaje de programación que el archivo actual.
Mejorar los resultados de la generación de código en el editor:
- Abre archivos en tu espacio de trabajo que contengan código que desees que watsonx Code Assistant conozca. {{site {{site.data.keyword.wca_short_cap}} intenta encontrar código en estos archivos que sea similar al que desencadena la finalización, por ejemplo, métodos que utilizan clases y variables similares, y luego envía este código al modelo como contexto.
- Ayude a ' watsonx Code Assistant ' comenzando con una definición de clase o añadiendo sentencias import, o utilice la charla ' watsonx Code Assistant ' para crear el esquema inicial, copie el resultado en un archivo de su espacio de trabajo y continúe con la generación de código en el editor. No utilice la generación de código en el editor cuando parta de cero archivos o de archivos casi vacíos, ya que estas condiciones no proporcionan suficiente contexto.