forked from lxh/go-wxhelper
✨ 完善AI助手相关接口
This commit is contained in:
parent
63c8c3a292
commit
9b3f1bb488
25
api/admin/aiassistant/save.go
Normal file
25
api/admin/aiassistant/save.go
Normal file
@ -0,0 +1,25 @@
|
||||
package aiassistant
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"wechat-robot/model/param/aiassistant"
|
||||
"wechat-robot/pkg/response"
|
||||
aiAssistantService "wechat-robot/service/aiassistant"
|
||||
)
|
||||
|
||||
// Save
|
||||
// @description: 保存AI助手
|
||||
// @param ctx
|
||||
func Save(ctx *gin.Context) {
|
||||
var p aiassistant.Save
|
||||
if err := ctx.ShouldBind(&p); err != nil {
|
||||
response.New(ctx).SetMsg("参数错误").SetError(err).Fail()
|
||||
return
|
||||
}
|
||||
// 保存数据
|
||||
if err := aiAssistantService.Save(p); err != nil {
|
||||
response.New(ctx).SetMsg("保存失败").SetError(err).Fail()
|
||||
return
|
||||
}
|
||||
response.New(ctx).SetMsg("保存成功").Success()
|
||||
}
|
26
api/admin/aiassistant/select.go
Normal file
26
api/admin/aiassistant/select.go
Normal file
@ -0,0 +1,26 @@
|
||||
package aiassistant
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"wechat-robot/model/param/aiassistant"
|
||||
"wechat-robot/pkg/response"
|
||||
aiAssistantService "wechat-robot/service/aiassistant"
|
||||
)
|
||||
|
||||
// GetAll
|
||||
// @description: 获取所有AI助手
|
||||
// @param ctx
|
||||
func GetAll(ctx *gin.Context) {
|
||||
var p aiassistant.GetAll
|
||||
if err := ctx.ShouldBind(&p); err != nil {
|
||||
response.New(ctx).SetMsg("参数错误").SetError(err).Fail()
|
||||
return
|
||||
}
|
||||
|
||||
records, err := aiAssistantService.GetAll(p)
|
||||
if err != nil {
|
||||
response.New(ctx).SetMsg("获取失败").SetError(err).Fail()
|
||||
return
|
||||
}
|
||||
response.New(ctx).SetData(records).Success()
|
||||
}
|
@ -8,7 +8,8 @@ type AiAssistant struct {
|
||||
types.BaseDbModel
|
||||
Name string `json:"name" gorm:"type:varchar(10);not null;comment:'名称'"`
|
||||
Personality string `json:"personality" gorm:"type:varchar(999);not null;comment:'人设'"`
|
||||
Model string `json:"setting" gorm:"type:varchar(50);not null;comment:'使用的模型'"`
|
||||
Model string `json:"model" gorm:"type:varchar(50);not null;comment:'使用的模型'"`
|
||||
Enable bool `json:"enable" gorm:"type:tinyint(1);not null;default:1;comment:'是否启用'"`
|
||||
}
|
||||
|
||||
// TableName
|
||||
|
11
model/param/aiassistant/save.go
Normal file
11
model/param/aiassistant/save.go
Normal file
@ -0,0 +1,11 @@
|
||||
package aiassistant
|
||||
|
||||
// Save
|
||||
// @description: 保存AI助手入参
|
||||
type Save struct {
|
||||
Id string `json:"id" form:"id"` // Id
|
||||
Name string `json:"name" form:"name" binding:"required"` // 名称
|
||||
Personality string `json:"personality" form:"personality" binding:"required"` // 人设
|
||||
Model string `json:"model" form:"model" binding:"required"` // 使用的模型
|
||||
Enable bool `json:"enable" form:"enable"` // 是否启用
|
||||
}
|
7
model/param/aiassistant/select.go
Normal file
7
model/param/aiassistant/select.go
Normal file
@ -0,0 +1,7 @@
|
||||
package aiassistant
|
||||
|
||||
// GetAll
|
||||
// @description: 获取所有AI助手
|
||||
type GetAll struct {
|
||||
Keyword string `json:"keyword" form:"keyword"` // 关键字
|
||||
}
|
14
router/admin/aiassistant.go
Normal file
14
router/admin/aiassistant.go
Normal file
@ -0,0 +1,14 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
aiassistantApi "wechat-robot/api/admin/aiassistant"
|
||||
)
|
||||
|
||||
// aiAssistant
|
||||
// @description: AI助手相关
|
||||
// @param g
|
||||
func aiAssistant(g *gin.RouterGroup) {
|
||||
g.POST("", aiassistantApi.Save) // 保存AI助手
|
||||
g.GET("", aiassistantApi.GetAll) // 获取所有AI助手
|
||||
}
|
@ -13,4 +13,5 @@ func InitRoute(g *gin.RouterGroup) {
|
||||
|
||||
g.Use(middleware.AuthorizeToken())
|
||||
menu(g.Group("/menu")) // 菜单相关
|
||||
aiAssistant(g.Group("/ai-assistant")) // AI助手相关
|
||||
}
|
||||
|
32
service/aiassistant/save.go
Normal file
32
service/aiassistant/save.go
Normal file
@ -0,0 +1,32 @@
|
||||
package aiassistant
|
||||
|
||||
import (
|
||||
"wechat-robot/internal/database"
|
||||
"wechat-robot/model/entity"
|
||||
"wechat-robot/model/param/aiassistant"
|
||||
)
|
||||
|
||||
// Save
|
||||
// @description: 保存AI助手
|
||||
// @param p
|
||||
// @return err
|
||||
func Save(p aiassistant.Save) (err error) {
|
||||
if p.Id == "" {
|
||||
// 新增
|
||||
var ent entity.AiAssistant
|
||||
ent.Name = p.Name
|
||||
ent.Personality = p.Personality
|
||||
ent.Model = p.Model
|
||||
ent.Enable = p.Enable
|
||||
err = database.Client.Create(&ent).Error
|
||||
} else {
|
||||
// 修改
|
||||
var pm = make(map[string]any)
|
||||
pm["name"] = p.Name
|
||||
pm["personality"] = p.Personality
|
||||
pm["model"] = p.Model
|
||||
pm["enable"] = p.Enable
|
||||
err = database.Client.Model(&entity.AiAssistant{}).Where("id = ?", p.Id).Updates(pm).Error
|
||||
}
|
||||
return
|
||||
}
|
23
service/aiassistant/select.go
Normal file
23
service/aiassistant/select.go
Normal file
@ -0,0 +1,23 @@
|
||||
package aiassistant
|
||||
|
||||
import (
|
||||
"wechat-robot/internal/database"
|
||||
"wechat-robot/model/entity"
|
||||
param "wechat-robot/model/param/aiassistant"
|
||||
)
|
||||
|
||||
// GetAll
|
||||
// @description: 获取所有AI助手
|
||||
// @param p param.GetAll 查询参数
|
||||
// @return records []entity.AiAssistant 查询结果
|
||||
// @return err error 查询错误
|
||||
func GetAll(p param.GetAll) (records []entity.AiAssistant, err error) {
|
||||
tx := database.Client.Order("created_at DESC")
|
||||
if p.Keyword != "" {
|
||||
// 关键字模糊匹配,从名称和人设中找
|
||||
tx.Where("name LIKE ? OR personality LIKE ?", "%"+p.Keyword+"%", "%"+p.Keyword+"%")
|
||||
}
|
||||
|
||||
err = tx.Find(&records).Error
|
||||
return
|
||||
}
|
Loading…
Reference in New Issue
Block a user