# AspireOllamaChatClientExtensions Methods

- Package: [CommunityToolkit.Aspire.OllamaSharp](/reference/api/csharp/communitytoolkit.aspire.ollamasharp.md)
- Type: [AspireOllamaChatClientExtensions](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamachatclientextensions.md)
- Kind: `Methods`
- Members: `6`

Extension methos for configuring the `AI.IChatClient` from an `OllamaApiClient`

## AddChatClient(AspireOllamaApiClientBuilder)

- Name: `AddChatClient(AspireOllamaApiClientBuilder)`
- Modifiers: `extension`
- Returns: `ChatClientBuilder`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.OllamaSharp/AspireOllamaChatClientExtensions.cs#L23-L25)

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

```csharp
public static class AspireOllamaChatClientExtensions
{
    public static ChatClientBuilder AddChatClient(
        this AspireOllamaApiClientBuilder builder)
    {
        // ...
    }
}
```

## Parameters

- `builder` ([AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md))
  An [AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md).

## Returns

`ChatClientBuilder` -- A `AI.ChatClientBuilder` that can be used to build a pipeline around the inner `AI.IChatClient`.

## AddChatClient(AspireOllamaApiClientBuilder, Action<OpenTelemetryChatClient>)

- Name: `AddChatClient(AspireOllamaApiClientBuilder, Action<OpenTelemetryChatClient>)`
- Modifiers: `extension`
- Returns: `ChatClientBuilder`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.OllamaSharp/AspireOllamaChatClientExtensions.cs#L38-L43)

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

```csharp
public static class AspireOllamaChatClientExtensions
{
    public static ChatClientBuilder AddChatClient(
        this AspireOllamaApiClientBuilder builder,
        Action<OpenTelemetryChatClient>? configureOpenTelemetry)
    {
        // ...
    }
}
```

## Parameters

- `builder` ([AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md))
  An [AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md).
- `configureOpenTelemetry` (`Action<OpenTelemetryChatClient>`)
  An optional delegate that can be used for customizing the OpenTelemetry chat client.

## Returns

`ChatClientBuilder` -- A `AI.ChatClientBuilder` that can be used to build a pipeline around the inner `AI.IChatClient`.

## AddKeyedChatClient(AspireOllamaApiClientBuilder)

- Name: `AddKeyedChatClient(AspireOllamaApiClientBuilder)`
- Modifiers: `extension`
- Returns: `ChatClientBuilder`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.OllamaSharp/AspireOllamaChatClientExtensions.cs#L54-L56)

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

```csharp
public static class AspireOllamaChatClientExtensions
{
    public static ChatClientBuilder AddKeyedChatClient(
        this AspireOllamaApiClientBuilder builder)
    {
        // ...
    }
}
```

## Parameters

- `builder` ([AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md))
  An [AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md).

## Returns

`ChatClientBuilder` -- A `AI.ChatClientBuilder` that can be used to build a pipeline around the inner `AI.IChatClient`.

## AddKeyedChatClient(AspireOllamaApiClientBuilder, Action<OpenTelemetryChatClient>)

- Name: `AddKeyedChatClient(AspireOllamaApiClientBuilder, Action<OpenTelemetryChatClient>)`
- Modifiers: `extension`
- Returns: `ChatClientBuilder`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.OllamaSharp/AspireOllamaChatClientExtensions.cs#L69-L71)

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

```csharp
public static class AspireOllamaChatClientExtensions
{
    public static ChatClientBuilder AddKeyedChatClient(
        this AspireOllamaApiClientBuilder builder,
        Action<OpenTelemetryChatClient>? configureOpenTelemetry)
    {
        // ...
    }
}
```

## Parameters

- `builder` ([AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md))
  An [AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md).
- `configureOpenTelemetry` (`Action<OpenTelemetryChatClient>`)
  An optional delegate that can be used for customizing the OpenTelemetry chat client.

## Returns

`ChatClientBuilder` -- A `AI.ChatClientBuilder` that can be used to build a pipeline around the inner `AI.IChatClient`.

## AddKeyedChatClient(AspireOllamaApiClientBuilder, object)

- Name: `AddKeyedChatClient(AspireOllamaApiClientBuilder, object)`
- Modifiers: `extension`
- Returns: `ChatClientBuilder`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.OllamaSharp/AspireOllamaChatClientExtensions.cs#L84-L87)

Registers a keyed singleton `AI.IChatClient` in the services provided by the `builder` using the specified service key.

```csharp
public static class AspireOllamaChatClientExtensions
{
    public static ChatClientBuilder AddKeyedChatClient(
        this AspireOllamaApiClientBuilder builder,
        object serviceKey)
    {
        // ...
    }
}
```

## Parameters

- `builder` ([AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md))
  An [AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md).
- `serviceKey` (`object`)
  The service key to use for registering the `AI.IChatClient`.

## Returns

`ChatClientBuilder` -- A `AI.ChatClientBuilder` that can be used to build a pipeline around the inner `AI.IChatClient`.

## AddKeyedChatClient(AspireOllamaApiClientBuilder, object, Action<OpenTelemetryChatClient>)

- Name: `AddKeyedChatClient(AspireOllamaApiClientBuilder, object, Action<OpenTelemetryChatClient>)`
- Modifiers: `extension`
- Returns: `ChatClientBuilder`
- Source: [GitHub](https://github.com/CommunityToolkit/Aspire/blob/d9dc6fc02412d7398c5722840513d99965a6e98f/src/CommunityToolkit.Aspire.OllamaSharp/AspireOllamaChatClientExtensions.cs#L102-L109)

Registers a keyed singleton `AI.IChatClient` in the services provided by the `builder` using the specified service key.

```csharp
public static class AspireOllamaChatClientExtensions
{
    public static ChatClientBuilder AddKeyedChatClient(
        this AspireOllamaApiClientBuilder builder,
        object serviceKey,
        Action<OpenTelemetryChatClient>? configureOpenTelemetry)
    {
        // ...
    }
}
```

## Parameters

- `builder` ([AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md))
  An [AspireOllamaApiClientBuilder](/reference/api/csharp/communitytoolkit.aspire.ollamasharp/aspireollamaapiclientbuilder.md).
- `serviceKey` (`object`)
  The service key to use for registering the `AI.IChatClient`.
- `configureOpenTelemetry` (`Action<OpenTelemetryChatClient>`)
  An optional delegate that can be used for customizing the OpenTelemetry chat client.

## Returns

`ChatClientBuilder` -- A `AI.ChatClientBuilder` that can be used to build a pipeline around the inner `AI.IChatClient`.
