gg-friggin-ez icon

gg-friggin-ez

gg-friggin-ez 是用于 Node.js 的多语言文本审核包,可检测脏话、毒性、骚扰及人身攻击,支持转写、混合语言和混淆文本,并提供快速布尔检查或详细审核结果,适用于聊天、游戏通信、评论等用户生成内容。

gg-friggin-ez

适用于 Node.js 的多语言文本审核

gg-friggin-ez 是一个开源 Node.js 包,用于筛查用户生成文本中的脏话、毒性、敌意、骚扰和人身攻击。它专为可能绕过简单关键词列表的内容而设计,包括 leet 文字、插入空格、重复字符、罗马化语言、混合语言文本和混合文字系统。

该包使用 System 1 决策模型,而不是生成对话式回复。其默认的 TypeSafe AI Jev 配置会返回脏话和毒性标记、严重程度、检测到的语言、混淆类型、建议操作以及测得的请求延迟等审核信号。开发者可以使用布尔辅助函数进行快速检查,也可以在需要完整结果时调用 screen()。

功能

结构化审核结果

返回独立的脏话和毒性判定,严重程度从 NONE 到 SEVERE,并提供 0.0 到 2.0 的连续严重程度分数。

支持规避检测

检测常见的规避模式,例如 leet 文字、分隔字符、重复字符、符号替换、罗马化、混合语言和混合文字系统。

多语言和转写文本

支持英语和印度语言内容,包括孟加拉语、马拉雅拉姆语、印地语、泰米尔语、泰卢固语和卡纳达语,并覆盖 README 中所述的转写输入。

简洁的 Node.js API

提供 isProfane() 和 isToxic() 便捷函数,以及用于单次请求并返回多个审核信号的 screen()。

可插拔审核

默认使用 TypeSafe AI Jev 作为 System 1 模型,并可通过 screener 配置使用其他分类器或自定义架构。

面向操作的输出

可以将内容分类为 ALLOW、SUSPICIOUS_REVIEW、AUTO_CENSOR 或 AUTO_BAN,在支持自动处理的同时,也为模糊案例提供审核路径。

使用场景

  • 实时聊天和社区消息

    在发布消息前执行审核检查,利用操作和严重程度字段来允许、标记待审核、审查或屏蔽内容。

  • 游戏聊天审核

    筛查玩家消息和游戏内文字通信,适用于响应时间短且混淆检测很重要的场景。

  • 社交、评价和交易市场内容

    评估评论、评价或交易市场对话,其中可能包含转写或混合语言的地区性辱骂内容。

  • 审核运营和审核队列

    使用详细的语言和混淆字段来支持信任与安全审核队列,并调查用户如何规避过滤器。

  • 自定义审核流程

    通过提供自定义架构,或在 screener 配置中替换默认分类器,构建特定领域的审核工作流。

Pros and Cons

Pros

  • 针对静态关键词过滤器可能遗漏的混淆、罗马化、转写、混合语言和混合文字内容。
  • 同时提供快速布尔检查和详细审核响应,其中包含严重程度、语言、混淆、操作和延迟字段。
  • 除了自动允许、审查和封禁结果外,还支持面向人工审核的操作。
  • 支持 Node.js 18+,并提供 ESM、CommonJS 以及内置 TypeScript 类型声明。
  • 允许开发者替换默认的 System 1 分类器并定义自定义审核架构。

Cons

  • 该包依赖推理请求和 OpenRouter API 密钥,因此延迟和运行成本可能会随配置的模型及请求条件而变化。
  • 项目文档未确定所有内容类型的全面语言覆盖范围、准确率,或误报和漏报表现。
  • 分别调用 isProfane() 和 isToxic() 会触发独立的推理请求;需要多个信号时,使用 screen() 更合适。

FAQ

如何安装和配置 gg-friggin-ez?

使用 npm、Yarn、pnpm 或 Bun 安装此包。它要求 Node.js 18 或更高版本,或使用 Bun,并提供 ESM、CommonJS 以及内置 TypeScript 类型声明构建。API 请求需要 OpenRouter API 密钥,可通过环境变量提供,也可传递给 createScreener()。

应该使用哪个 API 获取审核结果?

对于单独的布尔检查,请使用 isProfane() 或 isToxic()。当需要完整的审核结果时,请使用 screen(),其中包括严重程度、语言、检测到的混淆方式、建议操作和测得的延迟。

可以使用其他模型或自定义审核架构吗?

默认配置使用 TypeSafe AI Jev;该包支持通过 system1 选项提供其他 System 1 分类器。也支持自定义审核架构。

它可以审核哪些类型的多语言和混淆文本?

README 描述了对英语和印度语言的支持,包括孟加拉语、马拉雅拉姆语、印地语、泰米尔语、泰卢固语以及卡纳达语。该包旨在处理罗马化或转写文本、混合语言、leet 文字、字符间插入空格、重复字符和混合文字系统。

关于延迟和请求使用情况,需要了解什么?

项目说明,在默认 Jev 配置下,典型端到端延迟约为 50–500 毫秒,但实际延迟会在 screen() 结果中返回,并取决于推理请求和部署条件。README 还指出,每次调用 isProfane() 或 isToxic() 都会触发一次推理请求。

Quick Facts

类别
开发者工具 · AI 内容审核
平台
Node.js 18+ 或 Bun
包格式
ESM 和 CommonJS,内置 TypeScript 类型
默认模型
TypeSafe AI Jev
主要工作流
实时筛查聊天、评论、评价及其他用户生成文本
来源
github.com/ItisShikhar/gg-friggin-ez