Files
EmailBill/Service/AppSettingModel/IconPromptSettings.cs
SunCheng a88556c784 fix
2026-02-15 10:10:28 +08:00

221 lines
9.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
namespace Service.AppSettingModel;
/// <summary>
/// 图标生成提示词配置
/// </summary>
public class IconPromptSettings
{
public IconPromptSettings()
{
InitializeDefaultPrompts();
}
private void InitializeDefaultPrompts()
{
OldDefaultPromptTemplate = GetOldDefaultPrompt();
OldSingleIconPromptTemplate = GetOldSingleIconPrompt();
DefaultPromptTemplate = GetNewDefaultPrompt();
SingleIconPromptTemplate = GetNewSingleIconPrompt();
InitializeAbstractCategories();
}
private string GetOldDefaultPrompt()
{
return """
SVG
5 SVG
{{category_name}}
{{category_type}}
1. 24x24viewBox="0 0 24 24"
2. 使
- 使 <linearGradient> <radialGradient>
- 使
-
3. 5
- 1使
- 2线
- 33D使
- 4
- 5线
4.
-
-
-
5.
6. JSON 5 SVG
SVG gradient
["<svg>...</svg>", "<svg>...</svg>", "<svg>...</svg>", "<svg>...</svg>", "<svg>...</svg>"]
""";
}
private string GetOldSingleIconPrompt()
{
return """
SVG
1 SVG
{{category_name}}
{{category_type}}
1. 24x24viewBox="0 0 24 24"
2. 使
- 使 <linearGradient> <radialGradient>
-
3. 使
4.
-
5. JSON 1 SVG
SVG gradient
["<svg>...</svg>"]
""";
}
private string GetNewDefaultPrompt()
{
return """
SVG
5 SVG
{{category_name}}
{{category_type}}
1. 24x24viewBox="0 0 24 24"
2. {{style_strength}}
- {{color_scheme}}
- 使
- 线
-
3. 使
-
-
-
-
4.
5.
6. JSON 5 SVG
["<svg>...</svg>", "<svg>...</svg>", "<svg>...</svg>", "<svg>...</svg>", "<svg>...</svg>"]
""";
}
private string GetNewSingleIconPrompt()
{
return """
SVG
1 SVG
{{category_name}}
{{category_type}}
1. 24x24viewBox="0 0 24 24"
2. {{style_strength}}
- {{color_scheme}}
- 使
- 线
-
3. 使
4.
5.
6. JSON 1 SVG
["<svg>...</svg>"]
""";
}
private void InitializeAbstractCategories()
{
AbstractCategories = new Dictionary<string, AbstractCategoryConfig>
{
["其他"] = new AbstractCategoryConfig { GeometryShape = "circle", ColorCode = "#9E9E9E" },
["通用"] = new AbstractCategoryConfig { GeometryShape = "square", ColorCode = "#BDBDBD" },
["未知"] = new AbstractCategoryConfig { GeometryShape = "triangle", ColorCode = "#E0E0E0" }
};
}
/// <summary>
/// 提示词版本号
/// </summary>
public string Version { get; set; } = "1.0.0";
/// <summary>
/// 旧版提示词模板备份(用于生成 5 个图标,便于回滚)
/// </summary>
public string OldDefaultPromptTemplate { get; set; } = string.Empty;
/// <summary>
/// 旧版单个图标提示词模板备份(仅生成 1 个图标,便于回滚)
/// </summary>
public string OldSingleIconPromptTemplate { get; set; } = string.Empty;
/// <summary>
/// 默认提示词模板(用于生成 5 个图标)
/// 支持的占位符:
/// - {{category_name}}: 分类名称
/// - {{category_type}}: 分类类型(支出/收入/不计入收支)
/// - {{style_strength}}: 风格强度0.0-1.01.0 表示最简约)
/// - {{color_scheme}}: 颜色方案(单色/双色/多色/渐变)
/// </summary>
public string DefaultPromptTemplate { get; set; } = string.Empty;
/// <summary>
/// 单个图标提示词模板(仅生成 1 个图标)
/// 支持的占位符同 DefaultPromptTemplate
/// </summary>
public string SingleIconPromptTemplate { get; set; } = string.Empty;
/// <summary>
/// 风格强度0.0-1.01.0 表示最简约)
/// </summary>
public double StyleStrength { get; set; } = 0.7;
/// <summary>
/// 颜色方案single-color/two-color/multi-color/gradient
/// </summary>
public string ColorScheme { get; set; } = "single-color";
/// <summary>
/// 是否启用新提示词(灰度发布开关)
/// </summary>
public bool EnableNewPrompt { get; set; } = true;
/// <summary>
/// 灰度比例0.0-1.00.1 表示 10% 用户使用新提示词)
/// </summary>
public double GrayScaleRatio { get; set; } = 0.1;
/// <summary>
/// 抽象分类的特殊处理配置
/// </summary>
public Dictionary<string, AbstractCategoryConfig> AbstractCategories { get; set; } = new();
}
/// <summary>
/// 抽象分类的特殊处理配置
/// </summary>
public class AbstractCategoryConfig
{
/// <summary>
/// 几何形状circle/square/triangle/diamond/hexagon
/// </summary>
public string GeometryShape { get; set; } = string.Empty;
/// <summary>
/// 颜色编码(用于区分抽象分类)
/// </summary>
public string ColorCode { get; set; } = string.Empty;
}