From 3b4862d5bc130bd6e49b4823b7e67d25c16a84d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AF=BB=E6=AC=A2?= Date: Fri, 24 Nov 2023 09:44:13 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20AI=E6=96=B0=E5=A2=9E=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E7=BE=A4=E4=B8=8D=E5=90=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config.yaml | 5 ++++- config/ai.go | 11 ++++++----- handler/at_message.go | 6 ++++++ 3 files changed, 16 insertions(+), 6 deletions(-) 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)