feat(prompt): 添加用户提示词功能支持

This commit is contained in:
2026-06-18 15:34:53 +08:00
parent 99514e9e84
commit d304d0ee4a
3 changed files with 7 additions and 2 deletions

View File

@@ -140,11 +140,14 @@ func fillEmptyInPlace(m map[string]any, value string) {
// ======================== 系统提示词合并 ======================== // ======================== 系统提示词合并 ========================
// MergeSystemPrompt 将系统提示词和技能内容拼接到 system role 的 content 中 // MergeSystemPrompt 将系统提示词和技能内容拼接到 system role 的 content 中
func MergeSystemPrompt(messages map[string]any, prompt, skills string, requestMapping map[string]any) map[string]any { func MergeSystemPrompt(messages map[string]any, prompt, skills, userPrompt string, requestMapping map[string]any) map[string]any {
var parts []string var parts []string
if prompt != "" { if prompt != "" {
parts = append(parts, prompt) parts = append(parts, prompt)
} }
if userPrompt != "" {
parts = append(parts, userPrompt)
}
if skills != "" { if skills != "" {
parts = append(parts, skills) parts = append(parts, skills)
} }

View File

@@ -14,6 +14,7 @@ type ComposeMessagesReq struct {
UserForm []map[string]any `p:"userForm" json:"userForm" dc:"用户表单userForm 下所有字段都作为用户提示词来源;若与 form 含义接近则严格覆盖系统字段"` UserForm []map[string]any `p:"userForm" json:"userForm" dc:"用户表单userForm 下所有字段都作为用户提示词来源;若与 form 含义接近则严格覆盖系统字段"`
Consult []ConsultItem `json:"consult" dc:"附件列表(图片/视频/音频)"` Consult []ConsultItem `json:"consult" dc:"附件列表(图片/视频/音频)"`
SkillName string `p:"skillName" json:"skillName" dc:"技能名称"` SkillName string `p:"skillName" json:"skillName" dc:"技能名称"`
UserPrompt string `p:"userPrompt" json:"userPrompt" dc:"用户提示词"`
} }
// ConsultItem 单个附件 // ConsultItem 单个附件

View File

@@ -235,7 +235,8 @@ func handleCallbackSuccess(ctx context.Context, req *dto.CallbackReq, composeTas
// 4) 合并系统提示词 // 4) 合并系统提示词
systemPrompt := util.GetModelPrompt(ctx, model.ModelType) systemPrompt := util.GetModelPrompt(ctx, model.ModelType)
skillContent := SkillMdContent(ctx, composeTask.SkillName) skillContent := SkillMdContent(ctx, composeTask.SkillName)
messages = util.MergeSystemPrompt(messages, systemPrompt, skillContent, model.RequestMapping) userPrompt := composeTask.RequestPayload["userPrompt"].(string)
messages = util.MergeSystemPrompt(messages, systemPrompt, skillContent, userPrompt, model.RequestMapping)
// 5) 合并附加结构 // 5) 合并附加结构
messages = util.MergeConsult(composeTask.RequestPayload, messages, model.ExtendMapping) messages = util.MergeConsult(composeTask.RequestPayload, messages, model.ExtendMapping)