Skip to content

Commit 33e8f6f

Browse files
authored
Fix casing of MessageImageDetail in MessageContent factory methods (#544)
Fix casing of MessageImageDetail in MessageContent factory methods
1 parent 4aa3958 commit 33e8f6f

File tree

2 files changed

+41
-2
lines changed

2 files changed

+41
-2
lines changed

src/Custom/Assistants/MessageContent.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public static MessageContent FromImageFileId(
1919
=> new InternalMessageContentImageFileObject(
2020
imageFile: new(
2121
fileId: imageFileId,
22-
detail: detail?.ToString(),
22+
detail: detail?.ToSerialString(),
2323
additionalBinaryDataProperties: null));
2424

2525
/// <summary>
@@ -33,7 +33,7 @@ public static MessageContent FromImageUri(Uri imageUri, MessageImageDetail? deta
3333
=> new InternalMessageContentImageUrlObject(
3434
imageUrl: new(
3535
url: imageUri,
36-
detail: detail?.ToString(),
36+
detail: detail?.ToSerialString(),
3737
additionalBinaryDataProperties: null));
3838

3939
/// <summary>

tests/Assistants/AssistantsTests.cs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,45 @@ public async Task ThreadWithInitialMessagesWorks()
301301
Assert.That(messages[1].Content[1].ImageUri.AbsoluteUri, Is.EqualTo("https://test.openai.com/image.png"));
302302
}
303303

304+
[Test]
305+
public async Task ThreadWithImageDetailWorks()
306+
{
307+
AssistantClient client = GetTestClient();
308+
309+
ThreadCreationOptions options = new()
310+
{
311+
InitialMessages =
312+
{
313+
new(
314+
MessageRole.User,
315+
[
316+
"Describe this image with auto detail:",
317+
MessageContent.FromImageUri(
318+
new Uri("https://test.openai.com/image.png"),
319+
MessageImageDetail.Auto)
320+
])
321+
}
322+
};
323+
324+
AssistantThread thread = IsAsync
325+
? await client.CreateThreadAsync(options)
326+
: client.CreateThread(options);
327+
328+
Validate(thread);
329+
330+
MessageCollectionOptions collectionOptions = new() { Order = MessageCollectionOrder.Ascending };
331+
List<ThreadMessage> messages = IsAsync
332+
? await client.GetMessagesAsync(thread.Id, collectionOptions).ToListAsync()
333+
: client.GetMessages(thread.Id, collectionOptions).ToList();
334+
335+
Assert.That(messages.Count, Is.EqualTo(1));
336+
Assert.That(messages[0].Role, Is.EqualTo(MessageRole.User));
337+
Assert.That(messages[0].Content?.Count, Is.EqualTo(2));
338+
339+
Assert.That(messages[0].Content[0].Text, Is.EqualTo("Describe this image with auto detail:"));
340+
Assert.That(messages[0].Content[1].ImageUri.AbsoluteUri, Is.EqualTo("https://test.openai.com/image.png"));
341+
}
342+
304343
[Test]
305344
public async Task BasicRunOperationsWork()
306345
{

0 commit comments

Comments
 (0)