Browse Source

fix: 修复敏感词的替换显示问题(由于钉钉回复的消息格式已改为markdown格式,原替换为*的逻辑会有语法冲突) (#220)

Finly 2 years ago
parent
commit
fcc7328aa0
5 changed files with 8 additions and 8 deletions
  1. 2 2
      README.md
  2. 1 1
      config.example.yml
  3. 1 1
      config/config.go
  4. 1 1
      docker-compose.yml
  5. 3 3
      public/tools.go

+ 2 - 2
README.md

@@ -147,7 +147,7 @@ AIGC的热潮正在各行各业掀起巨大的变革,我们看到各大社群
 - 📝 查询对话:通过发送`#查对话 username:xxx`查询xxx的对话历史,可在线预览,可下载到本地
 - 👹 白名单机制:通过配置指定,支持指定群组名称和用户名称作为白名单,从而实现可控范围与机器人对话
 - 💂‍♀️ 管理员机制:通过配置指定管理员,部分敏感操作,以及一些应用配置,管理员有权限进行操作
-- ㊙️ 敏感词过滤:通过配置指定敏感词,提问时触发,则不允许提问,回答的内容中触发,则以`*`代替
+- ㊙️ 敏感词过滤:通过配置指定敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 🚫 代替
 
 ## 使用前提
 
@@ -476,7 +476,7 @@ vip_users: []
 admin_users: []
 # 钉钉机器人在应用信息中的AppSecret,为了校验回调的请求是否合法,如果留空,将会忽略校验,则该接口将会存在其他人也能随意调用的安全隐患,因此强烈建议配置正确的secret,如果你的服务对接给多个机器人,这里可以配置多个机器人的secret
 app_secrets: []
-# 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 *** 代替
+# 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 🚫 代替
 sensitive_words: []
 # 帮助信息,放在配置文件,可供自定义
 help: "欢迎使用本工具\n\n你可以查看:[用户指南](https://github.com/eryajf/chatgpt-dingtalk/blob/main/docs/userGuide.md)\n\n这是一个[开源项目](https://github.com/eryajf/chatgpt-dingtalk/),觉得不错你可以来波素质三连."

+ 1 - 1
config.example.yml

@@ -42,7 +42,7 @@ vip_users: []
 admin_users: []
 # 钉钉机器人在应用信息中的AppSecret,为了校验回调的请求是否合法,如果留空,将会忽略校验,则该接口将会存在其他人也能随意调用的安全隐患,因此强烈建议配置正确的secret,如果你的服务对接给多个机器人,这里可以配置多个机器人的secret
 app_secrets: []
-# 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 *** 代替
+# 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 🚫 代替
 sensitive_words: []
 # 帮助信息,放在配置文件,可供自定义
 help: "欢迎使用本工具\n\n你可以查看:[用户指南](https://github.com/eryajf/chatgpt-dingtalk/blob/main/docs/userGuide.md)\n\n这是一个[开源项目](https://github.com/eryajf/chatgpt-dingtalk/),觉得不错你可以来波素质三连."

+ 1 - 1
config/config.go

@@ -52,7 +52,7 @@ type Configuration struct {
 	AdminUsers []string `yaml:"admin_users"`
 	// 钉钉机器人在应用信息中的AppSecret,为了校验回调的请求是否合法,如果你的服务对接给多个机器人,这里可以配置多个机器人的secret
 	AppSecrets []string `yaml:"app_secrets"`
-	// 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 *** 代替
+	// 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 🚫 代替
 	SensitiveWords []string `yaml:"sensitive_words"`
 	// 自定义帮助信息
 	Help string `yaml:"help"`

+ 1 - 1
docker-compose.yml

@@ -31,7 +31,7 @@ services:
       ADMIN_USERS: "" # 指定哪些人为此系统的管理员,如果留空,则表示没有人是管理员,如果要限制,则列表中写用户的userid
       # 注意:如果下边的app_secrets为空,以及使用outgoing的方式配置机器人,这两种情况下,都表示没有人是管理员
       APP_SECRETS: "" # 钉钉机器人在应用信息中的AppSecret,为了校验回调的请求是否合法,如果留空,将会忽略校验,则该接口将会存在其他人也能随意调用的安全隐患,因此强烈建议配置正确的secret,如果你的服务对接给多个机器人,这里可以配置多个机器人的secret,比如 "xxxx,yyyy"
-      SENSITIVE_WORDS: "" # 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 *** 代替
+      SENSITIVE_WORDS: "" # 敏感词,提问时触发,则不允许提问,回答的内容中触发,则以 🚫 代替
       AZURE_ON: "false" # 是否走Azure OpenAi API, 默认false ,如果为true,则需要配置下边的四个参数
       AZURE_API_VERSION: "" # Azure OpenAi API 版本,比如 "2023-03-15-preview"
       AZURE_RESOURCE_NAME: "" # Azure OpenAi API 资源名称,比如 "openai"

+ 3 - 3
public/tools.go

@@ -155,7 +155,7 @@ func JudgeSensitiveWord(s string) bool {
 	return false
 }
 
-// SolveSensitiveWord 将敏感词用*号占位
+// SolveSensitiveWord 将敏感词用 🚫 占位
 func SolveSensitiveWord(s string) string {
 	for _, v := range Config.SensitiveWords {
 		if strings.Contains(s, v) {
@@ -165,11 +165,11 @@ func SolveSensitiveWord(s string) string {
 	return s
 }
 
-// 将对应敏感词替换为*
+// 将对应敏感词替换为 🚫
 func printStars(num int) string {
 	s := ""
 	for i := 0; i < num; i++ {
-		s += "*"
+		s += "🚫"
 	}
 	return s
 }