# AspireOpenAIExtensions Methods

- Package: [Aspire.OpenAI](/reference/api/csharp/aspire.openai.md)
- Type: [AspireOpenAIExtensions](/reference/api/csharp/aspire.openai/aspireopenaiextensions.md)
- Kind: `Methods`
- Members: `2`

Provides extension methods for registering `OpenAIClient` as a singleton in the services provided by the `Hosting.IHostApplicationBuilder`.

## AddKeyedOpenAIClient(IHostApplicationBuilder, string, Action<OpenAISettings>, Action<OpenAIClientOptions>)

- Name: `AddKeyedOpenAIClient(IHostApplicationBuilder, string, Action<OpenAISettings>, Action<OpenAIClientOptions>)`
- Modifiers: `extension`
- Returns: [AspireOpenAIClientBuilder](/reference/api/csharp/aspire.openai/aspireopenaiclientbuilder.md)
- Source: [GitHub](https://github.com/microsoft/aspire/blob/becb48e2d61099e35ae336d527d3875e928d6594/src/Components/Aspire.OpenAI/AspireOpenAIExtensions.cs#L52-L54)

Registers `OpenAIClient` as a singleton for given `name` in the services provided by the `builder`.

```csharp
public static class AspireOpenAIExtensions
{
    public static AspireOpenAIClientBuilder AddKeyedOpenAIClient(
        this IHostApplicationBuilder builder,
        string name,
        Action<OpenAISettings>? configureSettings = null,
        Action<OpenAIClientOptions>? configureOptions = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `name` (`string`)
  The name of the component, which is used as the `ServiceDescriptor.ServiceKey` of the service and also to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<OpenAISettings>`) `optional`
  An optional method that can be used for customizing the [OpenAISettings](/reference/api/csharp/aspire.openai/openaisettings.md). It's invoked after the settings are read from the configuration.
- `configureOptions` (`Action<OpenAIClientOptions>`) `optional`
  An optional method that can be used for customizing the `OpenAIClientOptions`.

## Returns

[AspireOpenAIClientBuilder](/reference/api/csharp/aspire.openai/aspireopenaiclientbuilder.md) -- An [AspireOpenAIClientBuilder](/reference/api/csharp/aspire.openai/aspireopenaiclientbuilder.md) that can be used to register additional services.

## Remarks

Reads the configuration from "Aspire.OpenAI:{name}" section.

## AddOpenAIClient(IHostApplicationBuilder, string, Action<OpenAISettings>, Action<OpenAIClientOptions>)

- Name: `AddOpenAIClient(IHostApplicationBuilder, string, Action<OpenAISettings>, Action<OpenAIClientOptions>)`
- Modifiers: `extension`
- Returns: [AspireOpenAIClientBuilder](/reference/api/csharp/aspire.openai/aspireopenaiclientbuilder.md)
- Source: [GitHub](https://github.com/microsoft/aspire/blob/becb48e2d61099e35ae336d527d3875e928d6594/src/Components/Aspire.OpenAI/AspireOpenAIExtensions.cs#L35)

Registers `OpenAIClient` as a singleton in the services provided by the `builder`.

```csharp
public static class AspireOpenAIExtensions
{
    public static AspireOpenAIClientBuilder AddOpenAIClient(
        this IHostApplicationBuilder builder,
        string connectionName,
        Action<OpenAISettings>? configureSettings = null,
        Action<OpenAIClientOptions>? configureOptions = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` (`IHostApplicationBuilder`)
  The `Hosting.IHostApplicationBuilder` to read config from and add services to.
- `connectionName` (`string`)
  A name used to retrieve the connection string from the ConnectionStrings configuration section.
- `configureSettings` (`Action<OpenAISettings>`) `optional`
  An optional method that can be used for customizing the [OpenAISettings](/reference/api/csharp/aspire.openai/openaisettings.md). It's invoked after the settings are read from the configuration.
- `configureOptions` (`Action<OpenAIClientOptions>`) `optional`
  An optional method that can be used for customizing the `OpenAIClientOptions`.

## Returns

[AspireOpenAIClientBuilder](/reference/api/csharp/aspire.openai/aspireopenaiclientbuilder.md) -- An [AspireOpenAIClientBuilder](/reference/api/csharp/aspire.openai/aspireopenaiclientbuilder.md) that can be used to register additional services.

## Remarks

Reads the configuration from "Aspire.OpenAI" section.
