Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ It is generated from our [OpenAPI specification](https://github.com/openai/opena
- [Advanced scenarios](#advanced-scenarios)
- [Using protocol methods](#using-protocol-methods)
- [Automatically retrying errors](#automatically-retrying-errors)
- [Observability](#observability)
- [Observability](#observability)

## Getting started

Expand Down Expand Up @@ -751,6 +751,6 @@ By default, the client classes will automatically retry the following errors up
- 503 Service Unavailable
- 504 Gateway Timeout

## Observability
### Observability

OpenAI .NET library supports experimental distributed tracing and metrics with OpenTelemetry. Check out [Observability with OpenTelemetry](./docs/observability.md) for more details.
15 changes: 15 additions & 0 deletions api/OpenAI.netstandard2.0.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1088,6 +1088,12 @@ public enum GeneratedSpeechVoice {
Nova = 4,
Shimmer = 5
}
public static class OpenAIAudioModelFactory {
public static AudioTranscription AudioTranscription(string language = null, TimeSpan? duration = null, string text = null, IEnumerable<TranscribedWord> words = null, IEnumerable<TranscribedSegment> segments = null);
public static AudioTranslation AudioTranslation(string language = null, TimeSpan? duration = null, string text = null, IEnumerable<TranscribedSegment> segments = null);
public static TranscribedSegment TranscribedSegment(int id = 0, long seekOffset = 0, TimeSpan start = default, TimeSpan end = default, string text = null, IEnumerable<long> tokenIds = null, float temperature = 0, double averageLogProbability = 0, float compressionRatio = 0, double noSpeechProbability = 0);
public static TranscribedWord TranscribedWord(string word = null, TimeSpan start = default, TimeSpan end = default);
}
public class SpeechGenerationOptions : IJsonModel<SpeechGenerationOptions>, IPersistableModel<SpeechGenerationOptions> {
public GeneratedSpeechFormat? ResponseFormat { get; set; }
public float? Speed { get; set; }
Expand Down Expand Up @@ -1593,6 +1599,11 @@ public class EmbeddingTokenUsage : IJsonModel<EmbeddingTokenUsage>, IPersistable
string IPersistableModel<EmbeddingTokenUsage>.GetFormatFromOptions(ModelReaderWriterOptions options);
BinaryData IPersistableModel<EmbeddingTokenUsage>.Write(ModelReaderWriterOptions options);
}
public static class OpenAIEmbeddingsModelFactory {
public static Embedding Embedding(int index = 0, IEnumerable<float> vector = null);
public static EmbeddingCollection EmbeddingCollection(IEnumerable<Embedding> items = null, string model = null, EmbeddingTokenUsage usage = null);
public static EmbeddingTokenUsage EmbeddingTokenUsage(int inputTokens = 0, int totalTokens = 0);
}
}
namespace OpenAI.Files {
public class FileClient {
Expand Down Expand Up @@ -1868,6 +1879,10 @@ public class ImageVariationOptions : IJsonModel<ImageVariationOptions>, IPersist
string IPersistableModel<ImageVariationOptions>.GetFormatFromOptions(ModelReaderWriterOptions options);
BinaryData IPersistableModel<ImageVariationOptions>.Write(ModelReaderWriterOptions options);
}
public static class OpenAIImagesModelFactory {
public static GeneratedImage GeneratedImage(BinaryData imageBytes = null, Uri imageUri = null, string revisedPrompt = null);
public static GeneratedImageCollection GeneratedImageCollection(DateTimeOffset createdAt = default, IEnumerable<GeneratedImage> items = null);
}
}
namespace OpenAI.Models {
public class ModelClient {
Expand Down
2 changes: 1 addition & 1 deletion tests/Assistants/AssistantTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public partial class AssistantTests
protected void Cleanup()
{
// Skip cleanup if there is no API key (e.g., if we are not running live tests).
if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("OPEN_API_KEY")))
if (string.IsNullOrEmpty(Environment.GetEnvironmentVariable("OPENAI_API_KEY")))
{
return;
}
Expand Down
4 changes: 2 additions & 2 deletions tests/Telemetry/TestActivityListener.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public void Dispose()
_listener.Dispose();
}

public static void ValidateChatActivity(Activity activity, ChatCompletion response, string requestModel = "gpt-3.5-turbo", string host = "api.openai.com", int port = 443)
public static void ValidateChatActivity(Activity activity, ChatCompletion response, string requestModel = "gpt-4o-mini", string host = "api.openai.com", int port = 443)
{
Assert.NotNull(activity);
Assert.AreEqual($"chat {requestModel}", activity.DisplayName);
Expand Down Expand Up @@ -64,7 +64,7 @@ public static void ValidateChatActivity(Activity activity, ChatCompletion respon
}
}

public static void ValidateChatActivity(Activity activity, Exception ex, string requestModel = "gpt-3.5-turbo", string host = "api.openai.com", int port = 443)
public static void ValidateChatActivity(Activity activity, Exception ex, string requestModel = "gpt-4o-mini", string host = "api.openai.com", int port = 443)
{
ValidateChatActivity(activity, (ChatCompletion)null, requestModel, host, port);
Assert.AreEqual(ex.GetType().FullName, activity.GetTagItem("error.type"));
Expand Down
4 changes: 2 additions & 2 deletions tests/Telemetry/TestMeterListener.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public void Dispose()
_listener.Dispose();
}

public static void ValidateChatMetricTags(TestMeasurement measurement, ChatCompletion response, string requestModel = "gpt-3.5-turbo", string host = "api.openai.com", int port = 443)
public static void ValidateChatMetricTags(TestMeasurement measurement, ChatCompletion response, string requestModel = "gpt-4o-mini", string host = "api.openai.com", int port = 443)
{
Assert.AreEqual("openai", measurement.tags["gen_ai.system"]);
Assert.AreEqual("chat", measurement.tags["gen_ai.operation.name"]);
Expand All @@ -75,7 +75,7 @@ public static void ValidateChatMetricTags(TestMeasurement measurement, ChatCompl
}
}

public static void ValidateChatMetricTags(TestMeasurement measurement, Exception ex, string requestModel = "gpt-3.5-turbo", string host = "api.openai.com", int port = 443)
public static void ValidateChatMetricTags(TestMeasurement measurement, Exception ex, string requestModel = "gpt-4o-mini", string host = "api.openai.com", int port = 443)
{
ValidateChatMetricTags(measurement, (ChatCompletion)null, requestModel, host, port);
Assert.True(measurement.tags.ContainsKey("error.type"));
Expand Down