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

Commit 6d0924c

Browse files
committed
Created ImageManager for generate url and base64
1 parent 316461e commit 6d0924c

File tree

3 files changed

+64
-0
lines changed

3 files changed

+64
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using ManagedCode.OpenAI.Client;
2+
3+
namespace ManagedCode.OpenAI.ImageGenerator.Manager;
4+
5+
public class Base64ImageManager: ImageManager<ImageResult<Base64ImageData>>
6+
{
7+
public Base64ImageManager(OpenAIClient client, ImageRequestOptions options) : base(client, options)
8+
{
9+
}
10+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
using System.Net.Http.Json;
2+
using System.Text;
3+
using System.Text.Json;
4+
using ManagedCode.OpenAI.Client;
5+
using ManagedCode.OpenAI.Exceptions;
6+
7+
namespace ManagedCode.OpenAI.ImageGenerator.Manager;
8+
9+
public class ImageManager<T> where T : class
10+
{
11+
public const string URL_EDITS = "images/generations";
12+
13+
protected OpenAIClient _client;
14+
protected ImageRequestOptions _options;
15+
16+
public ImageManager(OpenAIClient client, ImageRequestOptions options)
17+
{
18+
_client = client;
19+
_options = options;
20+
}
21+
22+
public ImageManager<T> Prompt(string prompt)
23+
{
24+
_options.Prompt = prompt;
25+
26+
return this;
27+
}
28+
29+
public async Task<T> GetResultAsStringAsync()
30+
{
31+
32+
var httpResponseMessage = await _client.PostAsJsonAsync(
33+
URL_EDITS, _options);
34+
35+
OpenAIExceptions.ThrowsIfError(httpResponseMessage.StatusCode);
36+
37+
string responseBody = await httpResponseMessage.Content.ReadAsStringAsync();
38+
39+
var result = JsonSerializer.Deserialize<T>(responseBody);
40+
41+
return result;
42+
}
43+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using ManagedCode.OpenAI.Client;
2+
3+
namespace ManagedCode.OpenAI.ImageGenerator.Manager;
4+
5+
public class UrlImageManager : ImageManager<ImageResult<UrlImageData>>
6+
{
7+
public UrlImageManager(OpenAIClient client, ImageRequestOptions options) : base(client, options)
8+
{
9+
}
10+
11+
}

0 commit comments

Comments
 (0)