Compartir a través de


Cómo el chat de Copilot comprende y utiliza el contexto

El chat de Copilot en Visual Studio está diseñado para tener en cuenta el contexto y ofrecer respuestas altamente relevantes y adaptadas al comprender profundamente la estructura y el contenido del proyecto. En este artículo se proporciona una visión tras bambalinas de cómo Copilot Chat construye y utiliza el contexto para mejorar el flujo de trabajo de codificación.

Cómo el Copilot Chat recopila el contexto de la solución

Copilot Chat usa un enfoque multicapa para crear contextos en el código base para asegurarse de que sus sugerencias y respuestas son pertinentes y precisas.

Indexación de código base

Si el repositorio se hospeda en GitHub o Azure DevOps, Copilot crea un índice remoto del código base y calcula una inserción que captura patrones y relaciones en el código. Obtenga más información sobre la indexación remota en GitHub.

Si el código se hospeda en otro lugar, Copilot compila un índice local.

En función del mensaje, Copilot puede determinar que necesita más contexto de proyecto para responder con precisión. En tales casos, realiza una búsqueda semántica en el índice remoto o local.

A diferencia de la búsqueda tradicional, que coincide con palabras exactas, la búsqueda semántica se centra en el significado. Con incrustaciones vectoriales avanzadas, Copilot identifica los archivos con la similitud semántica más alta a la solicitud y los agrega a su contexto.

Estos archivos complementan la solicitud del sistema, las instrucciones, el contexto implícito (como el historial de chat y los archivos abiertos) y cualquier contenido explícito que proporcione, como errores.

Obtenga información sobre cómo agregar referencias como contexto en el chat.

Cómo el chat de Copilot aplica sugerencias de código

El chat de Copilot proporciona con frecuencia sugerencias de código en sus respuestas. Estas sugerencias deben asignarse con precisión al código base para poder aplicarlas y probarlas.

Asignación de código basada en modelos

Copilot Chat usa descodificación especulativa para insertar con precisión sugerencias en archivos existentes, lo que reduce el riesgo de errores. En el modo Agente, esto permite a Copilot realizar modificaciones confiables que admitan la compilación, depuración y prueba del código de forma independiente.

Memorias de Copilot

Las memorias de Copilot permiten a Copilot aprender los estándares de codificación específicos del proyecto y los procedimientos recomendados, lo que hace que sea compatible con el proyecto y sea coherente en todas las sesiones.

Cómo funcionan las memorias de Copilot

Las memorias utilizan la detección inteligente para comprender las preferencias de tu equipo mientras escribes mensajes en el chat. Cuando se le solicite, Copilot identifica las instancias en las que corrija su comportamiento, indique un estándar o pídale que recuerde algo.

Cuando se detectan estas instancias, verá un nudge de confirmación para guardar la preferencia.

Captura de pantalla de cuándo Copilot detecta una preferencia para agregar a los recuerdos.

Después, Copilot clasifica la preferencia en uno de los tres archivos:

  • .editorconfig para estándares de codificación
  • CONTRIBUTING.md para procedimientos recomendados, directrices y estándares arquitectónicos.
  • README.md para obtener información de proyecto de alto nivel

Captura de pantalla de la notificación detectada de memoria en la que se muestran las opciones para guardar la preferencia en las instrucciones de nivel de usuario o repositorio.

Cuando se detecta una preferencia, puede elegir dónde guardarla:

  • Preferencias de nivel de usuario: guardadas en %USERPROFILE%/copilot-instructions.md. Estas preferencias se aplican a todas las sesiones de Copilot en todos los proyectos.
  • Preferencias de nivel de repositorio: guardadas en /.github/copilot-instructions.md. Estas preferencias se comparten con el equipo a través del repositorio.

Este enfoque le permite personalizar Copilot para su propio flujo de trabajo, al tiempo que establece estándares de codificación compartidos para su equipo.

Mientras continúa interactuando con Copilot, le enseña a responder de manera más efectiva a sus necesidades y ayuda a su equipo mediante la documentación de procedimientos recomendados de desarrollo que mejoran sus futuras interacciones con Copilot.