May 22nd, 2024

Announcing the Release of Semantic Kernel Python 1.0.0

We are thrilled to announce the release of the long-awaited Semantic Kernel Python SDK 1.0.0! This milestone version brings a plethora of enhancements and new features designed to empower AI and app developers with more robust and versatile tools.

Exciting New Feature: Shared Prompts Across Languages

One of the groundbreaking features of this release is the ability to share prompts across different programming languages. This unique feature streamlines the development process and fosters better collaboration among developers working with AI-driven applications. Now, you can write a prompt once in Python, whether it’s a standard skprompt.txt/config.json, a YAML file prompt, or a Handlebars prompt, and effortlessly share it with developers using other languages, ensuring consistency and saving valuable development time.

What’s New in Semantic Kernel Python SDK 1.0.0?

Cross-Language Prompt Sharing

This feature allows developers to use the same prompts across various programming languages, substantially improving efficiency and collaboration. It is particularly useful in diverse development environments where teams use multiple languages.

Improved API Consistency

The new release improves the consistency of the API, making it more intuitive and easier to adopt for new users. While adhering to Pythonic principles, the SDK reflects the naming conventions of the .NET SDK more closely, helping cross-language developers maintain parity with their code, concepts, and explanations.

Expanded Documentation and Samples

We have expanded our documentation and restructured our sample code to help you get started quickly and leverage the full potential of the Semantic Kernel Python SDK. More syntax examples will be added in the near future.

Additional Features:

  • Automatic Function Calling: Add plugins to your kernel and have the model automatically use them as part of chat completions, enhancing the automation and efficiency of your applications.
  • Filters: Filters provide a way to hook into different parts of the code as the kernel processes function calls or renders prompts. It is possible to use auto function invocation filters, function invocation filters, and prompt filters to customize the behavior of the kernel.
  • Pydantic Settings: We’ve removed the sole dependency on the .env file as the only way to provide secrets, keys, and other settings. Pydantic Settings now leverage environment variables and also fallback to a .env file if desired. Developers can also manually provide keys, secrets, and settings via constructors.
  • Prompt Templating: Developers can leverage the standard kernel prompt template, a Handlebars prompt template, or a Jinja2 prompt template, offering greater flexibility in how prompts are structured and used.
  • Simplified APIs to Add Functions and Plugins: Instead of having to juggle several different methods to add either a plugin or a function, whether it’s from a YAML prompt, an skprompt.txt/config.json, or as a simple lambda function, it is possible to simply call add_plugin(s) or add_function(s) on the kernel, and it figures out how to parse the data into each type.
  • Improved OpenAPI Plugin Handling: The OpenAPI parsing during plugin creation now forms the proper kernel parameter metadata for each operation in the OpenAPI spec. It also properly handles the operation’s schema and the responses’ schema.
  • Improved Test Coverage and Type Checking: Along with the already present link checks, we’ve added mypy for type checking to help standardize how function and class types are handled, making the code cleaner and more robust.

Getting Started

To start using Semantic Kernel Python SDK 1.0.0, head over to our GitHub repository where you can find installation instructions, detailed documentation, and a variety of sample projects to kickstart your development journey.

We believe that the new features and enhancements in this release will significantly improve your AI and app development processes. As always, we are eager to hear your feedback and thoughts on this release.

Happy coding!

Author

Evan Mattson
Senior Software Engineer

3 comments

Discussion is closed. Login to edit/delete existing comments.

  • Raja AravapalliMicrosoft employee · Edited

    Hello, Thanks for sharing the details on new version. I tried to browse the samples at the git repo link shared in this article. But, looks like there some issue, and when browsed to git repo, i am seeting this message "This organization has no public repositories."

    Link I am trying to browse for sample code: https://github.com/semantic-kernel/

    can the team please fix this at the earliest. Thanks a lot!

    Read more
    • Evan MattsonMicrosoft employee Author

      Thanks for bringing this to our attention, Raja. We’ve fixed the link.

      • Raja AravapalliMicrosoft employee

        I can browse the repository now…. thank you @Evan.