feat:增加推荐标签和自动标签的功能
This commit is contained in:
parent
7b8e56c0b4
commit
d34cef19c3
@ -85,6 +85,9 @@ func MediaRouter(r *gin.RouterGroup) {
|
|||||||
tag.POST("list", serviceCast.ListCastTags)
|
tag.POST("list", serviceCast.ListCastTags)
|
||||||
tag.POST("import-batch", serviceCast.ImportTagBatch)
|
tag.POST("import-batch", serviceCast.ImportTagBatch)
|
||||||
tag.POST("recalculate-quote-count", serviceCast.RecalculateCastTagQuoteCount)
|
tag.POST("recalculate-quote-count", serviceCast.RecalculateCastTagQuoteCount)
|
||||||
|
tag.POST("auto-hashtags", serviceCast.AutoHashtags)
|
||||||
|
tag.POST("recommend-hashtags", serviceCast.RecommendHashtags)
|
||||||
|
tag.POST("search-hashtags", serviceCast.SearchHashtags)
|
||||||
}
|
}
|
||||||
|
|
||||||
//AI 生图
|
//AI 生图
|
||||||
|
|||||||
@ -1,7 +1,10 @@
|
|||||||
package cast
|
package cast
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"fonchain-fiee/api/aryshare"
|
||||||
"fonchain-fiee/api/cast"
|
"fonchain-fiee/api/cast"
|
||||||
"fonchain-fiee/cmd/config"
|
"fonchain-fiee/cmd/config"
|
||||||
"fonchain-fiee/pkg/model/login"
|
"fonchain-fiee/pkg/model/login"
|
||||||
@ -169,3 +172,94 @@ func RecalculateCastTagQuoteCount(ctx *gin.Context) {
|
|||||||
service.Success(ctx, resp)
|
service.Success(ctx, resp)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AutoHashtags 自动生成标签
|
||||||
|
func AutoHashtags(ctx *gin.Context) {
|
||||||
|
var req *aryshare.AutoHashtagsRequest
|
||||||
|
var err error
|
||||||
|
if err = ctx.ShouldBind(&req); err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if req.Post == "" {
|
||||||
|
err = errors.New("帖子内容不能为空")
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// post 的长度不能超过1000个字符
|
||||||
|
if len(req.Post) > 1000 {
|
||||||
|
err = errors.New("帖子内容不能超过1000个字符")
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 调用 utils 提取标签
|
||||||
|
tags := utils.ExtractTags(req.Post)
|
||||||
|
fmt.Println("tags", tags)
|
||||||
|
// 根据这里的tags 的数量,来决定 req.Max 的值
|
||||||
|
// 确保标签总数是5
|
||||||
|
if len(tags) >= 5 {
|
||||||
|
// 直接返回当前帖子的标签已经有5个了
|
||||||
|
service.Success(ctx, map[string]interface{}{
|
||||||
|
"message": "当前帖子的标签已经有5个了",
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 确保标签总数是5
|
||||||
|
if len(tags) < 5 {
|
||||||
|
req.Max = int32(5 - len(tags))
|
||||||
|
}
|
||||||
|
if req.Position == "" {
|
||||||
|
// 未设置位置,默认使用末尾
|
||||||
|
req.Position = "end"
|
||||||
|
}
|
||||||
|
if req.Language == "" {
|
||||||
|
// 未设置语种,默认使用中文
|
||||||
|
req.Language = "zh"
|
||||||
|
}
|
||||||
|
// 调用 Ayrshare 的 AutoHashtags 接口
|
||||||
|
resp, err := service.AyrshareProvider.AutoHashtags(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
zap.L().Error("AutoHashtags failed", zap.Error(err))
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
service.Success(ctx, resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// RecommendHashtags 推荐标签
|
||||||
|
func RecommendHashtags(ctx *gin.Context) {
|
||||||
|
var req *aryshare.RecommendHashtagsRequest
|
||||||
|
var err error
|
||||||
|
if err = ctx.ShouldBind(&req); err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp, err := service.AyrshareProvider.RecommendHashtags(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
zap.L().Error("RecommendHashtags failed", zap.Error(err))
|
||||||
|
err = errors.New("推荐标签失败")
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
service.Success(ctx, resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// SearchHashtags 搜索标签
|
||||||
|
func SearchHashtags(ctx *gin.Context) {
|
||||||
|
var req *aryshare.SearchHashtagsRequest
|
||||||
|
var err error
|
||||||
|
if err = ctx.ShouldBind(&req); err != nil {
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
resp, err := service.AyrshareProvider.SearchHashtags(context.Background(), req)
|
||||||
|
if err != nil {
|
||||||
|
zap.L().Error("SearchHashtags failed", zap.Error(err))
|
||||||
|
service.Error(ctx, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
service.Success(ctx, resp)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user