Skip to content

Commit 15638d4

Browse files
authored
Ensure explicit operators from ClientResult for AudioTranscription (#734)
1 parent 0dfb775 commit 15638d4

File tree

6 files changed

+9179
-9207
lines changed

6 files changed

+9179
-9207
lines changed

api/OpenAI.net8.0.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,6 +1157,8 @@ public class AudioTranscription : IJsonModel<AudioTranscription>, IPersistableMo
11571157
[Experimental("OPENAI001")]
11581158
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
11591159
[Experimental("OPENAI001")]
1160+
public static explicit operator AudioTranscription(ClientResult result);
1161+
[Experimental("OPENAI001")]
11601162
protected virtual AudioTranscription PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
11611163
[Experimental("OPENAI001")]
11621164
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
@@ -1213,6 +1215,8 @@ public class AudioTranslation : IJsonModel<AudioTranslation>, IPersistableModel<
12131215
[Experimental("OPENAI001")]
12141216
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
12151217
[Experimental("OPENAI001")]
1218+
public static explicit operator AudioTranslation(ClientResult result);
1219+
[Experimental("OPENAI001")]
12161220
protected virtual AudioTranslation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
12171221
[Experimental("OPENAI001")]
12181222
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
@@ -1342,6 +1346,7 @@ public class StreamingAudioTranscriptionTextDoneUpdate : StreamingAudioTranscrip
13421346
public class StreamingAudioTranscriptionUpdate : IJsonModel<StreamingAudioTranscriptionUpdate>, IPersistableModel<StreamingAudioTranscriptionUpdate> {
13431347
protected virtual StreamingAudioTranscriptionUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
13441348
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
1349+
public static explicit operator StreamingAudioTranscriptionUpdate(ClientResult result);
13451350
protected virtual StreamingAudioTranscriptionUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
13461351
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
13471352
}

api/OpenAI.netstandard2.0.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1051,6 +1051,7 @@ public class AudioTranscription : IJsonModel<AudioTranscription>, IPersistableMo
10511051
public IReadOnlyList<TranscribedWord> Words { get; }
10521052
protected virtual AudioTranscription JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
10531053
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
1054+
public static explicit operator AudioTranscription(ClientResult result);
10541055
protected virtual AudioTranscription PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
10551056
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
10561057
}
@@ -1097,6 +1098,7 @@ public class AudioTranslation : IJsonModel<AudioTranslation>, IPersistableModel<
10971098
public string Text { get; }
10981099
protected virtual AudioTranslation JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
10991100
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
1101+
public static explicit operator AudioTranslation(ClientResult result);
11001102
protected virtual AudioTranslation PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
11011103
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
11021104
}
@@ -1207,6 +1209,7 @@ public class StreamingAudioTranscriptionTextDoneUpdate : StreamingAudioTranscrip
12071209
public class StreamingAudioTranscriptionUpdate : IJsonModel<StreamingAudioTranscriptionUpdate>, IPersistableModel<StreamingAudioTranscriptionUpdate> {
12081210
protected virtual StreamingAudioTranscriptionUpdate JsonModelCreateCore(ref Utf8JsonReader reader, ModelReaderWriterOptions options);
12091211
protected virtual void JsonModelWriteCore(Utf8JsonWriter writer, ModelReaderWriterOptions options);
1212+
public static explicit operator StreamingAudioTranscriptionUpdate(ClientResult result);
12101213
protected virtual StreamingAudioTranscriptionUpdate PersistableModelCreateCore(BinaryData data, ModelReaderWriterOptions options);
12111214
protected virtual BinaryData PersistableModelWriteCore(ModelReaderWriterOptions options);
12121215
}

