Back to Devexpress

AIExtensionsContainerDesktop Class

corelibraries-devexpress-dot-aiintegration-a3a90622.md

latest4.3 KB
Original Source

AIExtensionsContainerDesktop Class

A container that manages registered AI clients in WinForms and WPF applications.

Namespace : DevExpress.AIIntegration

Assembly : DevExpress.AIIntegration.Desktop.v25.2.dll

NuGet Package : DevExpress.AIIntegration.Desktop

Declaration

csharp
public static class AIExtensionsContainerDesktop
vb
Public Module AIExtensionsContainerDesktop

Remarks

DevExpress AI-powered extensions operate within the AIExtensionsContainerDesktop.Default container. This container manages all registered AI clients so that DevExpress UI controls can automatically leverage AI services.

The following code snippet registers an Azure OpenAI client in a WinForms application:

csharp
using Microsoft.Extensions.AI;
using DevExpress.AIIntegration;

internal static class Program {
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        IChatClient azureChatClient = new Azure.AI.OpenAI.AzureOpenAIClient(new Uri(AzureOpenAIEndpoint),
        new System.ClientModel.ApiKeyCredential(AzureOpenAIKey))
        .GetChatClient("gpt-4o-mini").AsIChatClient();

        AIExtensionsContainerDesktop.Default.RegisterChatClient(azureChatClient);

        Application.Run(new Form1());
    }
    static string AzureOpenAIEndpoint { get { return Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT"); } }
    static string AzureOpenAIKey { get { return Environment.GetEnvironmentVariable("AZURE_OPENAI_APIKEY"); } }
}
vb
using Microsoft.Extensions.AI;
using DevExpress.AIIntegration;

internal static class Program {
    [STAThread]
    static void Main() {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Dim azureChatClient As IChatClient = New Azure.AI.OpenAI.AzureOpenAIClient(New Uri(AzureOpenAIEndpoint),
            New System.ClientModel.ApiKeyCredential(AzureOpenAIKey)).
            GetChatClient("gpt-4o-mini").AsIChatClient()

        AIExtensionsContainerDesktop.Default.RegisterChatClient(azureChatClient)
        Application.Run(new Form1());
    }
    static string AzureOpenAIEndpoint { get { return Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT"); } }
    static string AzureOpenAIKey { get { return Environment.GetEnvironmentVariable("AZURE_OPENAI_APIKEY"); } }
}

The default container for AI services (AIExtensionsContainerDesktop.Default) can store only one registered AI client. An exception is raised if you attempt to register a second AI client.

To switch between AI chat clients, call the UnregisterChatClient method to unregister the currently registered AI chat client and then register another AI chat client:

csharp
using DevExpress.AIIntegration;
using Microsoft.Extensions.AI;

//...
IChatClient asChatClientOpenAI;
IChatClient asChatClientAzureOpenAI;

//...
//Initialize asChatClientOpenAI and asChatClientAzureOpenAI
InitializeChatClientOpenAI();
InitializeChatClientAzureOpenAI();

// Register an OpenAI client.
RegisterChatClient(asChatClientOpenAI);

// Unregister the previously registered AI client.
AIExtensionsContainerDesktop.Default.UnregisterChatClient();
// Register an Azure OpenAI client.
RegisterChatClient(asChatClientAzureOpenAI);

Tip

DevExpress AI-poweredExtensions for WinForms

Inheritance

Object AIExtensionsContainerDesktop

See Also

AIExtensionsContainerDesktop Members

DevExpress.AIIntegration Namespace