AiTasteLevel.java
3.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package com.aigeo.common.enums;
import lombok.Getter;
/**
* AI写作风格等级枚举
* 对应数据库字段:ai_article_generation_tasks.ai_taste_level
*
* AI内容生成的语言复杂度和专业程度:
* - COLLOQUIAL: 口语化,通俗易懂
* - JUNIOR_HIGH: 初中生水平,简单直白
* - SENIOR_HIGH: 高中生水平,逻辑清晰
* - PROFESSIONAL: 专业级别,术语丰富
*
* @author AIGEO Team
* @since 1.0.0
*/
@Getter
public enum AiTasteLevel {
/**
* 口语化风格 - 通俗易懂,日常对话风格
*/
COLLOQUIAL("colloquial", "口语化", 1),
/**
* 初中水平 - 简单直白,易于理解
*/
JUNIOR_HIGH("junior_high", "初中水平", 2),
/**
* 高中水平 - 逻辑清晰,表达准确
*/
SENIOR_HIGH("senior_high", "高中水平", 3),
/**
* 专业水平 - 术语丰富,表达专业
*/
PROFESSIONAL("professional", "专业水平", 4);
/**
* 数据库存储值
*/
private final String code;
/**
* 显示名称
*/
private final String displayName;
/**
* 复杂度等级(1-4,数字越大越复杂)
*/
private final Integer complexityLevel;
AiTasteLevel(String code, String displayName, Integer complexityLevel) {
this.code = code;
this.displayName = displayName;
this.complexityLevel = complexityLevel;
}
/**
* 根据代码获取枚举
*/
public static AiTasteLevel fromCode(String code) {
for (AiTasteLevel level : values()) {
if (level.code.equals(code)) {
return level;
}
}
throw new IllegalArgumentException("未知的AI风格等级代码: " + code);
}
/**
* 检查是否为基础水平
*/
public boolean isBasicLevel() {
return this == COLLOQUIAL || this == JUNIOR_HIGH;
}
/**
* 检查是否为高级水平
*/
public boolean isAdvancedLevel() {
return this == SENIOR_HIGH || this == PROFESSIONAL;
}
/**
* 获取推荐的文章长度范围(字数)
*/
public int[] getRecommendedWordRange() {
switch (this) {
case COLLOQUIAL:
return new int[]{300, 800};
case JUNIOR_HIGH:
return new int[]{500, 1200};
case SENIOR_HIGH:
return new int[]{800, 2000};
case PROFESSIONAL:
return new int[]{1000, 3000};
default:
return new int[]{500, 1200};
}
}
/**
* 获取适合的目标受众描述
*/
public String getTargetAudience() {
switch (this) {
case COLLOQUIAL:
return "大众读者,追求轻松阅读";
case JUNIOR_HIGH:
return "普通用户,需要简明扼要";
case SENIOR_HIGH:
return "有一定基础的读者";
case PROFESSIONAL:
return "专业人士和行业专家";
default:
return "普通读者";
}
}
}