diff --git a/common/util/mapping.go b/common/util/mapping.go index 860c0b7..821e183 100644 --- a/common/util/mapping.go +++ b/common/util/mapping.go @@ -140,11 +140,14 @@ func fillEmptyInPlace(m map[string]any, value string) { // ======================== 系统提示词合并 ======================== // 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 if prompt != "" { parts = append(parts, prompt) } + if userPrompt != "" { + parts = append(parts, userPrompt) + } if skills != "" { parts = append(parts, skills) } diff --git a/model/dto/prompt_compose_dto.go b/model/dto/prompt_compose_dto.go index 731fe24..1754838 100644 --- a/model/dto/prompt_compose_dto.go +++ b/model/dto/prompt_compose_dto.go @@ -14,6 +14,7 @@ type ComposeMessagesReq struct { UserForm []map[string]any `p:"userForm" json:"userForm" dc:"用户表单:userForm 下所有字段都作为用户提示词来源;若与 form 含义接近则严格覆盖系统字段"` Consult []ConsultItem `json:"consult" dc:"附件列表(图片/视频/音频)"` SkillName string `p:"skillName" json:"skillName" dc:"技能名称"` + UserPrompt string `p:"userPrompt" json:"userPrompt" dc:"用户提示词"` } // ConsultItem 单个附件 diff --git a/service/prompt/prompt_compose_service.go b/service/prompt/prompt_compose_service.go index 43f852c..2d62162 100644 --- a/service/prompt/prompt_compose_service.go +++ b/service/prompt/prompt_compose_service.go @@ -235,7 +235,8 @@ func handleCallbackSuccess(ctx context.Context, req *dto.CallbackReq, composeTas // 4) 合并系统提示词 systemPrompt := util.GetModelPrompt(ctx, model.ModelType) 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) 合并附加结构 messages = util.MergeConsult(composeTask.RequestPayload, messages, model.ExtendMapping)