upgrade openai package
This commit is contained in:
parent
1ed0846bbe
commit
b20347fc0d
|
|
@ -46,7 +46,7 @@
|
|||
<PackageVersion Include="Whisper.net.Runtime" Version="1.8.1" />
|
||||
<PackageVersion Include="NCrontab" Version="3.3.3" />
|
||||
<PackageVersion Include="Azure.AI.OpenAI" Version="2.2.0-beta.5" />
|
||||
<PackageVersion Include="OpenAI" Version="2.3.0" />
|
||||
<PackageVersion Include="OpenAI" Version="2.4.0" />
|
||||
<PackageVersion Include="MailKit" Version="4.11.0" />
|
||||
<PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.8" />
|
||||
<PackageVersion Include="MySql.Data" Version="9.0.0" />
|
||||
|
|
|
|||
|
|
@ -111,12 +111,14 @@ public class ImageGenerationSetting
|
|||
public ModelSettingBase? Size { get; set; }
|
||||
public ModelSettingBase? Quality { get; set; }
|
||||
public ModelSettingBase? ResponseFormat { get; set; }
|
||||
public ModelSettingBase? Background { get; set; }
|
||||
}
|
||||
|
||||
public class ImageEditSetting
|
||||
{
|
||||
public ModelSettingBase? Size { get; set; }
|
||||
public ModelSettingBase? ResponseFormat { get; set; }
|
||||
public ModelSettingBase? Background { get; set; }
|
||||
}
|
||||
|
||||
public class ImageVariationSetting
|
||||
|
|
|
|||
|
|
@ -61,19 +61,34 @@ public class PlotChartFn : IFunctionCallback
|
|||
});
|
||||
|
||||
var response = await GetChatCompletion(innerAgent, dialogs);
|
||||
var obj = response.JsonContent<LlmContextOut>();
|
||||
message.Content = obj?.GreetingMessage ?? "Here is the chart you ask for:";
|
||||
|
||||
LlmContextOut? ret = null;
|
||||
var errorMsg = "Error when deserializing ai chart response";
|
||||
try
|
||||
{
|
||||
ret = response.JsonContent<LlmContextOut>();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, errorMsg);
|
||||
ret = new LlmContextOut
|
||||
{
|
||||
GreetingMessage = errorMsg
|
||||
};
|
||||
}
|
||||
|
||||
message.Content = ret?.GreetingMessage ?? "Here is the chart you ask for:";
|
||||
message.RichContent = new RichContent<IRichMessage>
|
||||
{
|
||||
Recipient = new Recipient { Id = convService.ConversationId },
|
||||
Message = new ProgramCodeTemplateMessage
|
||||
{
|
||||
Text = obj?.JsCode ?? string.Empty,
|
||||
Text = ret?.JsCode ?? string.Empty,
|
||||
Language = "javascript"
|
||||
}
|
||||
};
|
||||
|
||||
if (!string.IsNullOrEmpty(obj?.ReportSummary))
|
||||
if (!string.IsNullOrEmpty(ret?.ReportSummary))
|
||||
{
|
||||
message.AdditionalMessageWrapper = new()
|
||||
{
|
||||
|
|
@ -81,7 +96,7 @@ public class PlotChartFn : IFunctionCallback
|
|||
SaveToDb = true,
|
||||
Messages = new List<RoleDialogModel>
|
||||
{
|
||||
new(AgentRole.Assistant, obj.ReportSummary)
|
||||
new(AgentRole.Assistant, ret.ReportSummary)
|
||||
{
|
||||
MessageId = message.MessageId,
|
||||
MessageLabel = "chart_report_summary",
|
||||
|
|
|
|||
|
|
@ -57,6 +57,7 @@ public class GenerateImageFn : IFunctionCallback
|
|||
var state = _services.GetRequiredService<IConversationStateService>();
|
||||
state.SetState("image_count", "1");
|
||||
state.SetState("image_quality", "medium");
|
||||
state.SetState("image_response_format", "bytes");
|
||||
}
|
||||
|
||||
private async Task<string> GetImageGeneration(Agent agent, RoleDialogModel message, string? description)
|
||||
|
|
@ -69,7 +70,7 @@ public class GenerateImageFn : IFunctionCallback
|
|||
var dialog = RoleDialogModel.From(message, AgentRole.User, text);
|
||||
var result = await completion.GetImageGeneration(agent, dialog);
|
||||
SaveGeneratedImages(result?.GeneratedImages);
|
||||
return result?.Content ?? string.Empty;
|
||||
return !string.IsNullOrWhiteSpace(result?.Content) ? result.Content : "Here is the image you asked for";
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#pragma warning disable OPENAI001
|
||||
using OpenAI.Images;
|
||||
|
||||
namespace BotSharp.Plugin.OpenAI.Providers.Image;
|
||||
|
|
@ -58,9 +59,11 @@ public partial class ImageCompletionProvider
|
|||
|
||||
var size = state.GetState("image_size");
|
||||
var responseFormat = state.GetState("image_response_format");
|
||||
var background = state.GetState("image_background");
|
||||
|
||||
size = settings?.Size != null ? VerifyImageParameter(size, settings.Size.Default, settings.Size.Options) : null;
|
||||
responseFormat = settings?.ResponseFormat != null ? VerifyImageParameter(responseFormat, settings.ResponseFormat.Default, settings.ResponseFormat.Options) : null;
|
||||
background = settings?.Background != null ? VerifyImageParameter(background, settings.Background.Default, settings.Background.Options) : null;
|
||||
|
||||
var options = new ImageEditOptions();
|
||||
if (!string.IsNullOrEmpty(size))
|
||||
|
|
@ -71,6 +74,10 @@ public partial class ImageCompletionProvider
|
|||
{
|
||||
options.ResponseFormat = GetImageResponseFormat(responseFormat);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(background))
|
||||
{
|
||||
options.Background = GetImageBackground(background);
|
||||
}
|
||||
|
||||
var count = GetImageCount(state.GetState("image_count"));
|
||||
return (prompt, count, options);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
#pragma warning disable OPENAI001
|
||||
using OpenAI.Images;
|
||||
|
||||
namespace BotSharp.Plugin.OpenAI.Providers.Image;
|
||||
|
|
@ -38,11 +39,13 @@ public partial class ImageCompletionProvider
|
|||
var quality = state.GetState("image_quality");
|
||||
var style = state.GetState("image_style");
|
||||
var responseFormat = state.GetState("image_response_format");
|
||||
var background = state.GetState("image_background");
|
||||
|
||||
size = settings?.Size != null ? VerifyImageParameter(size, settings.Size.Default, settings.Size.Options) : null;
|
||||
quality = settings?.Quality != null ? VerifyImageParameter(quality, settings.Quality.Default, settings.Quality.Options) : null;
|
||||
style = settings?.Style != null ? VerifyImageParameter(style, settings.Style.Default, settings.Style.Options) : null;
|
||||
responseFormat = settings?.ResponseFormat != null ? VerifyImageParameter(responseFormat, settings.ResponseFormat.Default, settings.ResponseFormat.Options) : null;
|
||||
background = settings?.Background != null ? VerifyImageParameter(background, settings.Background.Default, settings.Background.Options) : null;
|
||||
|
||||
var options = new ImageGenerationOptions();
|
||||
if (!string.IsNullOrEmpty(size))
|
||||
|
|
@ -61,6 +64,10 @@ public partial class ImageCompletionProvider
|
|||
{
|
||||
options.ResponseFormat = GetImageResponseFormat(responseFormat);
|
||||
}
|
||||
if (!string.IsNullOrEmpty(background))
|
||||
{
|
||||
options.Background = GetImageBackground(background);
|
||||
}
|
||||
|
||||
var count = GetImageCount(state.GetState("image_count"));
|
||||
return (prompt, count, options);
|
||||
|
|
|
|||
|
|
@ -163,6 +163,27 @@ public partial class ImageCompletionProvider : IImageCompletion
|
|||
return retFormat;
|
||||
}
|
||||
|
||||
private GeneratedImageBackground GetImageBackground(string? background)
|
||||
{
|
||||
var value = !string.IsNullOrEmpty(background) ? background : "auto";
|
||||
|
||||
GeneratedImageBackground retBackground;
|
||||
switch (value)
|
||||
{
|
||||
case "transparent":
|
||||
retBackground = GeneratedImageBackground.Transparent;
|
||||
break;
|
||||
case "opaque":
|
||||
retBackground = GeneratedImageBackground.Opaque;
|
||||
break;
|
||||
default:
|
||||
retBackground = GeneratedImageBackground.Auto;
|
||||
break;
|
||||
}
|
||||
|
||||
return retBackground;
|
||||
}
|
||||
|
||||
private int GetImageCount(string count)
|
||||
{
|
||||
if (!int.TryParse(count, out var retCount))
|
||||
|
|
|
|||
Loading…
Reference in a new issue