6 implementations of IRealtimeClientSession
Microsoft.Extensions.AI (3)
Realtime\FunctionInvokingRealtimeClientSession.cs (1)
55internal sealed class FunctionInvokingRealtimeClientSession : IRealtimeClientSession
Realtime\LoggingRealtimeClientSession.cs (1)
29internal sealed partial class LoggingRealtimeClientSession : IRealtimeClientSession
Realtime\OpenTelemetryRealtimeClientSession.cs (1)
83internal sealed partial class OpenTelemetryRealtimeClientSession : IRealtimeClientSession
Microsoft.Extensions.AI.Abstractions.Tests (1)
TestRealtimeClientSession.cs (1)
12public sealed class TestRealtimeClientSession : IRealtimeClientSession
Microsoft.Extensions.AI.OpenAI (1)
OpenAIRealtimeClientSession.cs (1)
27public sealed class OpenAIRealtimeClientSession : IRealtimeClientSession
Microsoft.Extensions.AI.Tests (1)
parent\Microsoft.Extensions.AI.Abstractions.Tests\TestRealtimeClientSession.cs (1)
12public sealed class TestRealtimeClientSession : IRealtimeClientSession
122 references to IRealtimeClientSession
Microsoft.Extensions.AI (29)
Realtime\FunctionInvokingRealtimeClient.cs (4)
22/// <see cref="IRealtimeClientSession"/>, they respond by invoking the corresponding <see cref="AIFunction"/> defined 57/// in the response when calling the underlying <see cref="IRealtimeClientSession"/>. 125public override async Task<IRealtimeClientSession> CreateSessionAsync( 128var innerSession = await base.CreateSessionAsync(options, cancellationToken).ConfigureAwait(false);
Realtime\FunctionInvokingRealtimeClientSession.cs (4)
30/// <see cref="IRealtimeClientSession"/>, it responds by invoking the corresponding <see cref="AIFunction"/> defined 71private readonly IRealtimeClientSession _innerSession; 79/// <param name="innerSession">The underlying <see cref="IRealtimeClientSession"/>, or the next instance in a chain of sessions.</param> 83public FunctionInvokingRealtimeClientSession(IRealtimeClientSession innerSession, FunctionInvokingRealtimeClient client, ILoggerFactory? loggerFactory = null, IServiceProvider? functionInvocationServices = null)
Realtime\LoggingRealtimeClient.cs (2)
47public override async Task<IRealtimeClientSession> CreateSessionAsync( 50var innerSession = await base.CreateSessionAsync(options, cancellationToken).ConfigureAwait(false);
Realtime\LoggingRealtimeClientSession.cs (4)
19/// The provided implementation of <see cref="IRealtimeClientSession"/> is thread-safe for concurrent use so long as the 35private readonly IRealtimeClientSession _innerSession; 41/// <param name="innerSession">The underlying <see cref="IRealtimeClientSession"/>.</param> 43public LoggingRealtimeClientSession(IRealtimeClientSession innerSession, ILogger logger)
Realtime\OpenTelemetryRealtimeClient.cs (2)
61public override async Task<IRealtimeClientSession> CreateSessionAsync( 64var innerSession = await base.CreateSessionAsync(options, cancellationToken).ConfigureAwait(false);
Realtime\OpenTelemetryRealtimeClientSession.cs (3)
96private readonly IRealtimeClientSession _innerSession; 102/// <param name="innerSession">The underlying <see cref="IRealtimeClientSession"/>.</param> 105public OpenTelemetryRealtimeClientSession(IRealtimeClientSession innerSession, ILogger? logger = null, string? sourceName = null)
Realtime\RealtimeClientSessionExtensions.cs (10)
11/// <summary>Provides a collection of static methods for extending <see cref="IRealtimeClientSession"/> instances.</summary> 15/// <summary>Asks the <see cref="IRealtimeClientSession"/> 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="IRealtimeClientSession"/>, 25public static TService? GetService<TService>(this IRealtimeClientSession session, object? serviceKey = null) 33/// Asks the <see cref="IRealtimeClientSession"/> 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="IRealtimeClientSession"/>, 47public static object GetRequiredService(this IRealtimeClientSession session, Type serviceType, object? serviceKey = null) 58/// Asks the <see cref="IRealtimeClientSession"/> 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="IRealtimeClientSession"/>, 71public static TService GetRequiredService<TService>(this IRealtimeClientSession session, object? serviceKey = null)
Microsoft.Extensions.AI.Abstractions (8)
Realtime\DelegatingRealtimeClient.cs (1)
44public virtual Task<IRealtimeClientSession> CreateSessionAsync(
Realtime\IRealtimeClient.cs (1)
21Task<IRealtimeClientSession> CreateSessionAsync(RealtimeSessionOptions? options = null, CancellationToken cancellationToken = default);
Realtime\IRealtimeClientSession.cs (2)
53/// <summary>Asks the <see cref="IRealtimeClientSession"/> for an object of the specified type <paramref name="serviceType"/>.</summary> 59/// The purpose of this method is to allow for the retrieval of strongly typed services that might be provided by the <see cref="IRealtimeClientSession"/>,
Realtime\RealtimeSessionOptions.cs (3)
90/// The underlying <see cref="IRealtimeClientSession" /> implementation might have its own representation of options. 93/// performing the operation. For situations where a consumer knows which concrete <see cref="IRealtimeClientSession" /> 95/// returned by this callback for the <see cref="IRealtimeClientSession" /> implementation to use, instead of creating a
Realtime\SessionUpdateRealtimeClientMessage.cs (1)
21/// When a provider processes this message, it should update its <see cref="IRealtimeClientSession.Options"/>
Microsoft.Extensions.AI.OpenAI (3)
OpenAIRealtimeClient.cs (1)
55public async Task<IRealtimeClientSession> CreateSessionAsync(RealtimeSessionOptions? options = null, CancellationToken cancellationToken = default)
OpenAIRealtimeClientSession.cs (2)
25/// <summary>Represents an <see cref="IRealtimeClientSession"/> for the OpenAI Realtime API over WebSocket.</summary> 177object? IRealtimeClientSession.GetService(Type serviceType, object? serviceKey)
Microsoft.Extensions.AI.OpenAI.Tests (4)
OpenAIRealtimeClientSessionTests.cs (4)
18await using IRealtimeClientSession session = new OpenAIRealtimeClientSession("key", "model"); 21Assert.Same(session, session.GetService(typeof(IRealtimeClientSession))); 29await using IRealtimeClientSession session = new OpenAIRealtimeClientSession("key", "model"); 36IRealtimeClientSession session = new OpenAIRealtimeClientSession("key", "model");
Microsoft.Extensions.AI.Tests (78)
Realtime\FunctionInvokingRealtimeClientTests.cs (20)
75await using var session = await client.CreateSessionAsync(); 112await using var session = await client.CreateSessionAsync(); 162await using var session = await client.CreateSessionAsync(); 200await using var session = await client.CreateSessionAsync(); 240await using var session = await client.CreateSessionAsync(); 268await using var session = await client.CreateSessionAsync(); 307await using var session = await client.CreateSessionAsync(); 345await using var session = await client.CreateSessionAsync(); 363await using var session = await client.CreateSessionAsync(); 366Assert.Same(session, session.GetService(typeof(IRealtimeClientSession))); 390await using var session = await client.CreateSessionAsync(); 424await using var session = await client.CreateSessionAsync(); 501await using var session = await client.CreateSessionAsync(); 543await using var session = await client.CreateSessionAsync(); 580await using var session = await pipeline.CreateSessionAsync(); 613await using var session = await client.CreateSessionAsync(); 632private static FunctionInvokingRealtimeClient CreateClient(IRealtimeClientSession? session = null) 668private readonly IRealtimeClientSession _session; 670public TestRealtimeClient(IRealtimeClientSession session) 675public Task<IRealtimeClientSession> CreateSessionAsync(RealtimeSessionOptions? options = null, CancellationToken cancellationToken = default)
Realtime\LoggingRealtimeClientTests.cs (20)
35await using var s1 = await pipeline1.CreateSessionAsync(); 37Assert.Same(innerSession, s1.GetService(typeof(IRealtimeClientSession))); 42await using var s2 = await pipeline2.CreateSessionAsync(); 50await using var s3 = await pipeline3.CreateSessionAsync(); 54await using var s4 = await pipeline4.CreateSessionAsync(); 58await using var s5 = await pipeline5.CreateSessionAsync(); 81await using var session = await client.CreateSessionAsync(); 126await using var session = await client.CreateSessionAsync(); 175await using var session = await client.CreateSessionAsync(); 226await using var session = await client.CreateSessionAsync(); 256await using var session = await client.CreateSessionAsync(); 293await using var session = await client.CreateSessionAsync(); 335await using var session = await client.CreateSessionAsync(); 363await using var session = await client.CreateSessionAsync(); 366Assert.Same(session, session.GetService(typeof(IRealtimeClientSession))); 390await using var session = await client.CreateSessionAsync(); 421await using var session = await client.CreateSessionAsync(); 464private readonly IRealtimeClientSession _session; 466public TestRealtimeClient(IRealtimeClientSession session) 471public Task<IRealtimeClientSession> CreateSessionAsync(RealtimeSessionOptions? options = null, CancellationToken cancellationToken = default)
Realtime\OpenTelemetryRealtimeClientTests.cs (25)
84await using var session = await client.CreateSessionAsync(); 227await using var session = await client.CreateSessionAsync(); 284await using var session = await client.CreateSessionAsync(); 332await using var session = await client.CreateSessionAsync(); 368await using var session = await client.CreateSessionAsync(); 384await using var session = await client.CreateSessionAsync(); 385Assert.Same(session, session.GetService(typeof(IRealtimeClientSession))); 425await using var session = await client.CreateSessionAsync(); 462await using var session = await client.CreateSessionAsync(); 505await using var session = await client.CreateSessionAsync(); 548await using var session = await client.CreateSessionAsync(); 633await using var session = await client.CreateSessionAsync(); 676await using var session = await client.CreateSessionAsync(); 719await using var session = await client.CreateSessionAsync(); 761await using var session = await client.CreateSessionAsync(); 803await using var session = await client.CreateSessionAsync(); 844await using var session = await client.CreateSessionAsync(); 885await using var session = await client.CreateSessionAsync(); 926await using var session = await client.CreateSessionAsync(); 967await using var session = await client.CreateSessionAsync(); 1081await using var session = await pipeline.CreateSessionAsync(); 1097var session = await client.CreateSessionAsync(); 1108private readonly IRealtimeClientSession _session; 1110public TestRealtimeClient(IRealtimeClientSession session) 1115public Task<IRealtimeClientSession> CreateSessionAsync(RealtimeSessionOptions? options = null, CancellationToken cancellationToken = default)
Realtime\RealtimeClientBuilderTests.cs (3)
145public Task<IRealtimeClientSession> CreateSessionAsync(RealtimeSessionOptions? options = null, CancellationToken cancellationToken = default) 146=> Task.FromResult<IRealtimeClientSession>(new TestRealtimeClientSession()); 170public override async Task<IRealtimeClientSession> CreateSessionAsync(
Realtime\RealtimeClientExtensionsTests.cs (2)
114public Task<IRealtimeClientSession> CreateSessionAsync(RealtimeSessionOptions? options = null, CancellationToken cancellationToken = default) 115=> Task.FromResult<IRealtimeClientSession>(new TestRealtimeClientSession());
Realtime\RealtimeClientSessionExtensionsTests.cs (8)
17Assert.Throws<ArgumentNullException>("session", () => ((IRealtimeClientSession)null!).GetService<IRealtimeClientSession>()); 48var result = session.GetService<IRealtimeClientSession>(); 55Assert.Throws<ArgumentNullException>("session", () => ((IRealtimeClientSession)null!).GetRequiredService(typeof(string))); 56Assert.Throws<ArgumentNullException>("session", () => ((IRealtimeClientSession)null!).GetRequiredService<string>()); 78var result = session.GetRequiredService<IRealtimeClientSession>();