refine api

This commit is contained in:
Jicheng Lu 2024-08-28 11:41:42 -05:00
parent 45997ccfaf
commit 4b739a04d9
2 changed files with 40 additions and 32 deletions

View file

@ -47,11 +47,11 @@ public static class FileUtility
return $"data:{contentType};base64,{base64}";
}
public static string GetFileContentType(string filePath)
public static string GetFileContentType(string fileName)
{
string contentType;
var provider = new FileExtensionContentTypeProvider();
if (!provider.TryGetContentType(filePath, out contentType))
if (!provider.TryGetContentType(fileName, out contentType))
{
contentType = string.Empty;
}

View file

@ -173,6 +173,7 @@ public class InstructModeController : ControllerBase
var message = await fileInstruct.VaryImage(input.Provider, input.Model, input.File);
imageViewModel.Content = message.Content;
imageViewModel.Images = message.GeneratedImages.Select(x => ImageViewModel.ToViewModel(x)).ToList();
return imageViewModel;
}
catch (Exception ex)
@ -194,17 +195,20 @@ public class InstructModeController : ControllerBase
try
{
var data = FileUtility.BuildFileDataFromFile(file);
var image = new InstructFileModel
using var stream = new MemoryStream();
file.CopyTo(stream);
stream.Position = 0;
var completion = CompletionProvider.GetImageCompletion(_services, provider: provider ?? "openai", model: model ?? "dall-e-2");
var message = await completion.GetImageVariation(new Agent()
{
FileName = Path.GetFileNameWithoutExtension(file.FileName),
FileExtension = Path.GetExtension(file.FileName).Substring(1),
FileData = data
};
var fileInstruct = _services.GetRequiredService<IFileInstructService>();
var message = await fileInstruct.VaryImage(provider, model, image);
Id = Guid.Empty.ToString()
}, new RoleDialogModel(AgentRole.User, string.Empty), stream, file.FileName);
imageViewModel.Content = message.Content;
imageViewModel.Images = message.GeneratedImages.Select(x => ImageViewModel.ToViewModel(x)).ToList();
stream.Close();
return imageViewModel;
}
catch (Exception ex)
@ -255,16 +259,20 @@ public class InstructModeController : ControllerBase
try
{
var data = FileUtility.BuildFileDataFromFile(file);
var image = new InstructFileModel
using var stream = new MemoryStream();
file.CopyTo(stream);
stream.Position = 0;
var completion = CompletionProvider.GetImageCompletion(_services, provider: provider ?? "openai", model: model ?? "dall-e-2");
var message = await completion.GetImageEdits(new Agent()
{
FileName = Path.GetFileNameWithoutExtension(file.FileName),
FileExtension = Path.GetExtension(file.FileName).Substring(1),
FileData = data
};
var message = await fileInstruct.EditImage(provider, model, text, image);
Id = Guid.Empty.ToString()
}, new RoleDialogModel(AgentRole.User, text), stream, file.FileName);
imageViewModel.Content = message.Content;
imageViewModel.Images = message.GeneratedImages.Select(x => ImageViewModel.ToViewModel(x)).ToList();
stream.Close();
return imageViewModel;
}
catch (Exception ex)
@ -317,25 +325,25 @@ public class InstructModeController : ControllerBase
try
{
var imageData = FileUtility.BuildFileDataFromFile(image);
var imageFile = new InstructFileModel
{
FileName = Path.GetFileNameWithoutExtension(image.FileName),
FileExtension = Path.GetExtension(image.FileName).Substring(1),
FileData = imageData
};
using var imageStream = new MemoryStream();
image.CopyTo(imageStream);
imageStream.Position = 0;
var maskData = FileUtility.BuildFileDataFromFile(mask);
var maskFile = new InstructFileModel
{
FileName = Path.GetFileNameWithoutExtension(mask.FileName),
FileExtension = Path.GetExtension(mask.FileName).Substring(1),
FileData = maskData
};
using var maskStream = new MemoryStream();
mask.CopyTo(maskStream);
maskStream.Position = 0;
var completion = CompletionProvider.GetImageCompletion(_services, provider: provider ?? "openai", model: model ?? "dall-e-2");
var message = await completion.GetImageEdits(new Agent()
{
Id = Guid.Empty.ToString()
}, new RoleDialogModel(AgentRole.User, text), imageStream, image.FileName, maskStream, mask.FileName);
var message = await fileInstruct.EditImage(provider, model, text, imageFile, maskFile);
imageViewModel.Content = message.Content;
imageViewModel.Images = message.GeneratedImages.Select(x => ImageViewModel.ToViewModel(x)).ToList();
imageStream.Close();
maskStream.Close();
return imageViewModel;
}
catch (Exception ex)