Files
EmailBill/Service/AppSettingModel/IconPromptSettings.cs

221 lines
9.2 KiB
C#
Raw Normal View History

2026-02-15 10:10:28 +08:00
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;
}