Skip to content

Commit 5b767cd

Browse files
committed
fix: Fixed some AnyOf property names.
1 parent cf5d547 commit 5b767cd

6 files changed

Lines changed: 220 additions & 242 deletions

src/libs/OpenAI/Conversions/ChatCompletionRequestUserMessageContentPart.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ public override string ToString()
77
{
88
return IsText
99
? Text?.Text ?? string.Empty
10-
: IsImage
11-
? Image?.ImageUrl.Url ?? string.Empty
10+
: IsImageUrl
11+
? ImageUrl?.ImageUrl.Url ?? string.Empty
1212
: string.Empty;
1313
}
1414

src/tests/OpenAI.IntegrationTests/Examples/Examples.Assistants.AllTools.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ ListMessagesResponse messages
106106
Console.WriteLine($"[{message.Role.ToString().ToUpper()}]: ");
107107
foreach (ContentItem2 contentItem in message.Content)
108108
{
109-
if (contentItem.MessageImageFileObject is {} imageFile)
109+
if (contentItem.ImageFile is {} imageFile)
110110
{
111111
OpenAIFile imageInfo = await api.Files.RetrieveFileAsync(imageFile.ImageFile.FileId);
112112
byte[] imageBytes = await api.Files.DownloadFileAsync(imageFile.ImageFile.FileId);
@@ -117,11 +117,11 @@ ListMessagesResponse messages
117117

118118
Console.WriteLine($"<image: {new Uri(fileInfo.FullName).AbsoluteUri}>");
119119
}
120-
if (contentItem.MessageImageUrlObject is {} imageUrl)
120+
if (contentItem.ImageUrl is {} imageUrl)
121121
{
122122
Console.WriteLine($" <Image URL> {imageUrl.ImageUrl.Url}");
123123
}
124-
if (contentItem.MessageTextObject is {} text)
124+
if (contentItem.Text is {} text)
125125
{
126126
Console.WriteLine($"{text.Text.Value}");
127127

@@ -131,13 +131,13 @@ ListMessagesResponse messages
131131
Console.WriteLine();
132132
foreach (AnnotationsItem annotation in text.Text.Annotations)
133133
{
134-
if (annotation.MessageContentTextFileCitationObject is {} fileCitation)
134+
if (annotation.FileCitation is {} fileCitation)
135135
{
136136
Console.WriteLine($"* File citation, file ID: {fileCitation.FileCitation.FileId}");
137137
Console.WriteLine($"* Text to replace: {fileCitation.Text}");
138138
Console.WriteLine($"* Message content index range: {fileCitation.StartIndex}-{fileCitation.EndIndex}");
139139
}
140-
if (annotation.MessageContentTextFilePathObject is {} filePath)
140+
if (annotation.FilePath is {} filePath)
141141
{
142142
Console.WriteLine($"* File output, new file ID: {filePath.FilePath.FileId}");
143143
Console.WriteLine($"* Text to replace: {filePath.Text}");
@@ -146,7 +146,7 @@ ListMessagesResponse messages
146146
}
147147
}
148148
}
149-
if (contentItem.MessageRefusalObject is {} refusal)
149+
if (contentItem.Refusal is {} refusal)
150150
{
151151
Console.WriteLine($"Refusal: {refusal.Refusal}");
152152
}
@@ -165,7 +165,7 @@ ListMessagesResponse messages
165165
Console.WriteLine($"Run step: {step.Status}");
166166
foreach (var toolCall in step.StepDetails.ToolCalls?.ToolCalls ?? [])
167167
{
168-
if (toolCall.RunStepDetailsCodeObject is {} codeInterpreter)
168+
if (toolCall.CodeInterpreter is {} codeInterpreter)
169169
{
170170
Console.WriteLine($" --> Tool call: {codeInterpreter.Type}");
171171
foreach (var output in codeInterpreter.CodeInterpreter.Outputs)
@@ -180,15 +180,15 @@ ListMessagesResponse messages
180180
}
181181
}
182182
}
183-
if (toolCall.RunStepDetailsFileSearchObject is {} fileSearch)
183+
if (toolCall.FileSearch is {} fileSearch)
184184
{
185185
Console.WriteLine($" --> Tool call: {fileSearch.Type}");
186186
foreach (var output in fileSearch.FileSearch.Results ?? [])
187187
{
188188
Console.WriteLine($" --> Output: {output.FileId}");
189189
}
190190
}
191-
if (toolCall.RunStepDetailsFunctionObject is {} tool)
191+
if (toolCall.Function is {} tool)
192192
{
193193
Console.WriteLine($" --> Tool call: {tool.Type}");
194194
}
Lines changed: 95 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,95 @@
1-
// using System.Diagnostics.CodeAnalysis;
2-
//
3-
// namespace OpenAI.IntegrationTests.Examples;
4-
//
5-
// public partial class Examples
6-
// {
7-
// [Test]
8-
// [Explicit]
9-
// [Experimental("OPENAI_BETA_001")]
10-
// public async Task AssistantsWithVision()
11-
// {
12-
// using var api = GetAuthenticatedClient();
13-
//
14-
// ImagesResponse appleImage = await api.Images.CreateImageAsync(
15-
// prompt: "picture of apple",
16-
// responseFormat: CreateImageRequestResponseFormat.B64Json);
17-
// byte[] appleBytes = appleImage.Data[0].Bytes;
18-
//
19-
// FileInfo appleFileInfo = new($"{Guid.NewGuid()}.png");
20-
//
21-
// await File.WriteAllBytesAsync(appleFileInfo.FullName, appleBytes);
22-
//
23-
// Console.WriteLine($"Apple image available at:\n{new Uri(appleFileInfo.FullName).AbsoluteUri}");
24-
//
25-
// Console.WriteLine($"Orange image available at:\n{new Uri("https://raw.githubusercontent.com/tryAGI/OpenAI/d237b700b03fe9913a6ff53fa623041e87705f2f/assets/orange.png")}");
26-
//
27-
// OpenAIFile pictureOfAppleFile = await api.Files.CreateFileAsync(
28-
// file: appleBytes,
29-
// filename: appleFileInfo.Name,
30-
// purpose: CreateFileRequestPurpose.Vision);
31-
//
32-
// AssistantObject assistant = await api.Assistants.CreateAssistantAsync(
33-
// model: CreateAssistantRequestModel.Gpt4o,
34-
// instructions: "When asked a question, attempt to answer very concisely. " +
35-
// "Prefer one-sentence answers whenever feasible.");
36-
//
37-
// ThreadObject thread = await api.Assistants.CreateThreadAsync(new CreateThreadRequest
38-
// {
39-
// Messages = [
40-
// "Hello, assistant! Please compare these two images for me:",
41-
// pictureOfAppleFile,
42-
// new Uri("https://raw.githubusercontent.com/tryAGI/OpenAI/d237b700b03fe9913a6ff53fa623041e87705f2f/assets/orange.png"),
43-
// ]
44-
// });
45-
//
46-
// var streamingUpdates = api.Assistants.CreateRunAsStreamAsync(
47-
// threadId: thread.Id,
48-
// assistantId: assistant.Id,
49-
// instructions: "When possible, try to sneak in puns if you're asked to compare things.");
50-
//
51-
// await foreach (AssistantStreamEvent streamingUpdate in streamingUpdates)
52-
// {
53-
// if (streamingUpdate.Error is {} error)
54-
// {
55-
// Console.WriteLine("--- Error ---");
56-
// Console.WriteLine($"Message: {error.Data.Message}");
57-
// Console.WriteLine($"Code: {error.Data.Code}");
58-
// Console.WriteLine($"Type: {error.Data.Type}");
59-
// }
60-
// if (streamingUpdate.Run is {} run)
61-
// {
62-
// if (run.Value1 is { Event: RunStreamEventVariant1Event.ThreadRunCreated })
63-
// {
64-
// Console.WriteLine("--- Run created! ---");
65-
// }
66-
// }
67-
// if (streamingUpdate.Message is {} message)
68-
// {
69-
// if (message.Value3 is
70-
// {
71-
// Event: MessageStreamEventVariant3Event.ThreadMessageDelta
72-
// } delta)
73-
// {
74-
// foreach (var deltaVariation in delta.Data.Delta.Content ?? [])
75-
// {
76-
// if (deltaVariation.Value1 is {} imageFile)
77-
// {
78-
// Console.WriteLine();
79-
// Console.WriteLine(imageFile.ImageFile?.FileId);
80-
// }
81-
// if (deltaVariation.Value2 is {} text)
82-
// {
83-
// Console.Write(text.Text?.Value);
84-
// }
85-
// if (deltaVariation.Value3 is {} refusal)
86-
// {
87-
// Console.WriteLine();
88-
// Console.WriteLine(refusal.Refusal);
89-
// }
90-
// if (deltaVariation.Value4 is {} imageUrl)
91-
// {
92-
// Console.WriteLine();
93-
// Console.WriteLine(imageUrl.ImageUrl?.Url);
94-
// }
95-
// }
96-
// }
97-
// }
98-
// }
99-
//
100-
// _ = await api.Files.DeleteFileAsync(pictureOfAppleFile.Id);
101-
// _ = await api.Assistants.DeleteThreadAsync(thread.Id);
102-
// _ = await api.Assistants.DeleteAssistantAsync(assistant.Id);
103-
// }
104-
// }
1+
using System.Diagnostics.CodeAnalysis;
2+
3+
namespace OpenAI.IntegrationTests.Examples;
4+
5+
public partial class Examples
6+
{
7+
[Test]
8+
[Explicit]
9+
[Experimental("OPENAI_BETA_001")]
10+
public async Task AssistantsWithVision()
11+
{
12+
using var api = GetAuthenticatedClient();
13+
14+
ImagesResponse appleImage = await api.Images.CreateImageAsync(
15+
prompt: "picture of apple",
16+
responseFormat: CreateImageRequestResponseFormat.B64Json);
17+
byte[] appleBytes = appleImage.Data[0].Bytes;
18+
19+
FileInfo appleFileInfo = new($"{Guid.NewGuid()}.png");
20+
21+
await File.WriteAllBytesAsync(appleFileInfo.FullName, appleBytes);
22+
23+
Console.WriteLine($"Apple image available at:\n{new Uri(appleFileInfo.FullName).AbsoluteUri}");
24+
25+
Console.WriteLine($"Orange image available at:\n{new Uri("https://raw.githubusercontent.com/tryAGI/OpenAI/d237b700b03fe9913a6ff53fa623041e87705f2f/assets/orange.png")}");
26+
27+
OpenAIFile pictureOfAppleFile = await api.Files.CreateFileAsync(
28+
file: appleBytes,
29+
filename: appleFileInfo.Name,
30+
purpose: CreateFileRequestPurpose.Vision);
31+
32+
AssistantObject assistant = await api.Assistants.CreateAssistantAsync(
33+
model: CreateAssistantRequestModel.Gpt4o,
34+
instructions: "When asked a question, attempt to answer very concisely. " +
35+
"Prefer one-sentence answers whenever feasible.");
36+
37+
ThreadObject thread = await api.Assistants.CreateThreadAsync(new CreateThreadRequest
38+
{
39+
Messages = [
40+
"Hello, assistant! Please compare these two images for me:",
41+
pictureOfAppleFile,
42+
new Uri("https://raw.githubusercontent.com/tryAGI/OpenAI/d237b700b03fe9913a6ff53fa623041e87705f2f/assets/orange.png"),
43+
]
44+
});
45+
46+
var streamingUpdates = api.Assistants.CreateRunAsStreamAsync(
47+
threadId: thread.Id,
48+
assistantId: assistant.Id,
49+
instructions: "When possible, try to sneak in puns if you're asked to compare things.");
50+
51+
await foreach (AssistantStreamEvent streamingUpdate in streamingUpdates)
52+
{
53+
if (streamingUpdate.Error is {} error)
54+
{
55+
Console.WriteLine("--- Error ---");
56+
Console.WriteLine($"Message: {error.Data.Message}");
57+
Console.WriteLine($"Code: {error.Data.Code}");
58+
Console.WriteLine($"Type: {error.Data.Type}");
59+
}
60+
if (streamingUpdate.ThreadRunCreated is not null)
61+
{
62+
Console.WriteLine("--- Run created! ---");
63+
}
64+
if (streamingUpdate.ThreadMessageDelta is {} delta)
65+
{
66+
foreach (var deltaVariation in delta.Data.Delta.Content ?? [])
67+
{
68+
if (deltaVariation.ImageFile is {} imageFile)
69+
{
70+
Console.WriteLine();
71+
Console.WriteLine(imageFile.ImageFile?.FileId);
72+
}
73+
if (deltaVariation.Text is {} text)
74+
{
75+
Console.Write(text.Text?.Value);
76+
}
77+
if (deltaVariation.Refusal is {} refusal)
78+
{
79+
Console.WriteLine();
80+
Console.WriteLine(refusal.Refusal);
81+
}
82+
if (deltaVariation.ImageUrl is {} imageUrl)
83+
{
84+
Console.WriteLine();
85+
Console.WriteLine(imageUrl.ImageUrl?.Url);
86+
}
87+
}
88+
}
89+
}
90+
91+
_ = await api.Files.DeleteFileAsync(pictureOfAppleFile.Id);
92+
_ = await api.Assistants.DeleteThreadAsync(thread.Id);
93+
_ = await api.Assistants.DeleteAssistantAsync(assistant.Id);
94+
}
95+
}

src/tests/OpenAI.IntegrationTests/Examples/Examples.Assistants.FunctionCalling.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,15 @@ ListMessagesResponse messages
7373
Console.WriteLine($"[{message.Role.ToString().ToUpper()}]: ");
7474
foreach (ContentItem2 contentItem in message.Content)
7575
{
76-
if (contentItem.MessageImageFileObject is {} imageFile)
76+
if (contentItem.ImageFile is {} imageFile)
7777
{
7878
Console.WriteLine($" <Image File ID> {imageFile.ImageFile.FileId}");
7979
}
80-
if (contentItem.MessageImageUrlObject is {} imageUrl)
80+
if (contentItem.ImageUrl is {} imageUrl)
8181
{
8282
Console.WriteLine($" <Image URL> {imageUrl.ImageUrl.Url}");
8383
}
84-
if (contentItem.MessageTextObject is {} text)
84+
if (contentItem.Text is {} text)
8585
{
8686
Console.WriteLine($"{text.Text.Value}");
8787

@@ -91,13 +91,13 @@ ListMessagesResponse messages
9191
Console.WriteLine();
9292
foreach (AnnotationsItem annotation in text.Text.Annotations)
9393
{
94-
if (annotation.MessageContentTextFileCitationObject is {} fileCitation)
94+
if (annotation.FileCitation is {} fileCitation)
9595
{
9696
Console.WriteLine($"* File citation, file ID: {fileCitation.FileCitation.FileId}");
9797
Console.WriteLine($"* Text to replace: {fileCitation.Text}");
9898
Console.WriteLine($"* Message content index range: {fileCitation.StartIndex}-{fileCitation.EndIndex}");
9999
}
100-
if (annotation.MessageContentTextFilePathObject is {} filePath)
100+
if (annotation.FilePath is {} filePath)
101101
{
102102
Console.WriteLine($"* File output, new file ID: {filePath.FilePath.FileId}");
103103
Console.WriteLine($"* Text to replace: {filePath.Text}");
@@ -106,7 +106,7 @@ ListMessagesResponse messages
106106
}
107107
}
108108
}
109-
if (contentItem.MessageRefusalObject is {} refusal)
109+
if (contentItem.Refusal is {} refusal)
110110
{
111111
Console.WriteLine($"Refusal: {refusal.Refusal}");
112112
}

0 commit comments

Comments
 (0)