|
@@ -17,7 +17,7 @@ import (
|
|
|
)
|
|
|
|
|
|
// QuestionController
|
|
|
-// @Description: 问题库管理
|
|
|
+// @Description: 提示词库管理
|
|
|
type QuestionController struct {
|
|
|
controllers.BaseAuthController
|
|
|
}
|
|
@@ -197,7 +197,7 @@ func (c *QuestionController) TitleList() {
|
|
|
// Detail
|
|
|
// @Title 列表
|
|
|
// @Description 列表
|
|
|
-// @Param QuestionId query int true "问题id"
|
|
|
+// @Param QuestionId query int true "提示词id"
|
|
|
// @Success 200 {object} []*rag.QuestionListListResp
|
|
|
// @router /question/detail [get]
|
|
|
func (c *QuestionController) Detail() {
|
|
@@ -215,8 +215,8 @@ func (c *QuestionController) Detail() {
|
|
|
}
|
|
|
questionId, _ := c.GetInt("QuestionId")
|
|
|
if questionId <= 0 {
|
|
|
- br.Msg = "问题id不能为空"
|
|
|
- br.ErrMsg = "问题id不能为空"
|
|
|
+ br.Msg = "提示词id不能为空"
|
|
|
+ br.ErrMsg = "提示词id不能为空"
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -236,8 +236,8 @@ func (c *QuestionController) Detail() {
|
|
|
}
|
|
|
|
|
|
// Add
|
|
|
-// @Title 新增问题
|
|
|
-// @Description 新增问题
|
|
|
+// @Title 新增提示词
|
|
|
+// @Description 新增提示词
|
|
|
// @Param request body request.AddQuestionReq true "type json string"
|
|
|
// @Success 200 Ret=200 新增成功
|
|
|
// @router /question/add [post]
|
|
@@ -256,14 +256,14 @@ func (c *QuestionController) Add() {
|
|
|
}
|
|
|
req.Content = strings.TrimSpace(req.Content)
|
|
|
if req.Content == "" {
|
|
|
- br.Msg = "请输入问题"
|
|
|
+ br.Msg = "请输入提示词"
|
|
|
br.IsSendEmail = false
|
|
|
return
|
|
|
}
|
|
|
//obj := rag.Question{}
|
|
|
//_, err = obj.GetByCondition(` AND question_content = ? `, []interface{}{req.Content})
|
|
|
//if err == nil {
|
|
|
- // br.Msg = "问题已入库,请不要重复添加"
|
|
|
+ // br.Msg = "提示词已入库,请不要重复添加"
|
|
|
// br.IsSendEmail = false
|
|
|
// return
|
|
|
//}
|
|
@@ -293,8 +293,8 @@ func (c *QuestionController) Add() {
|
|
|
}
|
|
|
|
|
|
// Edit
|
|
|
-// @Title 编辑问题
|
|
|
-// @Description 编辑问题
|
|
|
+// @Title 编辑提示词
|
|
|
+// @Description 编辑提示词
|
|
|
// @Param request body request.EditQuestionReq true "type json string"
|
|
|
// @Success 200 Ret=200 新增成功
|
|
|
// @router /question/edit [post]
|
|
@@ -312,13 +312,13 @@ func (c *QuestionController) Edit() {
|
|
|
return
|
|
|
}
|
|
|
if req.QuestionId <= 0 {
|
|
|
- br.Msg = "问题id不能为空"
|
|
|
+ br.Msg = "提示词id不能为空"
|
|
|
br.IsSendEmail = false
|
|
|
return
|
|
|
}
|
|
|
req.Content = strings.TrimSpace(req.Content)
|
|
|
if req.Content == "" {
|
|
|
- br.Msg = "请输入问题"
|
|
|
+ br.Msg = "请输入提示词"
|
|
|
br.IsSendEmail = false
|
|
|
return
|
|
|
}
|
|
@@ -327,9 +327,9 @@ func (c *QuestionController) Edit() {
|
|
|
item, err := obj.GetByID(req.QuestionId)
|
|
|
if err != nil {
|
|
|
br.Msg = "修改失败"
|
|
|
- br.ErrMsg = "修改失败,查找问题失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "修改失败,查找提示词失败,Err:" + err.Error()
|
|
|
if utils.IsErrNoRow(err) {
|
|
|
- br.Msg = "问题不存在"
|
|
|
+ br.Msg = "提示词不存在"
|
|
|
br.IsSendEmail = false
|
|
|
}
|
|
|
return
|
|
@@ -352,8 +352,8 @@ func (c *QuestionController) Edit() {
|
|
|
}
|
|
|
|
|
|
// Del
|
|
|
-// @Title 删除问题
|
|
|
-// @Description 删除问题
|
|
|
+// @Title 删除提示词
|
|
|
+// @Description 删除提示词
|
|
|
// @Param request body request.EditQuestionReq true "type json string"
|
|
|
// @Success 200 Ret=200 新增成功
|
|
|
// @router /question/del [post]
|
|
@@ -371,7 +371,7 @@ func (c *QuestionController) Del() {
|
|
|
return
|
|
|
}
|
|
|
if req.QuestionId <= 0 {
|
|
|
- br.Msg = "问题id不能为空"
|
|
|
+ br.Msg = "提示词id不能为空"
|
|
|
br.IsSendEmail = false
|
|
|
return
|
|
|
}
|
|
@@ -380,9 +380,9 @@ func (c *QuestionController) Del() {
|
|
|
item, err := obj.GetByID(req.QuestionId)
|
|
|
if err != nil {
|
|
|
br.Msg = "修改失败"
|
|
|
- br.ErrMsg = "修改失败,查找问题失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "修改失败,查找提示词失败,Err:" + err.Error()
|
|
|
if utils.IsErrNoRow(err) {
|
|
|
- br.Msg = "问题不存在"
|
|
|
+ br.Msg = "提示词不存在"
|
|
|
br.IsSendEmail = false
|
|
|
}
|
|
|
return
|
|
@@ -402,8 +402,189 @@ func (c *QuestionController) Del() {
|
|
|
br.Msg = `删除成功`
|
|
|
}
|
|
|
|
|
|
+// SetDefault
|
|
|
+// @Title 设置默认提示词
|
|
|
+// @Description 设置默认提示词
|
|
|
+// @Param request body request.EditQuestionReq true "type json string"
|
|
|
+// @Success 200 Ret=200 设置成功
|
|
|
+// @router /question/default/set [post]
|
|
|
+func (c *QuestionController) SetDefault() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ c.Data["json"] = br
|
|
|
+ c.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req request.EditQuestionReq
|
|
|
+ err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.QuestionId <= 0 {
|
|
|
+ br.Msg = "提示词id不能为空"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ obj := rag.Question{}
|
|
|
+ item, err := obj.GetByID(req.QuestionId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "修改失败"
|
|
|
+ br.ErrMsg = "修改失败,查找提示词失败,Err:" + err.Error()
|
|
|
+ if utils.IsErrNoRow(err) {
|
|
|
+ br.Msg = "提示词不存在"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if item.IsDefault == 1 {
|
|
|
+ br.Msg = "该提示词已经是默认提示词,无需设置"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item.IsDefault = 1
|
|
|
+ item.GenerateStatus = `undo`
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ err = item.Update([]string{"is_default", "generate_status", "modify_time"})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "设置失败"
|
|
|
+ br.ErrMsg = "设置失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = `设置成功`
|
|
|
+}
|
|
|
+
|
|
|
+// UnSetDefault
|
|
|
+// @Title 取消设置默认提示词
|
|
|
+// @Description 取消设置默认提示词
|
|
|
+// @Param request body request.EditQuestionReq true "type json string"
|
|
|
+// @Success 200 Ret=200 设置成功
|
|
|
+// @router /question/default/unset [post]
|
|
|
+func (c *QuestionController) UnSetDefault() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ c.Data["json"] = br
|
|
|
+ c.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req request.EditQuestionReq
|
|
|
+ err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.QuestionId <= 0 {
|
|
|
+ br.Msg = "提示词id不能为空"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ obj := rag.Question{}
|
|
|
+ item, err := obj.GetByID(req.QuestionId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "修改失败"
|
|
|
+ br.ErrMsg = "修改失败,查找提示词失败,Err:" + err.Error()
|
|
|
+ if utils.IsErrNoRow(err) {
|
|
|
+ br.Msg = "提示词不存在"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if item.IsDefault == 0 {
|
|
|
+ br.Msg = "该提示词不是默认提示词,无需取消"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item.IsDefault = 1
|
|
|
+ item.GenerateStatus = `undo`
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ err = item.Update([]string{"is_default", "generate_status", "modify_time"})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "取消设置失败"
|
|
|
+ br.ErrMsg = "取消设置失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 对应的提示词生成的摘要库和向量库内容也取消,同时需要加锁,不允许重复操作
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = `取消设置成功`
|
|
|
+}
|
|
|
+
|
|
|
+// GenerateAbstract
|
|
|
+// @Title 生成摘要
|
|
|
+// @Description 生成摘要
|
|
|
+// @Param request body request.EditQuestionReq true "type json string"
|
|
|
+// @Success 200 Ret=200 设置成功
|
|
|
+// @router /question/abstract/generate [post]
|
|
|
+func (c *QuestionController) GenerateAbstract() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ c.Data["json"] = br
|
|
|
+ c.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req request.EditQuestionReq
|
|
|
+ err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.QuestionId <= 0 {
|
|
|
+ br.Msg = "提示词id不能为空"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ obj := rag.Question{}
|
|
|
+ item, err := obj.GetByID(req.QuestionId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "修改失败"
|
|
|
+ br.ErrMsg = "修改失败,查找提示词失败,Err:" + err.Error()
|
|
|
+ if utils.IsErrNoRow(err) {
|
|
|
+ br.Msg = "提示词不存在"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if item.IsDefault != 1 {
|
|
|
+ br.Msg = "该提示词不是默认提示词,不允许生成"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if item.GenerateStatus != `undo` {
|
|
|
+ br.Msg = "该提示词已经生成过摘要,不允许重复生成"
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 标记摘要生成状态,避免重复生成
|
|
|
+ item.GenerateStatus = `done`
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+ err = item.Update([]string{"generate_status", "modify_time"})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "取消设置失败"
|
|
|
+ br.ErrMsg = "取消设置失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // todo 对应的提示词生成的摘要库和向量库内容也取消,同时需要加锁,不允许重复操作
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = `取消设置成功`
|
|
|
+}
|
|
|
+
|
|
|
//func init() {
|
|
|
-// // 问题加到es
|
|
|
+// // 提示词加到es
|
|
|
// {
|
|
|
// obj := rag.Question{}
|
|
|
// list, _ := obj.GetListByCondition(``, ` `, []interface{}{}, 0, 10000)
|