Skip to content
Merged

7.4.6 #490

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
2 changes: 1 addition & 1 deletion OpenAI.Playground/TestHelpers/EmbeddingTestHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public static async Task RunSimpleEmbeddingTest(IOpenAIService sdk)
var embeddingResult = await sdk.Embeddings.CreateEmbedding(new EmbeddingCreateRequest
{
InputAsList = new List<string> {"The quick brown fox jumped over the lazy dog."},
Model = Models.TextSearchAdaDocV1
Model = Models.TextEmbeddingAdaV2
});

if (embeddingResult.Successful)
Expand Down
36 changes: 23 additions & 13 deletions OpenAI.SDK/ObjectModels/Models.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ public enum BaseModel
Babbage,
Curie,
Davinci,
Cushman
Cushman,
None
}

[SuppressMessage("ReSharper", "InconsistentNaming")]
Expand Down Expand Up @@ -232,12 +233,12 @@ public enum Subject
public static string CodeSearchBabbageTextV1 => ModelNameBuilder(BaseModel.Babbage, Subject.CodeSearchText, "001");

public static string TextEmbeddingAdaV2 => ModelNameBuilder(BaseModel.Ada, Subject.TextEmbedding, "002");
public static string TextEmbeddingV3Small => ModelNameBuilder(BaseModel.Ada, Subject.TextEmbedding, "3-small");
public static string TextEmbeddingV3Large => ModelNameBuilder(BaseModel.Ada, Subject.TextEmbedding, "3-large");
public static string TextEmbeddingV3Small => ModelNameBuilder(BaseModel.None, Subject.TextEmbedding, "3-small");
public static string TextEmbeddingV3Large => ModelNameBuilder(BaseModel.None, Subject.TextEmbedding, "3-large");

public static string TextModeration007 => ModelNameBuilder(BaseModel.Ada, Subject.TextModeration, "007");
public static string TextModerationLatest => ModelNameBuilder(BaseModel.Ada, Subject.TextModeration, "latest");
public static string TextModerationStable => ModelNameBuilder(BaseModel.Ada, Subject.TextModeration, "stable");
public static string TextModeration007 => ModelNameBuilder(BaseModel.None, Subject.TextModeration, "007");
public static string TextModerationLatest => ModelNameBuilder(BaseModel.None, Subject.TextModeration, "latest");
public static string TextModerationStable => ModelNameBuilder(BaseModel.None, Subject.TextModeration, "stable");
/// <summary>
/// Most capable GPT-3.5 model and optimized for chat at 1/10th the cost of text-davinci-003. Will be updated with our
/// latest model iteration.
Expand Down Expand Up @@ -335,10 +336,10 @@ public enum Subject
/// <returns></returns>
public static string ModelNameBuilder(this BaseModel baseModel, Subject? subject = null, string? version = null)
{
return ModelNameBuilder(baseModel.EnumToString(), subject?.EnumToString(baseModel.EnumToString()), version);
return ModelNameBuilder(baseModel == BaseModel.None ? null : baseModel.EnumToString(), subject?.EnumToString(baseModel.EnumToString()), version);
}

public static string ModelNameBuilder(string baseModel, string? subject, string? version)
public static string ModelNameBuilder(string? baseModel, string? subject, string? version)
{
var response = subject ?? $"{baseModel}";

Expand All @@ -350,7 +351,6 @@ public static string ModelNameBuilder(string baseModel, string? subject, string?
return response;
}


public static string EnumToString(this Model model)
{
return model switch
Expand Down Expand Up @@ -424,7 +424,7 @@ public static string EnumToString(this Model model)
};
}

private static string EnumToString(this BaseModel baseModel)
private static string? EnumToString(this BaseModel baseModel)
{
return baseModel switch
{
Expand All @@ -433,12 +433,23 @@ private static string EnumToString(this BaseModel baseModel)
BaseModel.Curie => Curie,
BaseModel.Davinci => Davinci,
BaseModel.Cushman => "cushman",
BaseModel.None => null,
_ => throw new ArgumentOutOfRangeException(nameof(baseModel), baseModel, null)
};
}

public static string EnumToString(this Subject subject, string baseModel)
public static string EnumToString(this Subject subject, string? baseModel)
{
if (baseModel == null)
{
// ReSharper disable once SwitchExpressionHandlesSomeKnownEnumValuesWithExceptionInDefault
return subject switch
{
Subject.TextEmbedding => "text-embedding",
Subject.TextModeration => "text-moderation",
_ => throw new ArgumentOutOfRangeException(nameof(subject), subject, null)
};
}
return string.Format(subject switch
{
//{0}-{1}
Expand All @@ -453,8 +464,7 @@ public static string EnumToString(this Subject subject, string baseModel)
Subject.Code => "code-{0}",
Subject.CodeEdit => "code-{0}-edit",
Subject.Edit => "text-{0}-edit",
Subject.TextEmbedding => "text-embedding",
Subject.TextModeration => "text-moderation-{0}",
Subject.TextEmbedding => "text-embedding-{0}",
_ => throw new ArgumentOutOfRangeException(nameof(subject), subject, null)
}, baseModel);
}
Expand Down
2 changes: 1 addition & 1 deletion OpenAI.SDK/OpenAI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<PackageIcon>OpenAI-Betalgo.png</PackageIcon>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Title>OpenAI SDK by Betalgo</Title>
<Version>7.4.5</Version>
<Version>7.4.6</Version>
<Authors>Tolga Kayhan, Betalgo</Authors>
<Company>Betalgo Up Ltd.</Company>
<Product>OpenAI ChatGPT, Whisper, GPT-4 and DALL·E dotnet SDK</Product>
Expand Down
2 changes: 2 additions & 0 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,8 @@ I am incredibly busy. If I forgot your name, please accept my apologies and let

## Changelog
### 7.4.5
- Fixed *again*🥲 incorrect Model Naming - `moderation` models and `ada embedding 2` model
### 7.4.5
- Fixed function calling streaming bugs thanks to @David-Buyer @dogdie233 @gavi @Maracaipe611
- Breaking Change:
While streaming (`CreateCompletionAsStream`), there were some unexpected incoming data chunks like `:pings` or `:events`, etc. @gavi discovered this issue. We are now ignoring these chunks. If you were using it, you need to set `justDataMode` to false.
Expand Down