mirror of
https://github.com/ArvinLovegood/go-stock.git
synced 2025-07-19 00:00:09 +08:00
- 新增 PromptTemplate 模型和相关 API - 实现 prompt 模板的添加、删除和查询功能 - 在前端添加 prompt 管理界面 - 修改聊天流 API,支持使用自定义 prompt
76 lines
2.1 KiB
Go
76 lines
2.1 KiB
Go
package data
|
|
|
|
import (
|
|
"go-stock/backend/db"
|
|
"go-stock/backend/logger"
|
|
"go-stock/backend/models"
|
|
)
|
|
|
|
type PromptTemplateApi struct {
|
|
}
|
|
|
|
func (t PromptTemplateApi) GetPromptTemplates(name string, promptType string) *[]models.PromptTemplate {
|
|
var result []models.PromptTemplate
|
|
if name != "" && promptType != "" {
|
|
db.Dao.Model(&models.PromptTemplate{}).Where("name=? and type=?", name, promptType).Find(&result)
|
|
}
|
|
if name != "" && promptType == "" {
|
|
db.Dao.Model(&models.PromptTemplate{}).Where("name=?", name).Find(&result)
|
|
}
|
|
if name == "" && promptType != "" {
|
|
db.Dao.Model(&models.PromptTemplate{}).Where("type=?", promptType).Find(&result)
|
|
}
|
|
if name == "" && promptType == "" {
|
|
db.Dao.Model(&models.PromptTemplate{}).Find(&result)
|
|
}
|
|
|
|
return &result
|
|
}
|
|
func (t PromptTemplateApi) AddPrompt(template models.PromptTemplate) string {
|
|
var tmp models.PromptTemplate
|
|
db.Dao.Model(&models.PromptTemplate{}).Where("id=?", template.ID).First(&tmp)
|
|
if tmp.ID == 0 {
|
|
err := db.Dao.Model(&models.PromptTemplate{}).Create(&models.PromptTemplate{
|
|
Content: template.Content,
|
|
Name: template.Name,
|
|
Type: template.Type,
|
|
}).Error
|
|
if err != nil {
|
|
return "添加失败"
|
|
} else {
|
|
return "添加成功"
|
|
}
|
|
} else {
|
|
err := db.Dao.Model(&models.PromptTemplate{}).Where("id=?", template.ID).Updates(template).Error
|
|
if err != nil {
|
|
return "更新失败"
|
|
} else {
|
|
return "更新成功"
|
|
}
|
|
}
|
|
}
|
|
|
|
func (t PromptTemplateApi) DelPrompt(Id uint) string {
|
|
template := &models.PromptTemplate{}
|
|
db.Dao.Model(template).Where("id=?", Id).Find(template)
|
|
if template.ID > 0 {
|
|
err := db.Dao.Model(template).Delete(template).Error
|
|
if err != nil {
|
|
return "删除失败"
|
|
} else {
|
|
return "删除成功"
|
|
}
|
|
}
|
|
return "模板信息不存在"
|
|
}
|
|
|
|
func (t PromptTemplateApi) GetPromptTemplateByID(id int) string {
|
|
prompt := &models.PromptTemplate{}
|
|
db.Dao.Model(&models.PromptTemplate{}).Where("id=?", id).First(prompt)
|
|
logger.SugaredLogger.Infof("GetPromptTemplateByID:%d %s", id, prompt.Content)
|
|
return prompt.Content
|
|
}
|
|
func NewPromptTemplateApi() *PromptTemplateApi {
|
|
return &PromptTemplateApi{}
|
|
}
|