DifyApiConfig.java
3.0 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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
// ai/entity/DifyApiConfig.java
package com.aigeo.ai.entity;
import org.hibernate.annotations.JdbcTypeCode;
import java.sql.Types;
import jakarta.persistence.*;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import lombok.Builder;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
import com.aigeo.common.enums.AiProvider;
import java.time.LocalDateTime;
import java.util.Date;
/**
* DifyApiConfig类是一个实体类,用于映射数据库中的ai_dify_api_configs表。
* 该类存储了Dify API的配置信息,包括提供商、API密钥、模型参数等。
*
* @author AIGEO Team
* @since 1.0.0
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "ai_dify_api_configs")
public class DifyApiConfig {
/**
* 主键ID,采用自增策略
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
/**
* 公司ID,用于区分不同公司的配置
*/
@Column(name = "company_id")
private Integer companyId;
/**
* AI服务提供商,使用枚举类型存储
*/
@Enumerated(EnumType.STRING)
private AiProvider provider;
/**
* 配置名称,不能为空
*/
@NotBlank(message = "配置名称不能为空")
@Column(nullable = false)
private String name;
/**
* API的基础URL
*/
@Column(name = "base_url")
private String baseUrl;
/**
* API密钥,用于身份验证
*/
@Column(name = "api_key")
private String apiKey;
/**
* 模型名称,指定使用的具体模型
*/
@Column(name = "model_name")
private String modelName;
/**
* 温度参数,控制输出的随机性
*/
private Double temperature;
/**
* Top P参数,控制词汇采样的概率范围
*/
@Column(name = "top_p")
private Double topP;
/**
* 最大令牌数,限制生成内容的长度
*/
@Column(name = "max_tokens")
private Integer maxTokens;
/**
* 请求头信息,以JSON格式存储
*/
@Column(name = "request_headers")
private String requestHeaders;
/**
* 是否激活该配置
*/
@Column(name = "is_active")
private Boolean isActive;
/**
* 创建时间,使用时间戳类型
*/
@Column(name = "created_at")
private LocalDateTime createdAt;
/**
* 更新时间,使用时间戳类型
*/
@Column(name = "updated_at")
private LocalDateTime updatedAt;
/**
* 创建时间设置,新建实体时自动设置
*/
@PrePersist
protected void onCreate() {
createdAt = LocalDateTime.now();
updatedAt = LocalDateTime.now();
if (isActive == null) {
isActive = true;
}
}
/**
* 更新时间设置,实体更新时自动设置
*/
@PreUpdate
protected void onUpdate() {
updatedAt = LocalDateTime.now();
}
}