mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-09-18 01:06:39 +08:00
feat: save prompt in power log for dalle-3
This commit is contained in:
parent
41ae411f9b
commit
7060edb3e5
@ -528,13 +528,15 @@ func (h *ChatHandler) subUserPower(userVo vo.User, session *types.ChatSession, p
|
|||||||
res := h.DB.Model(&model.User{}).Where("id = ?", userVo.Id).UpdateColumn("power", gorm.Expr("power - ?", power))
|
res := h.DB.Model(&model.User{}).Where("id = ?", userVo.Id).UpdateColumn("power", gorm.Expr("power - ?", power))
|
||||||
if res.Error == nil {
|
if res.Error == nil {
|
||||||
// 记录算力消费日志
|
// 记录算力消费日志
|
||||||
|
var u model.User
|
||||||
|
h.DB.Where("id", userVo.Id).First(&u)
|
||||||
h.DB.Create(&model.PowerLog{
|
h.DB.Create(&model.PowerLog{
|
||||||
UserId: userVo.Id,
|
UserId: userVo.Id,
|
||||||
Username: userVo.Username,
|
Username: userVo.Username,
|
||||||
Type: types.PowerConsume,
|
Type: types.PowerConsume,
|
||||||
Amount: power,
|
Amount: power,
|
||||||
Mark: types.PowerSub,
|
Mark: types.PowerSub,
|
||||||
Balance: userVo.Power - power,
|
Balance: u.Power,
|
||||||
Model: session.Model.Value,
|
Model: session.Model.Value,
|
||||||
Remark: fmt.Sprintf("模型名称:%s, 提问长度:%d,回复长度:%d", session.Model.Name, promptTokens, replyTokens),
|
Remark: fmt.Sprintf("模型名称:%s, 提问长度:%d,回复长度:%d", session.Model.Name, promptTokens, replyTokens),
|
||||||
CreatedAt: time.Now(),
|
CreatedAt: time.Now(),
|
||||||
|
@ -252,18 +252,20 @@ func (h *FunctionHandler) Dall3(c *gin.Context) {
|
|||||||
|
|
||||||
content := fmt.Sprintf("下面是根据您的描述创作的图片,它描绘了 【%s】 的场景。 \n\n\n", prompt, imgURL)
|
content := fmt.Sprintf("下面是根据您的描述创作的图片,它描绘了 【%s】 的场景。 \n\n\n", prompt, imgURL)
|
||||||
// 更新用户算力
|
// 更新用户算力
|
||||||
tx = h.DB.Model(&model.User{}).Where("id = ?", user.Id).UpdateColumn("power", gorm.Expr("power - ?", h.App.SysConfig.DallPower))
|
tx = h.DB.Model(&model.User{}).Where("id", user.Id).UpdateColumn("power", gorm.Expr("power - ?", h.App.SysConfig.DallPower))
|
||||||
// 记录算力变化日志
|
// 记录算力变化日志
|
||||||
if tx.Error == nil && tx.RowsAffected > 0 {
|
if tx.Error == nil && tx.RowsAffected > 0 {
|
||||||
|
var u model.User
|
||||||
|
h.DB.Where("id", user.Id).First(&u)
|
||||||
h.DB.Create(&model.PowerLog{
|
h.DB.Create(&model.PowerLog{
|
||||||
UserId: user.Id,
|
UserId: user.Id,
|
||||||
Username: user.Username,
|
Username: user.Username,
|
||||||
Type: types.PowerConsume,
|
Type: types.PowerConsume,
|
||||||
Amount: h.App.SysConfig.DallPower,
|
Amount: h.App.SysConfig.DallPower,
|
||||||
Balance: user.Power - h.App.SysConfig.DallPower,
|
Balance: u.Power,
|
||||||
Mark: types.PowerSub,
|
Mark: types.PowerSub,
|
||||||
Model: "dall-e-3",
|
Model: "dall-e-3",
|
||||||
Remark: "",
|
Remark: fmt.Sprintf("绘画提示词:%s", utils.CutWords(prompt, 10)),
|
||||||
CreatedAt: time.Now(),
|
CreatedAt: time.Now(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"strconv"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"golang.org/x/crypto/sha3"
|
"golang.org/x/crypto/sha3"
|
||||||
@ -94,10 +94,14 @@ func InterfaceToString(value interface{}) string {
|
|||||||
return JsonEncode(value)
|
return JsonEncode(value)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Str2Float(str string) float64 {
|
func CutWords(str string, num int) string {
|
||||||
num, err := strconv.ParseFloat(str, 64)
|
// 按空格分割字符串为单词切片
|
||||||
if err != nil {
|
words := strings.Fields(str)
|
||||||
return 0
|
|
||||||
|
// 如果单词数量超过指定数量,则裁剪单词;否则保持原样
|
||||||
|
if len(words) > num {
|
||||||
|
return strings.Join(words[:num], " ") + " ..."
|
||||||
|
} else {
|
||||||
|
return str
|
||||||
}
|
}
|
||||||
return num
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user