L
Lee Stott
Are you a computer science student eager to dive into the world of AI development with the latest technologies? Semantic Kernel's latest release, v1.0.0-beta1, brings you an exciting opportunity to explore agnostic AI services. In this blog post, we'll take you through the significant changes in this version and show you how to adapt your code effectively.
Embracing Change
Semantic Kernel is evolving rapidly, and its v1.0.0-beta1 release is no exception. With the goal of enhancing versatility and becoming agnostic to AI services, this update brings a standardized experience and increased stability to developers.
Breaking Changes Unveiled
1. From "Skills" to "Plugins"
In Semantic Kernel's pursuit of standardization, the term "Skills" has been replaced by "Plugins." This change involves renaming packages, classes, functions, and properties, all designed to eliminate confusion and streamline your experience.
2. AI Service Agnostic
Previously, Semantic Kernel was closely aligned with OpenAI services. However, this release ensures that the core of Semantic Kernel is AI service agnostic, opening doors for compatibility with a wide range of AI providers.
3. Consolidation of Planners
In this version, planner implementations have been combined into a single package, simplifying the process for developers interested in creating their custom planner implementations.
Your Migration Journey
1. Updating NuGet Packages
Before you embark on your migration, make sure you're equipped with the latest NuGet packages. Several packages have undergone changes, while new ones have been introduced. Here's a quick rundown of these updates:
2. Updating Your Code
To transition effectively, follow these steps:
Renaming and Import
Refactoring
New Result Types
Farewell to GPT3Tokenizer
In Conclusion
Semantic Kernel v1.0.0-beta1 opens new horizons for AI development, providing versatility and AI service agnosticism. As you embark on your migration journey, be sure to update your NuGet packages and implement the code changes as outlined in this guide and check out the Semantic Kernel resource Semantic Kernel | The latest news from the Semantic Kernel team for developers (microsoft.com). These alterations are pivotal for the future development of Semantic Kernel, and your adaptability and cooperation are greatly appreciated as we progress together.
Continue reading...
Embracing Change
Semantic Kernel is evolving rapidly, and its v1.0.0-beta1 release is no exception. With the goal of enhancing versatility and becoming agnostic to AI services, this update brings a standardized experience and increased stability to developers.
Breaking Changes Unveiled
1. From "Skills" to "Plugins"
In Semantic Kernel's pursuit of standardization, the term "Skills" has been replaced by "Plugins." This change involves renaming packages, classes, functions, and properties, all designed to eliminate confusion and streamline your experience.
2. AI Service Agnostic
Previously, Semantic Kernel was closely aligned with OpenAI services. However, this release ensures that the core of Semantic Kernel is AI service agnostic, opening doors for compatibility with a wide range of AI providers.
3. Consolidation of Planners
In this version, planner implementations have been combined into a single package, simplifying the process for developers interested in creating their custom planner implementations.
Your Migration Journey
1. Updating NuGet Packages
Before you embark on your migration, make sure you're equipped with the latest NuGet packages. Several packages have undergone changes, while new ones have been introduced. Here's a quick rundown of these updates:
- Microsoft.SemanticKernel: This meta package continues to provide core Semantic Kernel functionality, with no change in its name.
- Microsoft.SemanticKernel.Abstractions: There's no name change here either, but some unused abstractions have been removed.
- Microsoft.SemanticKernel.Core: Despite major changes, the name remains the same. However, some functionality has been extracted into separate packages.
- Microsoft.SemanticKernel.TemplateEngine.Basic: This package now houses the default prompt template engine.
- Microsoft.SemanticKernel.Reliability.Basic: It holds the default prompt template engine.
- Microsoft.SemanticKernel.Reliability.Polly: This package offers Polly-based reliability support.
- Microsoft.SemanticKernel.Functions.Semantic: For Semantic function support.
- Microsoft.SemanticKernel.Plugins.Memory: Designed for Semantic Kernel memory support.
- Microsoft.SemanticKernel.Functions.Grpc: Previously known as Microsoft.SemanticKernel.Skills.Grpc.
- Microsoft.SemanticKernel.Functions.OpenAPI: Formerly Microsoft.SemanticKernel.Skills.OpenAPI.
- Microsoft.SemanticKernel.Planners.Core: All planner packages have merged into this single package.
- Microsoft.SemanticKernel.Plugins.Core: Previously known as Microsoft.SemanticKernel.Skills.Core.
- Microsoft.SemanticKernel.Plugins.Document: Formerly Microsoft.SemanticKernel.Skills.Document.
- Microsoft.SemanticKernel.Plugins.MsGraph: Formerly Microsoft.SemanticKernel.Skills.MsGraph.
- Microsoft.SemanticKernel.Plugins.Web: Formerly Microsoft.SemanticKernel.Skills.Web.
2. Updating Your Code
To transition effectively, follow these steps:
Renaming and Import
- Transform ImportAIPluginAsync into ImportPluginFunctionsAsync (PR #2968).
- Move semantic functions from Kernel.Core to Functions.Semantic (PR #2961).
Refactoring
- When working with a SequentialPlanner, ensure that you use the SemanticMemoryConfig for configuration (PR #2949).
- Replace method names related to importing plugins with names that use "Function" instead of "Skill." For example, change ImportGrpcPluginFromFile to ImportGrpcFunctionsFromFile (PR #2943).
- Update method names to involve importing functions instead of skills (PR #2937).
- The consolidation of planner packages into Planners.Core requires updating namespaces (PR #2931).
- Throughout the codebase, rename packages and classes from "Skills" to "Plugins" (PR #2854).
- Simplify ContextVariables by converting it into a proper Dictionary<string, string> (PR #2852).
- When configuring StepwisePlanner, consider the changes introduced in PR #2850.
- Make planner constructors more consistent (PR #2849).
- Introduce an IKernel property to SKContext to support the use of IKernel.RunAsync (PR #2846).
- Replace the Kernel.Func() shorthand with kernel.Functions.GetFunction(skill, functionName) (PR #2836).
New Result Types
Farewell to GPT3Tokenizer
In Conclusion
Semantic Kernel v1.0.0-beta1 opens new horizons for AI development, providing versatility and AI service agnosticism. As you embark on your migration journey, be sure to update your NuGet packages and implement the code changes as outlined in this guide and check out the Semantic Kernel resource Semantic Kernel | The latest news from the Semantic Kernel team for developers (microsoft.com). These alterations are pivotal for the future development of Semantic Kernel, and your adaptability and cooperation are greatly appreciated as we progress together.
Continue reading...