sensitive-words-filter-service

一个简单的基于DFA算法和Http的敏感词过滤服务;

TODO

  • 词库文件发生变更后能自动加载
  • 支持从数据库加载词库
  • 支持客户端自定义需要检测哪个词库
  • 更加丰富的API接口

Usage

go mod tidy && go build

启动

./sensitive-words-match -p 8088 -d ./data/

启动参数说明: -p 指定http服务的端口; -d 敏感词存储的路径,路径下所有的文件会自动遍历加载到内存,不支持二级目录;

http api /words/filter

client post 请求:

{
  "text": "xdcvdfdsf fuck"
}

正常请求返回:

{
    "code":200,
    "msg":"success",
    "data":{
        "suggestion":"pass",
        "desensitization":"Hello world, 世界你好"
    }
}

curl Request demo

curl --location --request POST 'http://127.0.0.1:8088/words/filter' --header 'Content-Type: application/json' --data-raw '{
    "text": "GOODO  fxxk,"
}'

包含敏感词的请求返回

{
    "code": 200,
    "msg": "success",
    "data": {
        "suggestion": "block",
        "sensitiveWords": [
            "fuck"
        ],
        "desensitization": "GOODO  ****,。"
    }
}

执行显示 image