| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- 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()
- }
|