# AspireOpenAIClientBuilderEmbeddingGeneratorExtensions Methods

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

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

## AddEmbeddingGenerator(AspireOpenAIClientBuilder, string?)

- Name: `AddEmbeddingGenerator(AspireOpenAIClientBuilder, string?)`
- Modifiers: `extension`
- Returns: `EmbeddingGeneratorBuilder<string, Embedding<float>>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/becb48e2d61099e35ae336d527d3875e928d6594/src/Components/Aspire.OpenAI/AspireOpenAIClientBuilderEmbeddingGeneratorExtensions.cs#L27-L30)

Registers a singleton `AI.IEmbeddingGenerator`2` in the services provided by the `builder`.

```csharp
public static class AspireOpenAIClientBuilderEmbeddingGeneratorExtensions
{
    public static EmbeddingGeneratorBuilder<string, Embedding<float>> AddEmbeddingGenerator(
        this AspireOpenAIClientBuilder builder,
        string? deploymentName = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` ([AspireOpenAIClientBuilder](/reference/api/csharp/aspire.openai/aspireopenaiclientbuilder.md))
  An [AspireOpenAIClientBuilder](/reference/api/csharp/aspire.openai/aspireopenaiclientbuilder.md).
- `deploymentName` (`string?`) `optional`
  Optionally specifies which model deployment to use. If not specified, a value will be taken from the connection string.

## Returns

`EmbeddingGeneratorBuilder<string, Embedding<float>>` -- A `AI.EmbeddingGeneratorBuilder`2` that can be used to build a pipeline around the inner `AI.IEmbeddingGenerator`2`.

## AddKeyedEmbeddingGenerator(AspireOpenAIClientBuilder, string, string?)

- Name: `AddKeyedEmbeddingGenerator(AspireOpenAIClientBuilder, string, string?)`
- Modifiers: `extension`
- Returns: `EmbeddingGeneratorBuilder<string, Embedding<float>>`
- Source: [GitHub](https://github.com/microsoft/aspire/blob/becb48e2d61099e35ae336d527d3875e928d6594/src/Components/Aspire.OpenAI/AspireOpenAIClientBuilderEmbeddingGeneratorExtensions.cs#L45-L50)

Registers a keyed singleton `AI.IEmbeddingGenerator`2` in the services provided by the `builder`.

```csharp
public static class AspireOpenAIClientBuilderEmbeddingGeneratorExtensions
{
    public static EmbeddingGeneratorBuilder<string, Embedding<float>> AddKeyedEmbeddingGenerator(
        this AspireOpenAIClientBuilder builder,
        string serviceKey,
        string? deploymentName = null)
    {
        // ...
    }
}
```

## Parameters

- `builder` ([AspireOpenAIClientBuilder](/reference/api/csharp/aspire.openai/aspireopenaiclientbuilder.md))
  An [AspireOpenAIClientBuilder](/reference/api/csharp/aspire.openai/aspireopenaiclientbuilder.md).
- `serviceKey` (`string`)
  The service key with which the `AI.IEmbeddingGenerator`2` will be registered.
- `deploymentName` (`string?`) `optional`
  Optionally specifies which model deployment to use. If not specified, a value will be taken from the connection string.

## Returns

`EmbeddingGeneratorBuilder<string, Embedding<float>>` -- A `AI.EmbeddingGeneratorBuilder`2` that can be used to build a pipeline around the inner `AI.IEmbeddingGenerator`2`.
