7 implementations of IRealtimeClient
Microsoft.Extensions.AI.Abstractions (1)
Realtime\DelegatingRealtimeClient.cs (1)
21
public class DelegatingRealtimeClient :
IRealtimeClient
Microsoft.Extensions.AI.OpenAI (1)
OpenAIRealtimeClient.cs (1)
19
public sealed class OpenAIRealtimeClient :
IRealtimeClient
Microsoft.Extensions.AI.Tests (5)
Realtime\FunctionInvokingRealtimeClientTests.cs (1)
666
private sealed class TestRealtimeClient :
IRealtimeClient
Realtime\LoggingRealtimeClientTests.cs (1)
462
private sealed class TestRealtimeClient :
IRealtimeClient
Realtime\OpenTelemetryRealtimeClientTests.cs (1)
1106
private sealed class TestRealtimeClient :
IRealtimeClient
Realtime\RealtimeClientBuilderTests.cs (1)
143
private sealed class TestRealtimeClient :
IRealtimeClient
Realtime\RealtimeClientExtensionsTests.cs (1)
112
private sealed class TestRealtimeClient :
IRealtimeClient
92 references to IRealtimeClient
Microsoft.Extensions.AI (38)
Realtime\FunctionInvokingRealtimeClient.cs (2)
37
/// <param name="innerClient">The inner <see cref="
IRealtimeClient
"/>.</param>
40
public FunctionInvokingRealtimeClient(
IRealtimeClient
innerClient, ILoggerFactory? loggerFactory = null, IServiceProvider? functionInvocationServices = null)
Realtime\LoggingRealtimeClient.cs (2)
30
/// <param name="innerClient">The inner <see cref="
IRealtimeClient
"/>.</param>
32
public LoggingRealtimeClient(
IRealtimeClient
innerClient, ILogger logger)
Realtime\LoggingRealtimeClientBuilderExtensions.cs (1)
14
/// <summary>Provides extensions for configuring logging on an <see cref="
IRealtimeClient
"/> pipeline.</summary>
Realtime\OpenTelemetryRealtimeClient.cs (2)
31
/// <param name="innerClient">The inner <see cref="
IRealtimeClient
"/>.</param>
34
public OpenTelemetryRealtimeClient(
IRealtimeClient
innerClient, ILogger? logger = null, string? sourceName = null)
Realtime\OpenTelemetryRealtimeClientBuilderExtensions.cs (1)
13
/// <summary>Provides extensions for configuring OpenTelemetry on an <see cref="
IRealtimeClient
"/> pipeline.</summary>
Realtime\RealtimeClientBuilder.cs (18)
12
/// <summary>A builder for creating pipelines of <see cref="
IRealtimeClient
"/>.</summary>
16
private readonly Func<IServiceProvider,
IRealtimeClient
> _innerClientFactory;
19
private List<Func<
IRealtimeClient
, IServiceProvider,
IRealtimeClient
>>? _clientFactories;
22
/// <param name="innerClient">The inner <see cref="
IRealtimeClient
"/> that represents the underlying backend.</param>
24
public RealtimeClientBuilder(
IRealtimeClient
innerClient)
31
/// <param name="innerClientFactory">A callback that produces the inner <see cref="
IRealtimeClient
"/> that represents the underlying backend.</param>
32
public RealtimeClientBuilder(Func<IServiceProvider,
IRealtimeClient
> innerClientFactory)
37
/// <summary>Builds an <see cref="
IRealtimeClient
"/> that represents the entire pipeline. Calls to this instance will pass through each of the pipeline stages in turn.</summary>
39
/// The <see cref="IServiceProvider"/> that should provide services to the <see cref="
IRealtimeClient
"/> instances.
42
/// <returns>An instance of <see cref="
IRealtimeClient
"/> that represents the entire pipeline.</returns>
43
public
IRealtimeClient
Build(IServiceProvider? services = null)
46
var
client = _innerClientFactory(services);
58
$"Ensure that the callbacks passed to {nameof(Use)} return non-null {nameof(
IRealtimeClient
)} instances.");
70
public RealtimeClientBuilder Use(Func<
IRealtimeClient
,
IRealtimeClient
> clientFactory)
81
public RealtimeClientBuilder Use(Func<
IRealtimeClient
, IServiceProvider,
IRealtimeClient
> clientFactory)
Realtime\RealtimeClientBuilderRealtimeClientExtensions.cs (2)
11
/// <summary>Provides extension methods for working with <see cref="
IRealtimeClient
"/> in the context of <see cref="RealtimeClientBuilder"/>.</summary>
23
public static RealtimeClientBuilder AsBuilder(this
IRealtimeClient
innerClient)
Realtime\RealtimeClientExtensions.cs (10)
11
/// <summary>Provides a collection of static methods for extending <see cref="
IRealtimeClient
"/> instances.</summary>
15
/// <summary>Asks the <see cref="
IRealtimeClient
"/> for an object of type <typeparamref name="TService"/>.</summary>
22
/// The purpose of this method is to allow for the retrieval of strongly typed services that may be provided by the <see cref="
IRealtimeClient
"/>,
25
public static TService? GetService<TService>(this
IRealtimeClient
client, object? serviceKey = null)
33
/// Asks the <see cref="
IRealtimeClient
"/> for an object of the specified type <paramref name="serviceType"/>
44
/// The purpose of this method is to allow for the retrieval of services that are required to be provided by the <see cref="
IRealtimeClient
"/>,
47
public static object GetRequiredService(this
IRealtimeClient
client, Type serviceType, object? serviceKey = null)
58
/// Asks the <see cref="
IRealtimeClient
"/> for an object of type <typeparamref name="TService"/>
68
/// The purpose of this method is to allow for the retrieval of strongly typed services that are required to be provided by the <see cref="
IRealtimeClient
"/>,
71
public static TService GetRequiredService<TService>(this
IRealtimeClient
client, object? serviceKey = null)
Microsoft.Extensions.AI.Abstractions (7)
Realtime\DelegatingRealtimeClient.cs (5)
14
/// Provides an optional base class for an <see cref="
IRealtimeClient
"/> that passes through calls to another instance.
17
/// This is recommended as a base type when building clients that can be chained around an underlying <see cref="
IRealtimeClient
"/>.
28
protected DelegatingRealtimeClient(
IRealtimeClient
innerClient)
40
/// <summary>Gets the inner <see cref="
IRealtimeClient
" />.</summary>
41
protected
IRealtimeClient
InnerClient { get; }
Realtime\IRealtimeClient.cs (2)
23
/// <summary>Asks the <see cref="
IRealtimeClient
"/> for an object of the specified type <paramref name="serviceType"/>.</summary>
29
/// The purpose of this method is to allow for the retrieval of strongly typed services that might be provided by the <see cref="
IRealtimeClient
"/>,
Microsoft.Extensions.AI.OpenAI (2)
OpenAIRealtimeClient.cs (2)
17
/// <summary>Represents an <see cref="
IRealtimeClient
"/> for the OpenAI Realtime API.</summary>
79
object?
IRealtimeClient
.GetService(Type serviceType, object? serviceKey)
Microsoft.Extensions.AI.OpenAI.Tests (4)
OpenAIRealtimeClientTests.cs (4)
25
using
IRealtimeClient
client = new OpenAIRealtimeClient("key", "model");
28
Assert.Same(client, client.GetService(typeof(
IRealtimeClient
)));
36
using
IRealtimeClient
client = new OpenAIRealtimeClient("key", "model");
43
IRealtimeClient
client = new OpenAIRealtimeClient("key", "model");
Microsoft.Extensions.AI.Tests (41)
Realtime\FunctionInvokingRealtimeClientTests.cs (1)
577
using
var
pipeline = builder.Build();
Realtime\LoggingRealtimeClientTests.cs (15)
34
using
var
pipeline1 = c1.AsBuilder().UseLogging(NullLoggerFactory.Instance).Build();
41
using
var
pipeline2 = c2.AsBuilder().UseLogging(factory).Build();
49
using
var
pipeline3 = c3.AsBuilder().UseLogging().Build(services);
53
using
var
pipeline4 = c4.AsBuilder().UseLogging(null).Build(services);
57
using
var
pipeline5 = c5.AsBuilder().UseLogging(NullLoggerFactory.Instance).Build(services);
77
using
var
client = innerClient
122
using
var
client = innerClient
171
using
var
client = innerClient
222
using
var
client = innerClient
252
using
var
client = innerClient
289
using
var
client = innerClient
331
using
var
client = innerClient
359
using
var
client = innerClient
386
using
var
client = innerClient
417
using
var
client = innerClient
Realtime\OpenTelemetryRealtimeClientTests.cs (5)
223
using
var
client = innerClient
280
using
var
client = innerClient
328
using
var
client = innerClient
421
using
var
client = innerClient
1080
using
var
pipeline = builder.Build();
Realtime\RealtimeClientBuilderTests.cs (12)
19
Assert.Throws<ArgumentNullException>("innerClient", () => new RealtimeClientBuilder((
IRealtimeClient
)null!));
25
Assert.Throws<ArgumentNullException>("innerClientFactory", () => new RealtimeClientBuilder((Func<IServiceProvider,
IRealtimeClient
>)null!));
34
var
result = builder.Build();
44
var
result = builder.Build();
54
Assert.Throws<ArgumentNullException>("clientFactory", () => builder.Use((Func<
IRealtimeClient
,
IRealtimeClient
>)null!));
55
Assert.Throws<ArgumentNullException>("clientFactory", () => builder.Use((Func<
IRealtimeClient
, IServiceProvider,
IRealtimeClient
>)null!));
68
using
var
pipeline = builder.Build();
130
Assert.Throws<ArgumentNullException>("innerClient", () => ((
IRealtimeClient
)null!).AsBuilder());
161
public OrderTrackingClient(
IRealtimeClient
inner, string name, List<string> callOrder)
168
public
IRealtimeClient
GetInner() => InnerClient;
Realtime\RealtimeClientExtensionsTests.cs (8)
18
Assert.Throws<ArgumentNullException>("client", () => ((
IRealtimeClient
)null!).GetService<
IRealtimeClient
>());
49
var
result = client.GetService<
IRealtimeClient
>();
56
Assert.Throws<ArgumentNullException>("client", () => ((
IRealtimeClient
)null!).GetRequiredService(typeof(string)));
57
Assert.Throws<ArgumentNullException>("client", () => ((
IRealtimeClient
)null!).GetRequiredService<string>());
79
var
result = client.GetRequiredService<
IRealtimeClient
>();