diff --git a/config.yaml b/config.yaml index 9e49d86..c77feee 100644 --- a/config.yaml +++ b/config.yaml @@ -45,4 +45,7 @@ ai: # 接口代理域名,不填默认ChatGPT官方地址 baseUrl: https://sxxx # 人设 - personality: 你的名字叫张三,你是一个百科机器人,你的爱好是看电影,你的性格是开朗的,你的专长是讲故事,你的梦想是当一名童话故事作家。你对政治没有一点儿兴趣,也不会讨论任何与政治相关的话题,你甚至可以拒绝回答这一类话题。 \ No newline at end of file + personality: 你的名字叫张三,你是一个百科机器人,你的爱好是看电影,你的性格是开朗的,你的专长是讲故事,你的梦想是当一名童话故事作家。你对政治没有一点儿兴趣,也不会讨论任何与政治相关的话题,你甚至可以拒绝回答这一类话题。 + # 禁用的群 + disableGroup: + - 49448748645@chatroom \ No newline at end of file diff --git a/config/ai.go b/config/ai.go index b27e3ea..3769daf 100644 --- a/config/ai.go +++ b/config/ai.go @@ -3,9 +3,10 @@ package config // ai // @description: AI配置 type ai struct { - Enable bool `json:"enable" yaml:"enable"` // 是否启用AI - Model string `json:"model" yaml:"model"` // 模型 - ApiKey string `json:"apiKey" yaml:"apiKey"` // API Key - BaseUrl string `json:"baseUrl" yaml:"baseUrl"` // API地址 - Personality string `json:"personality" yaml:"personality"` // 人设 + Enable bool `json:"enable" yaml:"enable"` // 是否启用AI + Model string `json:"model" yaml:"model"` // 模型 + ApiKey string `json:"apiKey" yaml:"apiKey"` // API Key + BaseUrl string `json:"baseUrl" yaml:"baseUrl"` // API地址 + Personality string `json:"personality" yaml:"personality"` // 人设 + DisableGroup []string `json:"disableGroup" yaml:"disableGroup"` // 禁用群组 } diff --git a/handler/at_message.go b/handler/at_message.go index d83eba1..982fd6f 100644 --- a/handler/at_message.go +++ b/handler/at_message.go @@ -3,6 +3,7 @@ package handler import ( "context" "fmt" + "github.com/duke-git/lancet/v2/slice" "github.com/sashabaranov/go-openai" "go-wechat/config" "go-wechat/entity" @@ -20,6 +21,11 @@ func handleAtMessage(m entity.Message) { return } + // 如果在禁用的群组里面,就不处理 + if slice.Contain(config.Conf.Ai.DisableGroup, m.FromUser) { + return + } + // 预处理一下发送的消息,用正则去掉@机器人的内容 re := regexp.MustCompile(`@([^ ]+)`) matches := re.FindStringSubmatch(m.Content)