# OpenAILiveOptions

> Tracon documentation. Tracon is a .NET package family that adds a control
> plane on Microsoft Agent Framework, published as NuGet packages that run
> inside your own ASP.NET Core application.
>
> Page: https://tracon.dev/api/tracon.openailiveoptions/
> Summary: OpenAILiveOptions: Options of the OpenAI live voice provider.

<div class="api-provenance">Namespace Tracon · Assembly <code>Tracon.OpenAI.dll</code></div>

Options of the OpenAI live voice provider.

```csharp
public sealed class OpenAILiveOptions
```

<dl class="api-relations"><dt>Inheritance</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object">object</a> ← <a href="/api/tracon.openailiveoptions/">OpenAILiveOptions</a></dd><dt>Inherited Members</dt><dd><a href="https://learn.microsoft.com/dotnet/api/system.object.gettype">object.GetType()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.tostring">object.ToString()</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object)">object.Equals(object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object)">object.Equals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.referenceequals">object.ReferenceEquals(object?, object?)</a>, <a href="https://learn.microsoft.com/dotnet/api/system.object.gethashcode">object.GetHashCode()</a></dd></dl>

## Remarks

The type is **not** a `record`: option classes must not
produce a `ToString` that can be written to a log, and this one sits next to
an API key.

## Constructors

### <a id="Tracon_OpenAILiveOptions__ctor"></a> OpenAILiveOptions\(\)

```csharp
public OpenAILiveOptions()
```

## Fields

### <a id="Tracon_OpenAILiveOptions_ConservativeCharactersPerToken"></a> ConservativeCharactersPerToken

The characters-per-token ratio used to turn the provider's token limit into a
character ceiling.

```csharp
public const int ConservativeCharactersPerToken = 2
```

#### Field Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

#### Remarks

This is the **single** place the conversion is stated.
Tracon ships no tokenizer and must not take one on (AOT, and no new
package), so the limit is converted once and deliberately conservatively: a
Turkish sentence spends far fewer characters per token than an English one, and
a ratio tuned for English would have appends rejected in Turkish.

### <a id="Tracon_OpenAILiveOptions_ProviderAppendTokenLimit"></a> ProviderAppendTokenLimit

The per-append token limit the provider enforces, as measured against the
live API.

```csharp
public const int ProviderAppendTokenLimit = 500
```

#### Field Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

#### Remarks

Measured 2026-09-11: an oversized append answers
`"Context append text must not exceed 500 tokens."`

### <a id="Tracon_OpenAILiveOptions_SectionName"></a> SectionName

The default name of the configuration section.

```csharp
public const string SectionName = "Tracon:Providers:OpenAI:Live"
```

#### Field Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

## Properties

### <a id="Tracon_OpenAILiveOptions_Endpoint"></a> Endpoint

Gets or sets the API root. The default is `https://api.openai.com/v1/`.

```csharp
public Uri? Endpoint { get; set; }
```

#### Property Value

 Uri?

### <a id="Tracon_OpenAILiveOptions_MaxAppendCharacters"></a> MaxAppendCharacters

Gets or sets the per-append character ceiling. The default is derived from
[OpenAILiveOptions.ProviderAppendTokenLimit](/api/tracon.openailiveoptions/#Tracon_OpenAILiveOptions_ProviderAppendTokenLimit) and [OpenAILiveOptions.ConservativeCharactersPerToken](/api/tracon.openailiveoptions/#Tracon_OpenAILiveOptions_ConservativeCharactersPerToken).

```csharp
public int MaxAppendCharacters { get; set; }
```

#### Property Value

 [int](https://learn.microsoft.com/dotnet/api/system.int32)

### <a id="Tracon_OpenAILiveOptions_Model"></a> Model

Gets or sets the live model. The default is `gpt-live-1`.

```csharp
public string Model { get; set; }
```

#### Property Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)

### <a id="Tracon_OpenAILiveOptions_Timeout"></a> Timeout

Gets or sets the timeout of the session-creation call. The default is 30 seconds.

```csharp
public TimeSpan Timeout { get; set; }
```

#### Property Value

 [TimeSpan](https://learn.microsoft.com/dotnet/api/system.timespan)

#### Remarks

Must be from one millisecond to about 24.8 days ([Int32.MaxValue](https://learn.microsoft.com/dotnet/api/system.int32) milliseconds); any other value fails at startup.

### <a id="Tracon_OpenAILiveOptions_Voice"></a> Voice

Gets or sets the output voice; [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) leaves the provider's default.

```csharp
public string? Voice { get; set; }
```

#### Property Value

 [string](https://learn.microsoft.com/dotnet/api/system.string)?
