diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0dd1f515..74a2a5eb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -8,6 +8,7 @@
- 功能优化:优化聊天页面代码块样式,优化公式的解析。
- 功能优化:在绘图,视频相关 API 增加提示词长度的检查,防止提示词超出导致写入数据库失败。
- Bug 修复:优化 Redis 连接池配置,增加连接池超时时间,单核服务器报错 `redis: connection pool timeout`。
+- 功能优化:优化邮件验证码发送逻辑,更新邮件发送成功提示。
## v4.2.0
diff --git a/api/core/types/config.go b/api/core/types/config.go
index a5679bdc..4d791d80 100644
--- a/api/core/types/config.go
+++ b/api/core/types/config.go
@@ -150,7 +150,7 @@ type SystemConfig struct {
DallPower int `json:"dall_power,omitempty"` // DALL-E-3 绘图消耗算力
SunoPower int `json:"suno_power,omitempty"` // Suno 生成歌曲消耗算力
LumaPower int `json:"luma_power,omitempty"` // Luma 生成视频消耗算力
- KeLingPower int `json:"luma_power,omitempty"` // Luma 生成视频消耗算力
+ KeLingPower int `json:"keling_power,omitempty"` // 可灵生成视频消耗算力
AdvanceVoicePower int `json:"advance_voice_power,omitempty"` // 高级语音对话消耗算力
PromptPower int `json:"prompt_power,omitempty"` // 生成提示词消耗算力
@@ -170,5 +170,6 @@ type SystemConfig struct {
EnabledVerify bool `json:"enabled_verify"` // 是否启用验证码
EmailWhiteList []string `json:"email_white_list"` // 邮箱白名单列表
TranslateModelId int `json:"translate_model_id"` // 用来做提示词翻译的大模型 id
+ MaxFileSize int `json:"max_file_size"` // 最大文件大小,单位:MB
}
diff --git a/api/handler/admin/upload_handler.go b/api/handler/admin/upload_handler.go
index 64674329..56955c03 100644
--- a/api/handler/admin/upload_handler.go
+++ b/api/handler/admin/upload_handler.go
@@ -28,11 +28,21 @@ func NewUploadHandler(app *core.AppServer, db *gorm.DB, manager *oss.UploaderMan
}
func (h *UploadHandler) Upload(c *gin.Context) {
- file, err := h.uploaderManager.GetUploadHandler().PutFile(c, "file")
+ // 判断文件大小
+ file, err := c.FormFile("file")
if err != nil {
resp.ERROR(c, err.Error())
return
}
+
+ if h.App.SysConfig.MaxFileSize > 0 && file.Size > int64(h.App.SysConfig.MaxFileSize)*1024*1024 {
+ resp.ERROR(c, "文件大小超过限制")
+ return
+ }
+
+ file, err := h.uploaderManager.GetUploadHandler().PutFile(c, "file")
+ if err != nil {
+ resp.ERROR(c, err.Error())
userId := 0
res := h.DB.Create(&model.File{
UserId: userId,
diff --git a/api/service/video/video.go b/api/service/video/video.go
index e930b4dc..6e8cd3f6 100644
--- a/api/service/video/video.go
+++ b/api/service/video/video.go
@@ -9,7 +9,6 @@ package video
import (
"bytes"
- "encoding/base64"
"encoding/json"
"errors"
"fmt"
@@ -147,7 +146,6 @@ func (s *Service) Run() {
"err_msg": err.Error(),
"progress": service.FailTaskProgress,
"cover_url": "/images/failed.jpg",
- "prompt": task.Prompt,
}).Error
if err != nil {
logger.Errorf("update task with error: %v", err)
@@ -439,22 +437,10 @@ func (s *Service) LumaCreate(task types.VideoTask) (LumaRespVo, error) {
"user_prompt": task.Prompt,
"expand_prompt": params.PromptOptimize,
"loop": params.Loop,
+ "image_url": params.StartImgURL, // 图生视频
+ "image_end_url": params.EndImgURL, // 图生视频
}
- // 图生视频
- if params.StartImgURL != "" {
- // 下载图片,并转成 base64
- imageData, err := utils.DownloadImage(params.StartImgURL, "")
- if err == nil {
- reqBody["image_url"] = base64.StdEncoding.EncodeToString(imageData)
- }
- }
- if params.EndImgURL != "" {
- // 下载图片,并转成 base64
- imageData, err := utils.DownloadImage(params.EndImgURL, "")
- if err == nil {
- reqBody["image_end_url"] = base64.StdEncoding.EncodeToString(imageData)
- }
- }
+
var res LumaRespVo
apiURL := fmt.Sprintf("%s/luma/generations", apiKey.ApiURL)
logger.Debugf("API URL: %s, request body: %+v", apiURL, reqBody)
@@ -584,15 +570,8 @@ func (s *Service) KeLingCreate(task types.VideoTask) (KeLingRespVo, error) {
// 处理图生视频
if params.TaskType == "image2video" {
- // 下载图片,并转成 base64
- imageData, err := utils.DownloadImage(params.Image, "")
- if err == nil {
- payload["image"] = base64.StdEncoding.EncodeToString(imageData)
- }
- imageData, err = utils.DownloadImage(params.ImageTail, "")
- if err == nil {
- payload["image_tail"] = base64.StdEncoding.EncodeToString(imageData)
- }
+ payload["image"] = params.Image
+ payload["image_tail"] = params.ImageTail
}
jsonPayload, err := json.Marshal(payload)
diff --git a/web/src/views/KeLing.vue b/web/src/views/KeLing.vue
index 5c6ef1d8..c9759a4c 100644
--- a/web/src/views/KeLing.vue
+++ b/web/src/views/KeLing.vue
@@ -22,18 +22,10 @@