package controllers import ( "encoding/json" "shudao-chat-go/utils" "github.com/beego/beego/v2/server/web" ) type PromptController struct { web.Controller } // BuildExamPrompt handles frontend requests to build exam prompts on the server func (c *PromptController) BuildExamPrompt() { var req utils.ExamPromptRequest if err := json.Unmarshal(c.Ctx.Input.RequestBody, &req); err != nil { c.Data["json"] = map[string]interface{}{ "statusCode": 400, "msg": "JSON解析失败: " + err.Error(), } c.ServeJSON() return } prompt, err := utils.BuildExamPrompt(req) if err != nil { c.Data["json"] = map[string]interface{}{ "statusCode": 500, "msg": "生成提示词失败: " + err.Error(), } c.ServeJSON() return } c.Data["json"] = map[string]interface{}{ "statusCode": 200, "msg": "success", "data": map[string]string{ "prompt": prompt, }, } c.ServeJSON() } // BuildSingleQuestionPrompt handles requests for regenerating a single question prompt func (c *PromptController) BuildSingleQuestionPrompt() { var req utils.SingleQuestionPromptRequest if err := json.Unmarshal(c.Ctx.Input.RequestBody, &req); err != nil { c.Data["json"] = map[string]interface{}{ "statusCode": 400, "msg": "JSON解析失败: " + err.Error(), } c.ServeJSON() return } prompt, err := utils.BuildSingleQuestionPrompt(req) if err != nil { c.Data["json"] = map[string]interface{}{ "statusCode": 500, "msg": "生成提示词失败: " + err.Error(), } c.ServeJSON() return } c.Data["json"] = map[string]interface{}{ "statusCode": 200, "msg": "success", "data": map[string]string{ "prompt": prompt, }, } c.ServeJSON() }