Skip to content

Commit 837b253

Browse files
committed
fix: Use RealtimeServerEvent for Realtime api.
1 parent 4ade9b9 commit 837b253

File tree

2 files changed

+27
-4
lines changed

2 files changed

+27
-4
lines changed

src/libs/OpenAI/RealtimeConversationClient.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ partial void Authorized(
1616
/// </summary>
1717
/// <param name="cancellationToken"></param>
1818
/// <returns></returns>
19-
public async IAsyncEnumerable<RealtimeServerEventBase> ReceiveUpdatesAsync(
19+
public async IAsyncEnumerable<RealtimeServerEvent> ReceiveUpdatesAsync(
2020
[EnumeratorCancellation] CancellationToken cancellationToken = default)
2121
{
2222
if (!IsConnected)
@@ -53,7 +53,7 @@ public async IAsyncEnumerable<RealtimeServerEventBase> ReceiveUpdatesAsync(
5353
if (result.MessageType == WebSocketMessageType.Text)
5454
{
5555
string json = global::System.Text.Encoding.UTF8.GetString(buffer, 0, result.Count);
56-
var @event = global::OpenAI.RealtimeServerEventBase.FromJson(json, JsonSerializerContext) ??
56+
var @event = global::OpenAI.RealtimeServerEvent.FromJson(json, JsonSerializerContext) ??
5757
throw new global::System.InvalidOperationException($"Response deserialization failed for \"{json}\" ");
5858

5959
yield return @event;

src/tests/OpenAI.IntegrationTests/Tests.Realtime.cs

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,32 @@ await realtimeConversationClient.SendAsync(new RealtimeResponseCreate
2121
}
2222
}.ToJson(realtimeConversationClient.JsonSerializerContext), cancellationToken);
2323

24-
await foreach (RealtimeServerEventBase receivedMessage in realtimeConversationClient.ReceiveUpdatesAsync(cancellationToken))
24+
await foreach (RealtimeServerEvent receivedMessage in realtimeConversationClient.ReceiveUpdatesAsync(cancellationToken))
2525
{
26-
Console.WriteLine(value: "Message received. Type:" + receivedMessage.Type);
26+
if (receivedMessage.IsSessionCreated)
27+
{
28+
Console.WriteLine($"Session created. ID: {receivedMessage.SessionCreated.EventId}");
29+
Console.WriteLine(receivedMessage.SessionCreated.Session?.ToJson(realtimeConversationClient.JsonSerializerContext));
30+
}
31+
else if (receivedMessage.IsResponseCreated)
32+
{
33+
Console.WriteLine($"Response created. ID: {receivedMessage.ResponseCreated.EventId}");
34+
Console.WriteLine(receivedMessage.ResponseCreated.Response?.ToJson(realtimeConversationClient.JsonSerializerContext));
35+
}
36+
else if (receivedMessage.IsRateLimitsUpdated)
37+
{
38+
Console.WriteLine($"Response updated. ID: {receivedMessage.RateLimitsUpdated.EventId}");
39+
Console.WriteLine(receivedMessage.RateLimitsUpdated.ToJson(realtimeConversationClient.JsonSerializerContext));
40+
}
41+
else if (receivedMessage.IsError)
42+
{
43+
Console.WriteLine($"Error. ID: {receivedMessage.Error.EventId}");
44+
Console.WriteLine(receivedMessage.Error.Error?.ToJson(realtimeConversationClient.JsonSerializerContext));
45+
}
46+
else
47+
{
48+
Console.WriteLine($"Unknown message: {receivedMessage.ToJson(realtimeConversationClient.JsonSerializerContext)}");
49+
}
2750
}
2851
}
2952
}

0 commit comments

Comments
 (0)