feat(prompt): 添加用户提示词功能支持
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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 单个附件
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user