Skip to content
This repository was archived by the owner on Feb 12, 2025. It is now read-only.

Commit d6f46ee

Browse files
committed
Changed code
1 parent 213e5ff commit d6f46ee

File tree

2 files changed

+22
-59
lines changed

2 files changed

+22
-59
lines changed

ManagedCode.OpenAI/ImageGenerator/Builders/ImageGeneratorRequestBuilder.cs

Lines changed: 20 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
using ManagedCode.OpenAI.Client;
77
using ManagedCode.OpenAI.Exceptions;
88
using ManagedCode.OpenAI.ImageGenerator.Enums;
9+
using ManagedCode.OpenAI.ImageGenerator.Manager;
910

1011
namespace ManagedCode.OpenAI.ImageGenerator;
1112

@@ -14,22 +15,14 @@ public class ImageGeneratorRequestBuilder
1415
public const string URL_EDITS = "images/generations";
1516

1617
private OpenAIClient _client;
17-
private ImageRequest _request;
18+
private ImageRequestOptions _request;
1819

1920
public ImageGeneratorRequestBuilder(OpenAIClient client)
2021
{
2122
_client = client;
2223
}
2324

24-
25-
public ImageGeneratorRequestBuilder SetPrompt(string prompt)
26-
{
27-
_request.Prompt = prompt;
28-
29-
return this;
30-
}
31-
32-
public ImageGeneratorRequestBuilder SetRequestResult(int count)
25+
public ImageGeneratorRequestBuilder WithRequestResult(int count)
3326
{
3427
if (count is < 0)
3528
throw new ArgumentOutOfRangeException();
@@ -39,68 +32,43 @@ public ImageGeneratorRequestBuilder SetRequestResult(int count)
3932
return this;
4033
}
4134

42-
public ImageGeneratorRequestBuilder SetResolution(string size)
43-
{
44-
_request.Size = size;
45-
46-
return this;
47-
}
48-
49-
public ImageGeneratorRequestBuilder SetResolution(ImageResolution resize)
50-
{
51-
return SetResolution(resize);
52-
}
5335

54-
public ImageGeneratorRequestBuilder SetFormat(string format)
36+
public ImageGeneratorRequestBuilder WithResolution(ImageResolution resize)
5537
{
56-
_request.ResponseFormat = format;
38+
_request.Size = resize;
5739

5840
return this;
5941
}
6042

61-
public ImageGeneratorRequestBuilder SetFormat(ImageFormat format)
62-
{
63-
return SetFormat(format);
64-
}
6543

66-
public ImageGeneratorRequestBuilder SetUser(string user)
44+
45+
public ImageGeneratorRequestBuilder WithUsername(string user)
6746
{
6847
_request.User = user;
6948

7049
return this;
7150
}
7251

73-
public async Task<CreateImageResult> Send()
52+
public Base64ImageManager CreateAsBase64()
7453
{
75-
var json = JsonSerializer.Serialize(_request);
76-
77-
var content = new StringContent(json, Encoding.UTF8, "application/json");
78-
79-
var httpResponseMessage = await _client.PostAsync(
80-
URL_EDITS, content);
81-
82-
OpenAIExceptions.ThrowsIfError(httpResponseMessage.StatusCode);
83-
84-
string responseBody = await httpResponseMessage.Content.ReadAsStringAsync();
85-
86-
var result = JsonSerializer.Deserialize<CreateImageResult>(responseBody);
87-
88-
return result;
54+
var options = _request.DeepClone();
55+
options.ResponseFormat = ImageFormat.Base64Json;
56+
57+
return new Base64ImageManager(_client, options);
8958
}
90-
91-
public ImageGeneratorRequestBuilder Clear(string prompt)
59+
60+
public UrlImageManager CreateAsUrl()
9261
{
93-
_request = new ImageRequest()
94-
{
95-
Prompt = prompt
96-
};
62+
var options = _request.DeepClone();
63+
options.ResponseFormat = ImageFormat.Url;
9764

98-
return this;
65+
return new UrlImageManager(_client, options);
9966
}
10067

101-
10268
public ImageGeneratorRequestBuilder Clear()
10369
{
104-
return Clear(_request.Prompt);
70+
_request = new ImageRequestOptions();
71+
72+
return this;
10573
}
10674
}

ManagedCode.OpenAI/ImageGenerator/Builders/ImageGeneratorRequestBuilderMethods.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,6 @@ namespace ManagedCode.OpenAI.ImageGenerator;
44

55
public static class ImageGeneratorRequestBuilderMethods
66
{
7-
public static ImageGeneratorRequestBuilder AsImageGenerator(
8-
this OpenAIClient client,
9-
string prompt
10-
)
11-
{
12-
return new ImageGeneratorRequestBuilder(client).Clear(prompt);
13-
}
7+
public static ImageGeneratorRequestBuilder CreateImageBuilder(this OpenAIClient client)
8+
=> new ImageGeneratorRequestBuilder(client);
149
}

0 commit comments

Comments
 (0)