specification/base/typespec/audio/operations.tsp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,6 @@ interface Audio {
4040
| CreateTranscriptionResponseVerboseJson
4141
| CreateTranscriptionResponseJson
4242
| SseResponseOf<CreateTranscriptionResponseStreamEvent>
43-
| {
44-
// TODO: This response is not defined in the OpenAPI spec.
45-
@header contentType: "text/plain";
46-
47-
@body responseBody: string;
48-
}
4943
| ErrorResponse;
5044

5145
@route("translations")

src/Custom/Audio/AudioTranscription.Serialization.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using System;
2+
using System.ClientModel;
23
using System.ClientModel.Primitives;
34
using System.Collections.Generic;
5+
using System.Diagnostics.CodeAnalysis;
46
using System.Text.Json;
57

68
namespace OpenAI.Audio;
@@ -27,4 +29,12 @@ internal static AudioTranscription FromResponse(PipelineResponse response)
2729
using var document = JsonDocument.Parse(response.Content);
2830
return DeserializeAudioTranscription(document.RootElement, null);
2931
}
32+
33+
[Experimental("OPENAI001")]
34+
public static explicit operator AudioTranscription(ClientResult result)
35+
{
36+
using PipelineResponse response = result.GetRawResponse();
37+
using JsonDocument document = JsonDocument.Parse(response.Content);
38+
return DeserializeAudioTranscription(document.RootElement, ModelSerializationExtensions.WireOptions);
39+
}
3040
}

src/Generated/OpenAIModelFactory.cs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,6 +1241,23 @@ public static ItemRetrievedUpdate ItemRetrievedUpdate(string eventId = default,
12411241
return new ItemRetrievedUpdate(RealtimeUpdateKind.ItemRetrieved, eventId, additionalBinaryDataProperties: null, item);
12421242
}
12431243

1244+
public static AudioTranscription AudioTranscription(string task = default, string language = default, TimeSpan? duration = default, string text = default, IEnumerable<TranscribedWord> words = default, IEnumerable<TranscribedSegment> segments = default, IEnumerable<AudioTokenLogProbabilityDetails> transcriptionTokenLogProbabilities = default)
1245+
{
1246+
words ??= new ChangeTrackingList<TranscribedWord>();
1247+
segments ??= new ChangeTrackingList<TranscribedSegment>();
1248+
transcriptionTokenLogProbabilities ??= new ChangeTrackingList<AudioTokenLogProbabilityDetails>();
1249+
1250+
return new AudioTranscription(
1251+
task,
1252+
language,
1253+
duration,
1254+
text,
1255+
words.ToList(),
1256+
segments.ToList(),
1257+
transcriptionTokenLogProbabilities.ToList(),
1258+
additionalBinaryDataProperties: null);
1259+
}
1260+
12441261
public static ChatFunctionChoice ChatFunctionChoice(string predefinedFunctionChoice = default)
12451262
{
12461263
return new ChatFunctionChoice(predefinedFunctionChoice);
@@ -1271,23 +1288,6 @@ public static RunStepCollectionOptions RunStepCollectionOptions(string afterId =
12711288
return new RunStepCollectionOptions(afterId, beforeId, pageSizeLimit, order, additionalBinaryDataProperties: null);
12721289
}
12731290

1274-
public static AudioTranscription AudioTranscription(string task = default, string language = default, TimeSpan? duration = default, string text = default, IEnumerable<TranscribedWord> words = default, IEnumerable<TranscribedSegment> segments = default, IEnumerable<AudioTokenLogProbabilityDetails> transcriptionTokenLogProbabilities = default)
1275-
{
1276-
words ??= new ChangeTrackingList<TranscribedWord>();
1277-
segments ??= new ChangeTrackingList<TranscribedSegment>();
1278-
transcriptionTokenLogProbabilities ??= new ChangeTrackingList<AudioTokenLogProbabilityDetails>();
1279-
1280-
return new AudioTranscription(
1281-
task,
1282-
language,
1283-
duration,
1284-
text,
1285-
words.ToList(),
1286-
segments.ToList(),
1287-
transcriptionTokenLogProbabilities.ToList(),
1288-
additionalBinaryDataProperties: null);
1289-
}
1290-
12911291
public static ChatCompletionCollectionOptions ChatCompletionCollectionOptions(string afterId = default, int? pageSizeLimit = default, ChatCompletionCollectionOrder? order = default, IDictionary<string, string> metadata = default, string model = default)
12921292
{
12931293
metadata ??= new ChangeTrackingDictionary<string, string>();

0 commit comments

Comments
 (0)