En GitHub Codespaces + Copilot, el chat de Copilot ofrece tres modos principales que se adaptan a distintos estilos de trabajo y necesidades de desarrollo. La siguiente es la explicación de cada uno y cómo se pueden aprovechar:


🧠 Modo Ask: respuestas rápidas y contextuales

  • ¿Qué hace? Te permite hacer preguntas sobre tu código o sobre programación en general.
  • Ideal para: Consultas rápidas como “¿Qué hace esta función?”, “¿Cómo uso esta librería?”, “¿Cuál es la mejor forma de ordenar este array?”.
  • Cómo funciona: Seleccionas un fragmento de código (opcional), escribes tu pregunta en el chat, y Copilot responde sin modificar tu código.
  • Ventajas:
    • No cambia tu proyecto.
    • Usa el contexto del editor para dar respuestas precisas.
    • Perfecto para aprender o desbloquearte rápidamente.

✍️ Modo Edit: edición directa del código

  • ¿Qué hace? Te permite pedirle a Copilot que modifique tu código directamente.
  • Ideal para: Refactorizar, agregar validaciones, cambiar nombres de variables, mejorar legibilidad, etc.
  • Cómo funciona: Seleccionas el código que quieres editar, describes el cambio (por ejemplo: “hazlo más eficiente” o “agrega manejo de errores”), y Copilot lo modifica en el editor.
  • Ventajas:
    • Ahorra tiempo en tareas repetitivas.
    • Mantienes control sobre los cambios.
    • Puedes revisar y deshacer fácilmente.

🤖 Modo Agent: colaboración autónoma en tiempo real

  • ¿Qué hace? Copilot actúa como un colaborador que puede leer archivos, editar, ejecutar comandos en terminal, correr pruebas, y más.
  • Ideal para: Tareas más complejas como “agrega autenticación OAuth”, “crea un endpoint REST”, “escribe pruebas unitarias”.
  • Cómo funciona: Le das una meta en lenguaje natural, y Copilot planifica, ejecuta, corrige errores y te muestra los pasos.
  • Ventajas:
    • Automatiza flujos completos.
    • Aprende del contexto del proyecto.
    • Puedes intervenir o ajustar en cualquier momento.

🔧 Otras funcionalidades del chat en Codespaces

  • Herramientas integradas: En modo Agent puedes activar/desactivar herramientas como read_file, edit_file, run_in_terminal, etc.
  • Extensiones MCP: Puedes añadir extensiones para ampliar las capacidades del agente (por ejemplo, conectarlo con servidores o APIs).
  • Historial contextual: Copilot recuerda el contexto del archivo abierto y puede usarlo para darte respuestas más precisas.
  • Interacción fluida: Puedes cambiar entre modos fácilmente desde el menú desplegable en el chat.

3 Ejemplo práctico y Configuración

Perfecto, Justo. Vamos a hacer esto bien práctico y útil para ti como mentor y optimizador de entornos. Te mostraré:

  1. ✅ Cómo configurar GitHub Codespaces para trabajar con Python.
  2. 🧪 Un ejemplo práctico usando los tres modos del chat de Copilot (Ask, Edit, Agent) en un proyecto Python.

🛠️ Paso 1: Configurar GitHub Codespaces para Python

Requisitos previos

  • Tener una cuenta en GitHub.
  • Tener acceso a GitHub Codespaces (disponible en repositorios personales o de organizaciones con Codespaces habilitado).

Pasos para crear un Codespace con Python

  1. Crear un repositorio nuevo o usar uno existente.

    • Ejemplo: python-codespaces-demo
  2. Agregar un archivo requirements.txt con tus dependencias:

    numpy
    pandas
    matplotlib
  3. Agregar un archivo .devcontainer/devcontainer.json para configurar el entorno:

    {
      "name": "Python Dev",
      "image": "mcr.microsoft.com/devcontainers/python:3.11",
      "features": {
        "ghcr.io/devcontainers/features/python:1": {
          "version": "3.11"
        }
      },
      "postCreateCommand": "pip install -r requirements.txt"
    }
  4. Desde GitHub, haz clic en el botón verde CodeCodespacesCreate codespace on main.


🧪 Ejemplo práctico con Python: análisis de datos

Supongamos que tienes este código en main.py:

import pandas as pd

data = {
    'Nombre': ['Ana', 'Luis', 'Carlos'],
    'Edad': [23, 31, 45],
    'Ciudad': ['Bogotá', 'Medellín', 'Cali']
}

df = pd.DataFrame(data)
print(df)

🔍 Modo Ask

Pregunta: “¿Cómo puedo agregar una columna con el año de nacimiento?” Respuesta esperada de Copilot: > Puedes calcular el año de nacimiento restando la edad al año actual. Ejemplo:

from datetime import datetime
df['AñoNacimiento'] = datetime.now().year - df['Edad']

✍️ Modo Edit

Instrucción: “Agrega una columna con el año de nacimiento.” Resultado: Copilot modifica el código directamente para incluir esa columna.

🤖 Modo Agent

Meta: “Quiero que este script lea datos desde un archivo CSV, los analice y grafique la edad promedio por ciudad.” Copilot Agent puede: - Crear el archivo data.csv. - Modificar main.py para leer el CSV. - Agregar análisis con groupby. - Generar una gráfica con matplotlib.

Repositorio Base

La siguiente es la estructura base para un repositorio de análisis de datos en Python, ideal para usar en GitHub Codespaces con Copilot. Este entorno está optimizado para enseñanza, exploración y colaboración:


📁 Estructura del repositorio: python-codespaces-demo

python-codespaces-demo/
├── .devcontainer/
│   └── devcontainer.json
├── data/
│   └── sample.csv
├── main.py
├── requirements.txt
└── README.md

📄 Contenido de los archivos

.devcontainer/devcontainer.json

Configura el entorno de desarrollo en Codespaces:

{
  "name": "Python Dev",
  "image": "mcr.microsoft.com/devcontainers/python:3.11",
  "features": {
    "ghcr.io/devcontainers/features/python:1": {
      "version": "3.11"
    }
  },
  "postCreateCommand": "pip install -r requirements.txt"
}

requirements.txt

Librerías esenciales para análisis de datos:

pandas
matplotlib

data/sample.csv

Archivo de muestra para análisis:

Nombre,Edad,Ciudad
Ana,23,Bogotá
Luis,31,Medellín
Carlos,45,Cali

main.py

Script base para cargar y visualizar los datos:

import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime

# Cargar datos
df = pd.read_csv('data/sample.csv')

# Agregar columna de año de nacimiento
df['AñoNacimiento'] = datetime.now().year - df['Edad']

# Mostrar DataFrame
print(df)

# Gráfico: edad promedio por ciudad
df.groupby('Ciudad')['Edad'].mean().plot(kind='bar', title='Edad Promedio por Ciudad')
plt.ylabel('Edad Promedio')
plt.tight_layout()
plt.show()

README.md

Guía rápida para estudiantes o colaboradores:

# Análisis de Datos con Python en Codespaces

Este repositorio es una plantilla para comenzar a trabajar con análisis de datos en GitHub Codespaces usando Copilot.

## 🚀 Cómo empezar

1. Haz clic en **Code > Codespaces > Create codespace on main**.
2. Espera a que se configure el entorno.
3. Ejecuta `main.py` para ver el análisis.

## 🧪 ¿Qué puedes probar?

- Usar **Copilot Chat** en modo **Ask** para entender el código.
- Usar **Edit** para modificar funciones.
- Usar **Agent** para automatizar tareas como agregar nuevas visualizaciones.

## 📂 Estructura

- `data/sample.csv`: Datos de entrada.
- `main.py`: Script principal.
- `.devcontainer/`: Configuración del entorno.