6
6
using ManagedCode . OpenAI . Client ;
7
7
using ManagedCode . OpenAI . Exceptions ;
8
8
using ManagedCode . OpenAI . ImageGenerator . Enums ;
9
+ using ManagedCode . OpenAI . ImageGenerator . Manager ;
9
10
10
11
namespace ManagedCode . OpenAI . ImageGenerator ;
11
12
@@ -14,22 +15,14 @@ public class ImageGeneratorRequestBuilder
14
15
public const string URL_EDITS = "images/generations" ;
15
16
16
17
private OpenAIClient _client ;
17
- private ImageRequest _request ;
18
+ private ImageRequestOptions _request ;
18
19
19
20
public ImageGeneratorRequestBuilder ( OpenAIClient client )
20
21
{
21
22
_client = client ;
22
23
}
23
24
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 )
33
26
{
34
27
if ( count is < 0 )
35
28
throw new ArgumentOutOfRangeException ( ) ;
@@ -39,68 +32,43 @@ public ImageGeneratorRequestBuilder SetRequestResult(int count)
39
32
return this ;
40
33
}
41
34
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
- }
53
35
54
- public ImageGeneratorRequestBuilder SetFormat ( string format )
36
+ public ImageGeneratorRequestBuilder WithResolution ( ImageResolution resize )
55
37
{
56
- _request . ResponseFormat = format ;
38
+ _request . Size = resize ;
57
39
58
40
return this ;
59
41
}
60
42
61
- public ImageGeneratorRequestBuilder SetFormat ( ImageFormat format )
62
- {
63
- return SetFormat ( format ) ;
64
- }
65
43
66
- public ImageGeneratorRequestBuilder SetUser ( string user )
44
+
45
+ public ImageGeneratorRequestBuilder WithUsername ( string user )
67
46
{
68
47
_request . User = user ;
69
48
70
49
return this ;
71
50
}
72
51
73
- public async Task < CreateImageResult > Send ( )
52
+ public Base64ImageManager CreateAsBase64 ( )
74
53
{
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 ) ;
89
58
}
90
-
91
- public ImageGeneratorRequestBuilder Clear ( string prompt )
59
+
60
+ public UrlImageManager CreateAsUrl ( )
92
61
{
93
- _request = new ImageRequest ( )
94
- {
95
- Prompt = prompt
96
- } ;
62
+ var options = _request . DeepClone ( ) ;
63
+ options . ResponseFormat = ImageFormat . Url ;
97
64
98
- return this ;
65
+ return new UrlImageManager ( _client , options ) ;
99
66
}
100
67
101
-
102
68
public ImageGeneratorRequestBuilder Clear ( )
103
69
{
104
- return Clear ( _request . Prompt ) ;
70
+ _request = new ImageRequestOptions ( ) ;
71
+
72
+ return this ;
105
73
}
106
74
}
0 commit comments