Back to Devexpress

AIExtensionsContainerDesktop.RegisterChatClient(AIExtensionsContainer, IChatClient) Method

corelibraries-devexpress-dot-aiintegration-dot-aiextensionscontainerdesktop-dot-registerchatclient-x28-devexpress-dot-aiintegration-dot-aiextensionscontainer-microsoft-dot-extensions-dot-ai-dot-ichatclient-x29.md

latest4.7 KB
Original Source

AIExtensionsContainerDesktop.RegisterChatClient(AIExtensionsContainer, IChatClient) Method

Registers a chat client.

Namespace : DevExpress.AIIntegration

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

NuGet Package : DevExpress.AIIntegration.Desktop

Declaration

csharp
public static void RegisterChatClient(
    this AIExtensionsContainer container,
    IChatClient chatClient
)
vb
<ExtensionAttribute>
Public Shared Sub RegisterChatClient(
    container As AIExtensionsContainer,
    chatClient As IChatClient
)

Parameters

NameTypeDescription
containerAIExtensionsContainer

The container that holds the registered AI client.

| | chatClient | Microsoft.Extensions.AI.IChatClient |

The chat client.

|

Remarks

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);

See Also

UnregisterChatClient

AIExtensionsContainerDesktop Class

AIExtensionsContainerDesktop Members

DevExpress.AIIntegration Namespace