OpenAICompatibleChatClient Class

An IChatClient for OpenAI-compatible chat completion endpoints (OpenAI, Azure OpenAI, Ollama, Cloudflare Workers AI, LM Studio and others). Supports streaming responses and tool calling. Pair it with FunctionInvokingChatClient to invoke AIFunction tools automatically.

Inheritance

Object

OpenAICompatibleChatClient

Implements

Microsoft.Extensions.AI.IChatClient

Namespace: Radzen

Assembly: Radzen.Blazor.dll

Syntax

public sealed class OpenAICompatibleChatClient : Microsoft.Extensions.AI.IChatClient

Examples

builder.Services.AddChatClient(services =>
    new OpenAICompatibleChatClient(services.GetRequiredService<HttpClient>(), "https://api.openai.com/v1/chat/completions", apiKey, defaultModel: "gpt-4o-mini"))
    .UseFunctionInvocation();

Constructors

OpenAICompatibleChatClientLink to this section

Initializes a new instance of the OpenAICompatibleChatClient class.

Declaration
public OpenAICompatibleChatClient(Net.Http.HttpClient httpClient, string endpoint, string apiKey, string apiKeyHeader, string defaultModel)
Parameters
Type Name Description
Net.Http.HttpClient httpClient The HttpClient used to send requests. It is not disposed by the client.
string endpoint The chat completions URL, for example https://api.openai.com/v1/chat/completions. A relative URL is resolved against the BaseAddress.
string apiKey The API key. When null or empty no authentication header is sent.
string apiKeyHeader The header that carries the API key. Authorization (the default) sends it as a bearer token.
string defaultModel The model used when ModelId is not set.

Properties

MetadataLink to this section

Gets the metadata that describes the client.

Declaration
public Microsoft.Extensions.AI.ChatClientMetadata Metadata { get; }
Property Value
Type Description
Microsoft.Extensions.AI.ChatClientMetadataGets the metadata that describes the client.

Methods

DisposeLink to this section

Declaration
public void Dispose()

GetResponseAsyncLink to this section

Declaration
public Task<Microsoft.Extensions.AI.ChatResponse> GetResponseAsync(IEnumerable<Microsoft.Extensions.AI.ChatMessage> messages, Microsoft.Extensions.AI.ChatOptions options, Threading.CancellationToken cancellationToken)
Parameters
Type Name Description
IEnumerable<Microsoft.Extensions.AI.ChatMessage> messages
Microsoft.Extensions.AI.ChatOptions options
Threading.CancellationToken cancellationToken
Returns
Type Description
Task<Microsoft.Extensions.AI.ChatResponse>

GetServiceLink to this section

Declaration
public object GetService(Type serviceType, object serviceKey)
Parameters
Type Name Description
Type serviceType
object serviceKey
Returns
Type Description
object

GetStreamingResponseAsyncLink to this section

Declaration
public IAsyncEnumerable<Microsoft.Extensions.AI.ChatResponseUpdate> GetStreamingResponseAsync(IEnumerable<Microsoft.Extensions.AI.ChatMessage> messages, Microsoft.Extensions.AI.ChatOptions options, Threading.CancellationToken cancellationToken)
Parameters
Type Name Description
IEnumerable<Microsoft.Extensions.AI.ChatMessage> messages
Microsoft.Extensions.AI.ChatOptions options
Threading.CancellationToken cancellationToken
Returns
Type Description
IAsyncEnumerable<Microsoft.Extensions.AI.ChatResponseUpdate>
An error has occurred. This app may no longer respond until reloaded. Reload 🗙