This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Community Hub.
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.
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
- Move semantic functions from
- When working with a
SequentialPlanner, ensure that you use the
SemanticMemoryConfigfor configuration (PR #2949).
- Replace method names related to importing plugins with names that use "Function" instead of "Skill." For example, change
- Update method names to involve importing functions instead of skills (PR #2937).
- The consolidation of planner packages into
Planners.Corerequires updating namespaces (PR #2931).
- Throughout the codebase, rename packages and classes from "Skills" to "Plugins" (PR #2854).
ContextVariablesby 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
SKContextto support the use of
- Replace the
kernel.Functions.GetFunction(skill, functionName)(PR #2836).
New Result Types
- Expect changes in return types:
IKernel.RunAsyncwill now return
Farewell to GPT3Tokenizer
GPT3Tokenizeris no longer available. Instead, consider alternatives like
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.