Skip to content

v2.0.0

Choose a tag to compare

@devlooped-bot devlooped-bot released this 18 Jan 19:47
· 69 commits to main since this release

What's Changed

🚨Breaking Changes

Namespace Relocations

Several types have been moved from Devlooped.Extensions.AI to Devlooped.Extensions.AI.OpenAI:

Type Old Namespace New Namespace
ReasoningEffort Devlooped.Extensions.AI Devlooped.Extensions.AI.OpenAI
Verbosity Devlooped.Extensions.AI Devlooped.Extensions.AI.OpenAI
WebSearchTool Devlooped.Extensions.AI Devlooped.Extensions.AI.OpenAI

Migration: Update your using statements from Devlooped.Extensions.AI to Devlooped.Extensions.AI.OpenAI for these types.

Removed Types

The following types have been removed entirely:

Type Replacement
AzureInferenceChatClient Use the built-in IChatClientProvider infrastructure with AddChatClientProvider
AzureOpenAIChatClient Use the built-in IChatClientProvider infrastructure with AddChatClientProvider
OpenAIChatClient Use the built-in IChatClientProvider infrastructure with AddChatClientProvider
OpenAIWebSearchToolExtensions Properties (City, Region, TimeZone, ContextSize) are now directly on WebSearchTool

WebSearchTool Changes

The WebSearchTool class has been significantly simplified:

  • Constructor: Now accepts an optional country parameter (string? country = null) instead of a required one
  • Properties moved inline: City, Region, and TimeZone are now properties directly on WebSearchTool (no longer extension properties)
  • New property: AllowedDomains (string[]?) has been added
  • Removed: The ContextSize extension property has been removed as it's no longer documented on OpenAI's official documentation

ConfigurableChatClient Changes

  • The Options property has been removed from ConfigurableChatClient since the new provider-based architecture does not require it
  • A new constructor signature is now available with explicit parameters

Method Signature Changes

AddChatClients

The AddChatClients extension methods now include an additional optional parameter:

// Old signature
AddChatClients(services, configuration, configurePipeline, configureClient, prefix);

// New signature  
AddChatClients(services, configuration, configurePipeline, configureClient, prefix, useDefaultProviders: true);

The overload allows skipping the registration of default providers when set to false.

Removed Methods

  • OpenAIExtensions.ApplyExtensions(ChatOptions?) has been removed since the new OpenAI-specific ChatOptions use a new mechanism based on lazy initialization of the ChatOptions.RawRepresentationFactory to apply the values.

Migration Guide

  1. Update namespace imports for ReasoningEffort, Verbosity, and WebSearchTool to use Devlooped.Extensions.AI.OpenAI

  2. Replace custom chat clients (AzureInferenceChatClient, AzureOpenAIChatClient, OpenAIChatClient) with the new provider-based architecture using IChatClientProvider and AddChatClientProvider

  3. WebSearchTool usage is source-compatible once you import the correct OpenAI namespace.

  4. Use OpenAIChatOptions for typed and binding-friendly configuration of OpenAI-specific options.

📝 Documentation updates

  • Add http file showcasing how to use the management API by @kzu in #54

🔨 Other

  • Fix duplicate Sponsors section in grok package readme by @Copilot in #60

Full Changelog: v1.0.2...v2.0.0

Sponsors

The following sponsors made this release possible: @clarius, @MFB-Technologies-Inc, @sandrock, @drivenet, @Keflon, @tbolon, @kfrancis, @unoplatform, @rbnswartz, @jfoshee, @Mrxx99, @eajhnsn1, @davidjenni, @Jonathan-Hickey, @KenBonny, @SimonCropp, @agileworks-eu, @arsdragonfly, @vezel-dev, @ChilliCream, @4OTC, @v-limo, @DominicSchell, @adalon, @Eule02, @henkmartijn, @torutek, @mccaffers, @cleosia.

Thanks 💜