La IA ha llegado como no también a Powershell y lo ha hecho para ser una parte importante del día a día de nuestros trabajos que nos ayudará a tener una mayor productividad. En particular en Powershell, nos permite a través de consultas en lenguaje natural obtener de vuelta su correspondiente comando. En este cybertruco vamos a ver cómo utilizar ese módulo en Powershell.

powershell

Que pasaría si integramos GPT-4 y Powershell, la respuesta es un sistema que nos permite cambiar nuestra manera de trabajar radicalmente. El módulo de Powershell Copilot permite disponer del asistente de IA en nuestra línea de comando y que nos ayude de manera enorme a la hora de generar comandos.

El funcionamiento es sencillo, si necesitamos lanzar cualquier comando para el cual no estamos seguros de la gramática, simplemente escribiremos que queremos hacer y la IA nos devolverá una sugerencia en forma de comando lista para ser ejecutada. Obviamente no siempre será perfecta o ideal, pero es sorprendente el grado de efectividad que proveé.

Antes de seguir adelante, recordad que GPT-4 tiene un modelo de pago por uso sii usamos su API, como en este caso, y que si queremos sacar partido de este módulo más allá de alguna prueba inicial deberemos pagar por ello.

Instalando e importando el módulo para usar Github Copilot

Como siempre en Powershell deberemos instalar y más tarde importar el módulo para poder usarlo. En este caso usaremos el módulo de PowerShellAI, que entre otras funcionalidades incluye la parte de Copilot. Lo instalaremos con el siguiente comando

Install-Module PowerShellAI

Y lo importamos con el siguiente

Import-Module PowerShellAI

Conectando con nuestra cuenta de OpenAI

Ahora debemos linkar este módulo contra nuestra cuenta de OpenAI. Como decíamos para usar GPT-4 a través de una API debemos disponer de crédito en nuestra cuenta. Es importante entender el sistema de precios, en el cual compramos tokens, siendo cada token una cantidad de palabras que la IA nos retornará. El precio también varía en cuanto a qué modelo de IA queramos usar. Tenéis toda la info en el siguiente link.

En el caso que queramos lanzar una consulta sin disponer del crédito necesario simplemente tendremos un mensaje de error de “You exceeded your current quota, please check your plan and billing details”
Para linkar nuestra cuenta desde Powershell tenemos primero que generar una secret key a través de la interfaz web de OpenAI. Para ello seguimos los siguientes pasos.

  1. Nos logueamos en OpenAI.com
  2. Accedemos a la sección build your application
  3. Clickamos en create a new secret key
  4. Introducimos un nombre reconocible para la misma y ya tenemos nuestra secret key.

Obviamente y como su nombre indica la secret key es algo a mantener seguro que y jamás compartir, especialmente en casos como este en que hay suscripciones y dinero de por medio.
Ahora de vuelta a Powershell podemos fijar nuestra secret key con el siguiente comando

Set-OpenAIKey

Utilizando el módulo de IA

Ahora ya tenemos el módulo instalado, importado y con nuestra secret key. Para empezar a usarlo, debemos primero siempre ejecutarlo con el siguiente comando

Copilot

Ahora podemos lanzar cualquier pregunta, obviamente teniendo en cuenta el lenguaje de interacción adecuado, y nos devolverá el comando de Powershell para realizar la acción. A partir de esta sugerencia podemos elegir diversas acciones. La opción por defecto es la de ejecutarla tal cual, también podemos copiar el comando, salir sin ejecutarlo o pedir que se nos explique él mismo. Por ejemplo lanzando la frase List all items in the folder , obtenemos

Get-ChildItem -Force

Si preguntamos, delete temp.txt, obtenemos

Remove-Item "temp.txt”

Estos son ejemplos muy simples pero para que os hagáis una idea. Al final el potencial es muy grande.
Una vez hayamos tomado alguna decisión en cuanto al feedback que nos devuelve la IA, volvemos a la linea de comandos normal de Powershell, y si queremos usarlo de nuevo deberemos lanzar de nuevo el comando Copilot.

Conclusiones

Recordad que obviamente no es un sistema perfecto y depende de una(s) fuente, en este caso GitHub y de cómo haya interpretado los datos que ha leído y almacenado de la misma. Además nos podemos encontrar con que debido a la misma fuente de datos sugerirá en ocasiones comandos ya abandonados o. O del todo correctos o ideales por ejemplo.

Cualquier persona que utilice Powershell con ciertos privilegios dentro de un dominio o tenant tiene, o debería tener, claro que un comando incorrecto puede provocar un desastre, por lo que como siempre el conocimiento del usuario es esencial a la hora de usarlo con o sin IA.

En cualquier caso deberíamos al menos tomarlo como un comando de ayuda evolucionada, capaz de interpretar nuestras necesidades a partir de lenguaje natural y transformarlas en código de Powershell. No es algo para usar constantemente debido a su precio pero seguro que en algún momento nos puede solucionar alguna situación. Espero que os sea de utilidad.