MCPcopy Create free account
hub / github.com/53AI/53AIHub / GetPrompts

Function GetPrompts

api/controller/prompt.go:84–180  ·  view source on GitHub ↗

GetPrompts 获取提示词列表 @Summary 获取提示词列表 @Description 获取提示词列表,支持分页、关键词搜索、按分组筛选、按分组类型筛选 @Tags Prompt @Produce json @Param keyword query string false "关键词搜索" @Param group_id query string false "分组ID,多个ID用逗号分隔,为空时查询全部" @Param group_type query int false "分组类型筛选(5=系统提示,6=个人提示等)" @Param offset query int false

(c *gin.Context)

Source from the content-addressed store, hash-verified

82// @Router /api/prompts [get]
83// @Router /api/prompts/admin [get]
84func GetPrompts(c *gin.Context) {
85 var promptListRequest PromptListRequest
86 if err := c.ShouldBindQuery(&promptListRequest); err != nil {
87 c.JSON(http.StatusBadRequest, model.ParamError.ToResponse(err))
88 return
89 }
90
91 // 设置默认分页大小为10
92 if promptListRequest.Limit == 0 {
93 promptListRequest.Limit = 10
94 }
95
96 var userId int64
97 eid := config.GetEID(c)
98 user, err := model.GetLoginUser(c)
99 if err == nil {
100 userId = user.UserID
101 eid = user.Eid
102 }
103
104 status := -1
105 if !strings.Contains(c.Request.URL.Path, "/admin") {
106 status = model.PromptStatusNormal
107 }
108
109 // 处理 groupType 参数
110 // 注意:如果同时提供 groupType 和 GroupId,groupType 优先级更高
111 if promptListRequest.GroupType > 0 {
112 firstGroup, err := model.GetFirstGroupByEid(eid, promptListRequest.GroupType)
113 if err == nil {
114 // 成功找到分组,使用其ID
115 promptListRequest.GroupId = strconv.FormatInt(firstGroup.GroupId, 10)
116 } else {
117 // 如果没有找到对应类型的分组(gorm.ErrRecordNotFound),
118 // 设置 GroupId 为不存在的值以返回空结果
119 promptListRequest.GroupId = ""
120 }
121 } else if promptListRequest.GroupId == "" {
122 // 如果没有提供 GroupId,则获取所有系统提示词分组的 ID
123 systemGroups, err := model.GetGroupsByEid(eid, model.SYSTEM_PROMPT_TYPE)
124 if err == nil && len(systemGroups) > 0 {
125 var groupIds []string
126 for _, group := range systemGroups {
127 groupIds = append(groupIds, strconv.FormatInt(group.GroupId, 10))
128 }
129 promptListRequest.GroupId = strings.Join(groupIds, ",")
130 }
131 }
132
133 // 获取提示词列表
134 var total int64
135 var prompts []*model.Prompt
136
137 // 可以查看所有提示词
138 total, prompts, err = model.GetPromptList(
139 eid,
140 promptListRequest.Keyword,
141 promptListRequest.GroupId,

Callers

nothing calls this directly

Calls 4

ToResponseMethod · 0.80
GetEIDMethod · 0.80
LoadPromptGroupsMethod · 0.80
LoadIsLikedMethod · 0.80

Tested by

no test coverage detected