分享#2: 借力国产AI大语言模型 仅需十几行代码实现违禁敏感词审查

前言

AI搜索引擎开源项目Demo站点(isou.chat)的用户量突然连续几天增长,高峰达到1000+用户每天,让我突然担忧了起来,这个站点本身只是一个项目演示的站点,没想到会涌入这么多当工具使用的用户,由于大部分用户都是来自国内,而Demo站点又没有对用户提问的问题进行违禁敏感词审查,担心非国产大模型(例如ChatGPT)会生成违法的内容,万一被请去喝茶就不好了。

实现过程

首先想到自己写个关键词过滤接口,但是我嫌麻烦,而且也没必要在这个项目中增加代码量了。

其次又想到了利用国内云服务平台的文本内容审查接口,接入他们的API对用户提问的问题进行审查,于是开始寻找各家云服务平台的内容安全产品。

图片

一看价格就放弃了,如果只是用于演示站点的话似乎没必要(当然也有很多其他价格低廉的方案)。

这时候突然想到,国产大模型服务在输出内容的时候肯定都是经过了内容审查,那么似乎可以直接借用AI大模型的能力来实现敏感词的审查。

而且这个项目本身就是通过AI大模型来生成内容,相关接口已经都有了,不需要再重新写接口了,实现起来基本只需要一个Prompt就可以搞定了。

选用谁家的大模型?阿里百度腾讯等国产都是可以的,我这里选了阿里云的qwen-turbo模型,也是阿里最便宜的一个模型,注册就送100万tokens,并发大、响应快,似乎是个理想选择。

立刻开始测试,下面是一个简单的示例:

// 彩虹屁对LLM似乎是有奇效的,能有效提升准确率。这里紧紧是我自己写的一个示例,还有很大的优化空间。// 这里仅让大模型输出[[stop]]或者[[safe]],不需要流式输出,响应速度也是很快。// 需要特别注意的情况是:你不能在Prompt中增加具体的敏感词,这会导致所有的请求被拒绝,因为这个时候这个Prompt本身就是违禁的。const prompts = `你是一个专业的中国互联网违禁敏感词检查专家,特别擅长于检查用户输入的问题是否包含违禁敏感词汇,你已经持续稳定工作了数十年,从未出错。
你需要仔细检查用户输入的问题,如果包含了违禁敏感词汇,请直接返回[[stop]],如果用户输入的问题不包含违禁敏感词汇,请直接返回[[safe]],不要返回任何不相关的内容。
你需要谨慎的判断用户输入的问题,仔细分析用户的意图,判断用户是否是主观意图想要查询违禁敏感问题,如果你不能确定的话,那么用户的问题大概率不包含敏感词汇。
用户输入的问题是:`
/** * 敏感词审查 */export async function checkSensitive(query: string): Promise<boolean> {  try {    const messages: IChatInputMessage[] = [      {        role: 'user',        content: `${prompts}\n${query}`      }    ];    const res: string = await aliyun.chat(messages);    if (res.includes('safe')) return false;    if (res.includes('stop')) return true;    return false;  } catch (error: any) {    // 阿里云大模型在检测出敏感词也会抛出错误    // 输出 code: DataInspectionFailed, message: 'Input data may contain inappropriate content.'    // 所以这里也是借用了国产大模型自身的审查能力    if (error?.message?.includes('inappropriate')) return true;    return false;  }}
 

这样只需要这几行代码就实现了敏感词的基本审查能力,经过测试大部分违禁敏感词汇都会被识别,你可以通过调教prompt来增加敏感词的识别能力和严格程度。

接下来只需要在相关逻辑中增加审查逻辑就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bryan Ding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值