corelibraries-devexpress-dot-aiintegration-dot-aiextensionscontainerdesktop-dot-registerchatclient-x28-devexpress-dot-aiintegration-dot-aiextensionscontainer-microsoft-dot-extensions-dot-ai-dot-ichatclient-x29.md
Registers a chat client.
Namespace : DevExpress.AIIntegration
Assembly : DevExpress.AIIntegration.Desktop.v25.2.dll
NuGet Package : DevExpress.AIIntegration.Desktop
public static void RegisterChatClient(
this AIExtensionsContainer container,
IChatClient chatClient
)
<ExtensionAttribute>
Public Shared Sub RegisterChatClient(
container As AIExtensionsContainer,
chatClient As IChatClient
)
| Name | Type | Description |
|---|---|---|
| container | AIExtensionsContainer |
The container that holds the registered AI client.
| | chatClient | Microsoft.Extensions.AI.IChatClient |
The chat client.
|
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"); } }
}
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:
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
AIExtensionsContainerDesktop Class