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="Whisper.net.Runtime" Version="1.8.1" />
|
||||||
<PackageVersion Include="NCrontab" Version="3.3.3" />
|
<PackageVersion Include="NCrontab" Version="3.3.3" />
|
||||||
<PackageVersion Include="Azure.AI.OpenAI" Version="2.2.0-beta.5" />
|
<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="MailKit" Version="4.11.0" />
|
||||||
<PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.8" />
|
<PackageVersion Include="Microsoft.Data.Sqlite" Version="8.0.8" />
|
||||||
<PackageVersion Include="MySql.Data" Version="9.0.0" />
|
<PackageVersion Include="MySql.Data" Version="9.0.0" />
|
||||||
|
|
|
||||||
|
|
@ -111,12 +111,14 @@ public class ImageGenerationSetting
|
||||||
public ModelSettingBase? Size { get; set; }
|
public ModelSettingBase? Size { get; set; }
|
||||||
public ModelSettingBase? Quality { get; set; }
|
public ModelSettingBase? Quality { get; set; }
|
||||||
public ModelSettingBase? ResponseFormat { get; set; }
|
public ModelSettingBase? ResponseFormat { get; set; }
|
||||||
|
public ModelSettingBase? Background { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ImageEditSetting
|
public class ImageEditSetting
|
||||||
{
|
{
|
||||||
public ModelSettingBase? Size { get; set; }
|
public ModelSettingBase? Size { get; set; }
|
||||||
public ModelSettingBase? ResponseFormat { get; set; }
|
public ModelSettingBase? ResponseFormat { get; set; }
|
||||||
|
public ModelSettingBase? Background { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ImageVariationSetting
|
public class ImageVariationSetting
|
||||||
|
|
|
||||||
|
|
@ -61,19 +61,34 @@ public class PlotChartFn : IFunctionCallback
|
||||||
});
|
});
|
||||||
|
|
||||||
var response = await GetChatCompletion(innerAgent, dialogs);
|
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>
|
message.RichContent = new RichContent<IRichMessage>
|
||||||
{
|
{
|
||||||
Recipient = new Recipient { Id = convService.ConversationId },
|
Recipient = new Recipient { Id = convService.ConversationId },
|
||||||
Message = new ProgramCodeTemplateMessage
|
Message = new ProgramCodeTemplateMessage
|
||||||
{
|
{
|
||||||
Text = obj?.JsCode ?? string.Empty,
|
Text = ret?.JsCode ?? string.Empty,
|
||||||
Language = "javascript"
|
Language = "javascript"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(obj?.ReportSummary))
|
if (!string.IsNullOrEmpty(ret?.ReportSummary))
|
||||||
{
|
{
|
||||||
message.AdditionalMessageWrapper = new()
|
message.AdditionalMessageWrapper = new()
|
||||||
{
|
{
|
||||||
|
|
@ -81,7 +96,7 @@ public class PlotChartFn : IFunctionCallback
|
||||||
SaveToDb = true,
|
SaveToDb = true,
|
||||||
Messages = new List<RoleDialogModel>
|
Messages = new List<RoleDialogModel>
|
||||||
{
|
{
|
||||||
new(AgentRole.Assistant, obj.ReportSummary)
|
new(AgentRole.Assistant, ret.ReportSummary)
|
||||||
{
|
{
|
||||||
MessageId = message.MessageId,
|
MessageId = message.MessageId,
|
||||||
MessageLabel = "chart_report_summary",
|
MessageLabel = "chart_report_summary",
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,7 @@ public class GenerateImageFn : IFunctionCallback
|
||||||
var state = _services.GetRequiredService<IConversationStateService>();
|
var state = _services.GetRequiredService<IConversationStateService>();
|
||||||
state.SetState("image_count", "1");
|
state.SetState("image_count", "1");
|
||||||
state.SetState("image_quality", "medium");
|
state.SetState("image_quality", "medium");
|
||||||
|
state.SetState("image_response_format", "bytes");
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task<string> GetImageGeneration(Agent agent, RoleDialogModel message, string? description)
|
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 dialog = RoleDialogModel.From(message, AgentRole.User, text);
|
||||||
var result = await completion.GetImageGeneration(agent, dialog);
|
var result = await completion.GetImageGeneration(agent, dialog);
|
||||||
SaveGeneratedImages(result?.GeneratedImages);
|
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)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#pragma warning disable OPENAI001
|
||||||
using OpenAI.Images;
|
using OpenAI.Images;
|
||||||
|
|
||||||
namespace BotSharp.Plugin.OpenAI.Providers.Image;
|
namespace BotSharp.Plugin.OpenAI.Providers.Image;
|
||||||
|
|
@ -58,9 +59,11 @@ public partial class ImageCompletionProvider
|
||||||
|
|
||||||
var size = state.GetState("image_size");
|
var size = state.GetState("image_size");
|
||||||
var responseFormat = state.GetState("image_response_format");
|
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;
|
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;
|
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();
|
var options = new ImageEditOptions();
|
||||||
if (!string.IsNullOrEmpty(size))
|
if (!string.IsNullOrEmpty(size))
|
||||||
|
|
@ -71,6 +74,10 @@ public partial class ImageCompletionProvider
|
||||||
{
|
{
|
||||||
options.ResponseFormat = GetImageResponseFormat(responseFormat);
|
options.ResponseFormat = GetImageResponseFormat(responseFormat);
|
||||||
}
|
}
|
||||||
|
if (!string.IsNullOrEmpty(background))
|
||||||
|
{
|
||||||
|
options.Background = GetImageBackground(background);
|
||||||
|
}
|
||||||
|
|
||||||
var count = GetImageCount(state.GetState("image_count"));
|
var count = GetImageCount(state.GetState("image_count"));
|
||||||
return (prompt, count, options);
|
return (prompt, count, options);
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
#pragma warning disable OPENAI001
|
||||||
using OpenAI.Images;
|
using OpenAI.Images;
|
||||||
|
|
||||||
namespace BotSharp.Plugin.OpenAI.Providers.Image;
|
namespace BotSharp.Plugin.OpenAI.Providers.Image;
|
||||||
|
|
@ -38,11 +39,13 @@ public partial class ImageCompletionProvider
|
||||||
var quality = state.GetState("image_quality");
|
var quality = state.GetState("image_quality");
|
||||||
var style = state.GetState("image_style");
|
var style = state.GetState("image_style");
|
||||||
var responseFormat = state.GetState("image_response_format");
|
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;
|
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;
|
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;
|
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;
|
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();
|
var options = new ImageGenerationOptions();
|
||||||
if (!string.IsNullOrEmpty(size))
|
if (!string.IsNullOrEmpty(size))
|
||||||
|
|
@ -61,6 +64,10 @@ public partial class ImageCompletionProvider
|
||||||
{
|
{
|
||||||
options.ResponseFormat = GetImageResponseFormat(responseFormat);
|
options.ResponseFormat = GetImageResponseFormat(responseFormat);
|
||||||
}
|
}
|
||||||
|
if (!string.IsNullOrEmpty(background))
|
||||||
|
{
|
||||||
|
options.Background = GetImageBackground(background);
|
||||||
|
}
|
||||||
|
|
||||||
var count = GetImageCount(state.GetState("image_count"));
|
var count = GetImageCount(state.GetState("image_count"));
|
||||||
return (prompt, count, options);
|
return (prompt, count, options);
|
||||||
|
|
|
||||||
|
|
@ -163,6 +163,27 @@ public partial class ImageCompletionProvider : IImageCompletion
|
||||||
return retFormat;
|
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)
|
private int GetImageCount(string count)
|
||||||
{
|
{
|
||||||
if (!int.TryParse(count, out var retCount))
|
if (!int.TryParse(count, out var retCount))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue