Organiza tu IA con Semantic Kernel
Con el SDK Semantic Kernel, puedes combinar fácilmente las instrucciones de IA con lenguajes de programación convencionales como C# y Python.
Semantic Kernel es un SDK de código abierto que permite combinar fácilmente servicios de IA como OpenAI, Azure OpenAI y Hugging Face con lenguajes de programación convencionales como C# y Python. De este modo, se pueden crear aplicaciones de IA que combinen lo mejor de ambos mundos.
Semantic Kernel es la base de Microsoft Copilot
Para ayudar a los desarrolladores a crear sus propias experiencias Copilot sobre plugins de IA, Microsoft ha lanzado Semantic Kernel, un ligero SDK de código abierto que permite orquestar plugins de IA. Con Semantic Kernel, puedes aprovechar los mismos patrones de orquestación de IA que potencian Microsoft 365 Copilot y Bing en tus propias aplicaciones.
Semantic Kernel hace extensible el desarrollo de la IA
Semantic Kernel ha sido diseñado para permitir a los desarrolladores integrar de forma flexible los servicios de IA en sus aplicaciones existentes. Para ello, Semantic Kernel proporciona un conjunto de conectores que facilitan la adición de memorias y modelos. De este modo, Semantic Kernel es capaz de añadir un «cerebro» simulado a su aplicación.
Además, Semantic Kernel facilita la adición de habilidades a tus aplicaciones con plugins de IA que permiten interactuar con el mundo real. Estos plugins se componen de avisos y funciones nativas que pueden responder a disparadores y realizar acciones. De este modo, los plugins son como el «cuerpo» de tu aplicación de IA.
Gracias a la extensibilidad que proporciona Semantic Kernel con conectores y plugins, puedes utilizarlo para orquestar plugins de IA tanto de OpenAI como de Microsoft sobre casi cualquier modelo. Por ejemplo, puede utilizar Semantic Kernel para orquestar complementos creados para ChatGPT, Bing y Microsoft 365 Copilot sobre modelos de OpenAI, Azure o incluso Hugging Face.
Semantic Kernel puede orquestar complementos de IA de cualquier proveedor
Como desarrollador, puede utilizar estas piezas de forma individual o conjunta. Por ejemplo, si sólo necesitas una abstracción sobre los servicios OpenAI y Azure OpenAI, podrías utilizar el SDK para ejecutar prompts preconfigurados dentro de tus plugins, pero la verdadera potencia de Semantic Kernel proviene de la combinación de estos componentes.
¿Por qué necesitas un SDK de orquestación de IA?
Si lo deseas, puedes utilizar directamente las API de los servicios de IA más conocidos e introducir los resultados en sus aplicaciones y servicios existentes. Sin embargo, para ello debe aprender las API de cada servicio e integrarlas en su aplicación. El uso directo de las API tampoco permite aprovechar fácilmente los recientes avances en la investigación de la IA, que requieren soluciones basadas en estos servicios. Por ejemplo, las API existentes no proporcionan memorias de planificación o de IA de forma inmediata.
Para simplificar la creación de aplicaciones de IA, han surgido proyectos de código abierto como LangChain. Semantic Kernel es la contribución de Microsoft a este espacio y está diseñado para ayudar a los desarrolladores de aplicaciones empresariales que desean integrar la IA en sus aplicaciones existentes.
Coordinación de la IA con Semantic Kernel
Mediante el uso de múltiples modelos de IA, plugins y memoria, todos juntos dentro de Semantic Kernel, puedes crear sofisticados pipelines que permiten a la IA automatizar tareas complejas para los usuarios.
Por ejemplo, con Semantic Kernel, puedes crear una canalización que ayude a un usuario a enviar un correo electrónico a su equipo de marketing. Con la memoria, podría recuperar información sobre el proyecto y, a continuación, utilizar el planificador para autogenerar los pasos restantes utilizando los plugins disponibles (por ejemplo, fundamentar la pregunta del usuario con datos de Microsoft Graph, generar una respuesta con GPT-4 y enviar el correo electrónico). Por último, puedes mostrar un mensaje de éxito al usuario en tu aplicación utilizando un plugin personalizado.
Perspectiva técnica de lo que ocurre:
- 1 Ask Comienza con el envío de un objetivo al Semantic Kernel por parte de un usuario o desarrollador.
- 2 Kernel El kernel organiza la petición del usuario. Para ello, el núcleo ejecuta una cadena de procesos definida por el desarrollador. Mientras se ejecuta la cadena, el núcleo proporciona un contexto común para que los datos puedan ser compartidos entre las funciones.
- 2.1 Memorias Con un plugin especializado, un desarrollador puede recuperar y almacenar contexto en bases de datos vectoriales. Esto permite a los desarrolladores simular la memoria dentro de sus aplicaciones de IA.
- 2.2 Planificador Los desarrolladores pueden pedir a Semantic Kernel que cree automáticamente cadenas para responder a las nuevas necesidades de un usuario. Planner lo consigue mezclando y combinando plugins que ya han sido cargados en el kernel para crear pasos adicionales. Esto es similar a cómo ChatGPT, Bing y Microsoft 365 Copilot combinan plugins en sus experiencias.
- 2.3 Conectores Para obtener datos adicionales o realizar acciones autónomas, puede utilizar plugins listos para usar como el kit Microsoft Graph Connector o crear un conector personalizado para proporcionar datos a sus propios servicios.
- 2.4 Plugins personalizados Como desarrollador, puede crear plugins personalizados que se ejecuten dentro de Semantic Kernel. Estos plugins pueden consistir en instrucciones LLM (funciones semánticas) o código nativo C# o Python (función nativa). Esto te permite añadir nuevas capacidades de IA e integrar tus aplicaciones y servicios existentes en Semantic Kernel.
- 3 Respuesta Una vez que el kernel ha terminado, puedes enviar la respuesta al usuario para hacerle saber que el proceso se ha completado.
Semantic Kernel es open source
Para asegurarnos de que todos los desarrolladores puedan aprovechar lo que Microsoft ha aprendido construyendo Copilots, se ha publicado Semantic Kernel como proyecto de código abierto en GitHub. En la actualidad, ofrecemos el SDK en .NET y Python (Typescript y Java estarán disponibles próximamente). Para obtener una lista completa de lo que se admite en cada lenguaje.
Estos son los lenguajes admitidos por Semantic Kernel:
- C#
- Python
- Java
Dado que cada día se producen nuevos avances en IAs LLM, este SDK evoluciona.