Skip to content

.Net: Create task breakdown for working to update to OpenAI v2 and Azure.AI.OpenAI v2 packages #6864

Description

Semantic Kernel v1 has a dependency on Azure.AI.OpenAI v1, more specifically Microsoft.SemanticKernel.Connectors.OpenAI v1.x depends on Azure.AI.OpenAI v1.x.
OpenAI are introducing an official OpenAI client library for .NET. Microsofts Azure.AI.OpenAI has been updated to depend on the OpenAI package so that it can take full advantage of new features as they emerge. These changes impact Semantic Kernel and the purpose of this task is to identify the work required to update to use the new packages.

  • Work with PM of a Blog describing the change, what the expected outcome, benefits and impact for developers will be
  • Create a feature branch for the team to work in
  • Create new Microsoft.SemanticKernel.Connectors.AzureOpenAI project
    • Move reusable code from existing Microsoft.SemanticKernel.Connectors.OpenAI project to the new project
    • Create Microsoft.SemanticKernel.Connectors.AzureOpenAI unit test project and move tests
    • Upgrade to use Azure.AI.OpenAI v2
    • Test the WithData functionality still works
    • Test coverage must be >80%
    • Integration tests must cover all key scenarios
  • Create new Microsoft.SemanticKernel.Connectors.OpenAI v2 project
    • Create Microsoft.SemanticKernel.Connectors.OpenAI v2 unit test project and move tests
    • Upgrade to use new OpenAI client library
    • Remove Azure specific code
    • Fix default values for prompt execution settings (breaking change)
    • Test coverage must be >80%
    • Integration tests must cover all key scenarios
  • Replace Microsoft.SemanticKernel.Connectors.OpenAI with Microsoft.SemanticKernel.Connectors.OpenAI v2 project
  • Enable EnablePackageValidation property for both OpenAI and AzureOpenAI projects
  • Merge Function Calling abstractions PR to new feature branch
  • Drop duplicated function calling metadata (breaking change)
  • Consider nightly release once all changes are available
  • Identify and document all breaking changes
  • Create a migration guide for developers
  • Verify all samples and concepts work
  • Create tasks for all follow up tasks e.g. eliminating custom clients
  • Consider switching to using Options classes for AddXXXOpenAIXXX methods
  • Release new packages
  • Update Notebooks to use new packages

Metadata

Metadata

Labels

.NETIssue or Pull requests regarding .NET codeai connectorAnything related to AI connectors

Type

No type

Projects

Status
Sprint: Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions