mirror of
https://gitee.com/blackfox/geekai.git
synced 2025-12-06 16:58:24 +08:00
49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package handler
|
|
|
|
import (
|
|
"chatplus/core"
|
|
"chatplus/core/types"
|
|
"chatplus/store/model"
|
|
"chatplus/store/vo"
|
|
"chatplus/utils"
|
|
"chatplus/utils/resp"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
// MarkMapHandler 生成思维导图
|
|
type MarkMapHandler struct {
|
|
BaseHandler
|
|
}
|
|
|
|
func NewMarkMapHandler(app *core.AppServer, db *gorm.DB) *MarkMapHandler {
|
|
return &MarkMapHandler{BaseHandler: BaseHandler{App: app, DB: db}}
|
|
}
|
|
|
|
// GetModel get the chat model for generating Markdown text
|
|
func (h *MarkMapHandler) GetModel(c *gin.Context) {
|
|
modelId := h.App.SysConfig.XMindModelId
|
|
session := h.DB.Session(&gorm.Session{}).Where("enabled", true)
|
|
if modelId > 0 {
|
|
session = session.Where("id", modelId)
|
|
} else {
|
|
session = session.Where("platform", types.OpenAI)
|
|
}
|
|
var chatModel model.ChatModel
|
|
res := session.First(&chatModel)
|
|
if res.Error != nil {
|
|
resp.ERROR(c, "No available AI model")
|
|
return
|
|
}
|
|
|
|
var modelVo vo.ChatModel
|
|
err := utils.CopyObject(chatModel, &modelVo)
|
|
if err != nil {
|
|
resp.ERROR(c, "error with copy object: "+err.Error())
|
|
return
|
|
}
|
|
|
|
resp.SUCCESS(c, modelVo)
|
|
}
|