topfans/backend/services/aiChatService/service/audit_service.go
2026-05-28 12:00:19 +08:00

59 lines
1.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package service
import "strings"
// AuditService 审核服务
type AuditService struct {
// 敏感词列表
sensitiveWords []string
}
// NewAuditService 创建审核服务
func NewAuditService() *AuditService {
return &AuditService{
sensitiveWords: []string{
// 政治类
"台独", "港独", "藏独", "疆独", "分裂", "颠覆",
// 色情类
"色情", "裸聊", "约炮", "成人",
// 暴力类
"杀人", "虐待", "暴力",
// 违规诱导
"转账", "汇款", "银行卡", "密码",
// AI 身份冒充
"你是真人", "你是人类", "真人在吗",
},
}
}
// AuditText 审核文本内容
// 返回 true 表示通过false 表示违规
func (s *AuditService) AuditText(text string) bool {
for _, word := range s.sensitiveWords {
if strings.Contains(text, word) {
return false
}
}
return true
}
// AuditResponse 审核 AI 回复(逐 token
func (s *AuditService) AuditResponse(token string) bool {
// 累加 token 判断是否违规
for _, word := range s.sensitiveWords {
if strings.Contains(token, word) {
return false
}
}
return true
}
// DefaultSafeResponse 获取默认安全回复
func (s *AuditService) DefaultSafeResponse() string {
return "抱歉,这个话题我无法继续,我们换个话题聊聊吧。"
}
// AddSensitiveWord 添加敏感词
func (s *AuditService) AddSensitiveWord(word string) {
s.sensitiveWords = append(s.sensitiveWords, word)
}