diff --git a/entity/friend.go b/entity/friend.go index 0cb57be1..04539615 100644 --- a/entity/friend.go +++ b/entity/friend.go @@ -15,6 +15,7 @@ type Friend struct { LastActive time.Time `json:"lastActive"` // 最后活跃时间 EnableAi bool `json:"enableAI" gorm:"type:tinyint(1) default 0 not null"` // 是否使用AI AiModel string `json:"aiModel"` // AI模型 + Prompt string `json:"prompt"` // 提示词 EnableChatRank bool `json:"enableChatRank" gorm:"type:tinyint(1) default 0 not null"` // 是否使用聊天排行 EnableWelcome bool `json:"enableWelcome" gorm:"type:tinyint(1) default 0 not null"` // 是否启用迎新 EnableSummary bool `json:"enableSummary" gorm:"type:tinyint(1) default 0 not null"` // 是否启用总结 diff --git a/plugin/plugins/ai.go b/plugin/plugins/ai.go index 2e6bfe01..dec8b5e3 100644 --- a/plugin/plugins/ai.go +++ b/plugin/plugins/ai.go @@ -46,13 +46,19 @@ func AI(m *plugin.MessageContext) { m.Content = strings.Replace(m.Content, matches[0], "", 1) } + // 处理预设角色,默认是配置文件里的,如果数据库配置不为空,则使用数据库配置 + prompt := config.Conf.Ai.Personality + if friendInfo.Prompt != "" { + prompt = friendInfo.Prompt + } + // 组装消息体 messages := make([]openai.ChatCompletionMessage, 0) if config.Conf.Ai.Personality != "" { // 填充人设 messages = append(messages, openai.ChatCompletionMessage{ Role: openai.ChatMessageRoleSystem, - Content: config.Conf.Ai.Personality, + Content: prompt, }) }