Skip to main content
All docs
V25.1
  • AIExtensionsContainerDesktop.RegisterChatClient(AIExtensionsContainer, IChatClient) Method

    Registers a chat client.

    Namespace: DevExpress.AIIntegration

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

    NuGet Package: DevExpress.AIIntegration.Desktop

    Declaration

    public static void RegisterChatClient(
        this AIExtensionsContainer container,
        IChatClient chatClient
    )

    Parameters

    Name Type Description
    container AIExtensionsContainer

    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:

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

    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:

    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