218
server/api/v1/app/ai_config.go
Normal file
218
server/api/v1/app/ai_config.go
Normal file
@@ -0,0 +1,218 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
"git.echol.cn/loser/st/server/global"
|
||||
"git.echol.cn/loser/st/server/model/app/request"
|
||||
commonResponse "git.echol.cn/loser/st/server/model/common/response"
|
||||
"git.echol.cn/loser/st/server/service"
|
||||
"github.com/gin-gonic/gin"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
type AIConfigApi struct{}
|
||||
|
||||
// CreateAIConfig
|
||||
// @Tags AppAIConfig
|
||||
// @Summary 创建AI配置
|
||||
// @Produce application/json
|
||||
// @Param data body request.CreateAIConfigRequest true "AI配置信息"
|
||||
// @Success 200 {object} commonResponse.Response{data=response.AIConfigResponse} "创建成功"
|
||||
// @Router /app/ai-config [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (a *AIConfigApi) CreateAIConfig(c *gin.Context) {
|
||||
var req request.CreateAIConfigRequest
|
||||
err := c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := service.ServiceGroupApp.AppServiceGroup.AIConfigService.CreateAIConfig(&req)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("创建AI配置失败", zap.Error(err))
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
commonResponse.OkWithData(resp, c)
|
||||
}
|
||||
|
||||
// GetAIConfigList
|
||||
// @Tags AppAIConfig
|
||||
// @Summary 获取AI配置列表
|
||||
// @Produce application/json
|
||||
// @Success 200 {object} commonResponse.Response{data=response.AIConfigListResponse} "获取成功"
|
||||
// @Router /app/ai-config [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (a *AIConfigApi) GetAIConfigList(c *gin.Context) {
|
||||
resp, err := service.ServiceGroupApp.AppServiceGroup.AIConfigService.GetAIConfigList()
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("获取AI配置列表失败", zap.Error(err))
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
commonResponse.OkWithData(resp, c)
|
||||
}
|
||||
|
||||
// UpdateAIConfig
|
||||
// @Tags AppAIConfig
|
||||
// @Summary 更新AI配置
|
||||
// @Produce application/json
|
||||
// @Param id path int true "配置ID"
|
||||
// @Param data body request.UpdateAIConfigRequest true "AI配置信息"
|
||||
// @Success 200 {object} commonResponse.Response{msg=string} "更新成功"
|
||||
// @Router /app/ai-config/:id [put]
|
||||
// @Security ApiKeyAuth
|
||||
func (a *AIConfigApi) UpdateAIConfig(c *gin.Context) {
|
||||
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||
if err != nil {
|
||||
commonResponse.FailWithMessage("无效的配置ID", c)
|
||||
return
|
||||
}
|
||||
|
||||
var req request.UpdateAIConfigRequest
|
||||
err = c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
err = service.ServiceGroupApp.AppServiceGroup.AIConfigService.UpdateAIConfig(uint(id), &req)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("更新AI配置失败", zap.Error(err))
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
commonResponse.OkWithMessage("更新成功", c)
|
||||
}
|
||||
|
||||
// DeleteAIConfig
|
||||
// @Tags AppAIConfig
|
||||
// @Summary 删除AI配置
|
||||
// @Produce application/json
|
||||
// @Param id path int true "配置ID"
|
||||
// @Success 200 {object} commonResponse.Response{msg=string} "删除成功"
|
||||
// @Router /app/ai-config/:id [delete]
|
||||
// @Security ApiKeyAuth
|
||||
func (a *AIConfigApi) DeleteAIConfig(c *gin.Context) {
|
||||
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||
if err != nil {
|
||||
commonResponse.FailWithMessage("无效的配置ID", c)
|
||||
return
|
||||
}
|
||||
|
||||
err = service.ServiceGroupApp.AppServiceGroup.AIConfigService.DeleteAIConfig(uint(id))
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("删除AI配置失败", zap.Error(err))
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
commonResponse.OkWithMessage("删除成功", c)
|
||||
}
|
||||
|
||||
// GetModels
|
||||
// @Tags AppAIConfig
|
||||
// @Summary 获取可用模型列表
|
||||
// @Produce application/json
|
||||
// @Param data body request.GetModelsRequest true "获取模型请求"
|
||||
// @Success 200 {object} commonResponse.Response{data=response.GetModelsResponse} "获取成功"
|
||||
// @Router /app/ai-config/models [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (a *AIConfigApi) GetModels(c *gin.Context) {
|
||||
var req request.GetModelsRequest
|
||||
err := c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := service.ServiceGroupApp.AppServiceGroup.AIConfigService.GetModels(&req)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("获取模型列表失败", zap.Error(err))
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
commonResponse.OkWithData(resp, c)
|
||||
}
|
||||
|
||||
// GetModelsByID
|
||||
// @Tags AppAIConfig
|
||||
// @Summary 通过配置ID获取可用模型列表
|
||||
// @Produce application/json
|
||||
// @Param id path int true "配置ID"
|
||||
// @Success 200 {object} commonResponse.Response{data=response.GetModelsResponse} "获取成功"
|
||||
// @Router /app/ai-config/:id/models [get]
|
||||
// @Security ApiKeyAuth
|
||||
func (a *AIConfigApi) GetModelsByID(c *gin.Context) {
|
||||
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||
if err != nil {
|
||||
commonResponse.FailWithMessage("无效的配置ID", c)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := service.ServiceGroupApp.AppServiceGroup.AIConfigService.GetModelsByID(uint(id))
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("获取模型列表失败", zap.Error(err))
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
commonResponse.OkWithData(resp, c)
|
||||
}
|
||||
|
||||
// TestAIConfig
|
||||
// @Tags AppAIConfig
|
||||
// @Summary 测试AI配置
|
||||
// @Produce application/json
|
||||
// @Param data body request.TestAIConfigRequest true "测试配置请求"
|
||||
// @Success 200 {object} commonResponse.Response{data=response.TestAIConfigResponse} "测试完成"
|
||||
// @Router /app/ai-config/test [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (a *AIConfigApi) TestAIConfig(c *gin.Context) {
|
||||
var req request.TestAIConfigRequest
|
||||
err := c.ShouldBindJSON(&req)
|
||||
if err != nil {
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := service.ServiceGroupApp.AppServiceGroup.AIConfigService.TestAIConfig(&req)
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("测试AI配置失败", zap.Error(err))
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
commonResponse.OkWithData(resp, c)
|
||||
}
|
||||
|
||||
// TestAIConfigByID
|
||||
// @Tags AppAIConfig
|
||||
// @Summary 通过ID测试AI配置
|
||||
// @Produce application/json
|
||||
// @Param id path int true "配置ID"
|
||||
// @Success 200 {object} commonResponse.Response{data=response.TestAIConfigResponse} "测试完成"
|
||||
// @Router /app/ai-config/:id/test [post]
|
||||
// @Security ApiKeyAuth
|
||||
func (a *AIConfigApi) TestAIConfigByID(c *gin.Context) {
|
||||
id, err := strconv.ParseUint(c.Param("id"), 10, 32)
|
||||
if err != nil {
|
||||
commonResponse.FailWithMessage("无效的配置ID", c)
|
||||
return
|
||||
}
|
||||
|
||||
resp, err := service.ServiceGroupApp.AppServiceGroup.AIConfigService.TestAIConfigByID(uint(id))
|
||||
if err != nil {
|
||||
global.GVA_LOG.Error("测试AI配置失败", zap.Error(err))
|
||||
commonResponse.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
|
||||
commonResponse.OkWithData(resp, c)
|
||||
}
|
||||
Reference in New Issue
Block a user