La revolución que está suponiendo la IA Generativa, hace que en los últimos meses, se están acelerando las solicitudes por parte de nuestros clientes, de soluciones que permitan consultar información sobre sus plataformas de datos, a modo de conversación. Dentro de la estrategia de dotar con Copilotos a todas sus herramientas y soluciones, Microsoft también incluye un Copilot dentro de Microsoft Fabric, con diferentes experiencias como Copilot para Power BI, orientado a los usuarios de negocio o analistas, Copilot para Data Factory, o Copilot para los consumos de Fabric (tenéis aquí la lista completa de copilotos https://learn.microsoft.com/en-us/fabric/get-started/copilot-fabric-overview ). Estas experiencias de Copilotos están centradas en ayudarnos a realizar algunas tareas dentro de la plataforma, enfocándose en roles y características concretas. Sin embargo, los AI Skills, nos permite configurar como queremos que se comporte (a través de instrucciones y ejemplos concretos) además que opera de forma “independiente” y no está asociado con una carga de trabajo o característica concreta.
¡Comenzamos!
Para crear nuestro primero AI Skill, necesitamos cumplir con una serie de requisitos, que a día de hoy son los siguientes:
• Necesitamos una versión de Prueba de Microsoft Fabric, en alguna región que disponga de todas las cargas de trabajo.
• Debemos de habilitar, a nivel de tenant la posibilidad de generar AI Skill, la de utilizar Copilot y la de compartir datos de IA a través de regiones.
• Datos, en un warehouse, o un lakehouse, puesto que por ahora, solo es posible que genere código T-SQL
Si cumplimos con esos requisitos, nos aparecerá entonces, a la hora de crear un nuevo item, la opción de crear un AI Skill, como se puede apreciar en la imagen:
Cuando le demos nombre a nuestro AI Sill, deberemos después de tener en cuenta cuatro aspecto relevantes:
• Qué datos son los que queremos utilizar. En el Explorar de nuestro lakehouse / warehouse, podemos seleccionar que tablas son las que queremos que nuestro AI Skill tenga en cuenta para resolver las preguntas que podamos hacerle.
• Instrucciones. Utilizando técnicas de Meteprompting, podemos proporcionarle a nuestro AI Skill instrucciones de como queremos que se comporte, para resolver las cuestiones del usuario.
• Ejemplos. Utilizando una conocida técnica de ingeniería de prompts, como es el few-shot-learning podemos indicarle una serie de ejemplos de como queremos que se resuelven las preguntas del usuario.
• Variaciones de la consulta. Con este parámetro, que por defecto está establecido a 3, controlamos cuantas variantes de la consulta genera el AI Skill para evaluar y decidir la consulta final.
Veamos un ejemplo concreto de como podemos modificar el comportamiento de nuestro AI Skill, a través de estas configuraciones. Partimos de un lakehouse que tiene los datos de la base de datos de demo Northwind, cargados desde este servicio OData https://services.odata.org/V4/Northwind/Northwind.svc/
A partir de esos datos, seleccionando las tablas que se ven en la imagen anterior, lazamos al Skill la pregunta What is the most sold product? Realiza una consulta con la tabla extendida que contiene toda la información de las ventas, para obtenerlo.
Pero si le especificamos que no utilice esta tabla extendida, hace un join para poder obtener el nombre del producto.
Del mismo modo, si editamos los ejemplos y agregamos un ejemplo como el de esta otra imagen, para que devuelve únicamente el nombre:
Vemos como modifica la consulta a la que le hemos puesto como ejemplo:
Obviamente este es únicamente un ejemplo ilustrativo para ver el funcionamiento, porque ese mismo resultado podríamos obtener bien ampliando las instrucciones o siendo más específico en la consulta. Sin embargo, uno de los objetivos de los AI Skills es precisamente que los usuarios no necesiten ser excesivamente específicos, y que podamos utilizar estas técnicas de metaprompting y de few-shot-learning para que el Skill sea capaz de responder las consultas adecuadamente.
Publicando los AI Skills
Una vez tenemos nuestro AI Skill correctamente configurado, para poder compartirlo con otros usuarios, es necesario publicarlo:
Una vez publicado, tenemos a nuestra disposición un endpoint para poder utilizar el AI Skills programáticamente, por lo que podemos utilizarlo desde un notebook de Fabric, o desde cualquier otra aplicación externa a Microsoft Fabric.
Además, podemos continuar refinando nuestro AI Skill sin impactar a la versión publicada, puesto que se nos habrá habilitado este selector para poder modificar que versión queremos ver/ modificar.
Podemos obviamente, cuando configurar los permisos de acceso al item de AI Skill, que serán los permisos que se aplicarán también al Endpoint generado. Para que un usuario pueda consultar el AI Skill, necesitamos compartirle el item, pero no tenemos que indicarle ningún otro permiso, que están pensados para que otros usuarios puedan compartir el AI Skill, o ver y modificar los detalles del Skill.
Obviamente, como bien se puede ver en la imagen, los usuarios que utilicen el AI Skill, están también sujetos a los permisos que tengan los orígenes de datos sobre los que se aplica el Skill.
Novedades Anunciadas en Ignite
¿Qué tenemos ahora de nuevo? Durante Ignite, se han anunciado dos novedades muy interesantes relacionadas con las AI Skills:
• Además de los SQL EndPoints de Data Warehouse, y Lakehouse, AI Skill soportará también Modelos Semánticos y Eventhouse. Es decir, que además de generar código SQL, será capaz de generar también DAX y KQL para dar respuesta a las preguntas de los analistas, incluyendo aquellas preguntas que necesiten acceso a más de uno de esos orígenes!
• Se ha anunciado también que se integrará directamente con el nuevo Azure AI Agent Service, el nuevo servicio, presentado también esta semana, para aglutinar los desarrollos de IA Generativa basados en agentes, de forma que se será posible utilizar los AI Skills creados en Fabric, como funciones o tareas de esos agentes, tanto si los estamos creando desde Copilot Studio, como si lo hacemos desde Azure AI Studio.
Como podemos intuir, se trata de una característica enfocada en proporcionarnos la posibilidad de activar IA Generativa sobre los datos que tenemos en nuestro Onelake, dándonos la capacidad, a través de metaprompting y few-shot-learning de mejorar las respuestas que pueda darnos Copilot en determinados escenarios, además de poder crear tantos AI Skills como nosotros queramos, enfocados en áreas o análisis concretos.