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

This commit is contained in:
Finly
2023-04-27 14:11:52 +08:00
committed by GitHub
parent e2e57acabe
commit fcc7328aa0
5 changed files with 8 additions and 8 deletions

View File

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

View File

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

View File

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

View File

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

View File

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