【Qbot】3.加入内容审核功能

article/2025/11/9 21:09:32

该项目计划长期进行维护更新,欢迎star:https://github.com/zstar1003/Qbot

前言

在ChatGPT上线Q群不久,不少人对其进行了测试,但随着时间的延续,测试话题逐渐走向失控,迫使我不得不紧急暂停。
对同胞素质的过高预期换来的往往是无下限的不断试探,因此加入内容审查功能变得至关重要。

本地内容审核

在Github上找到了这个可用项目speachless(https://github.com/keithsun80/speachless)
该方法是根据本地预先设定的词构建搜索树,然后将需要检测的内容进行匹配。
不过实测发现该方法当添加词汇过多时,会存在匹配不准确的问题。

第三方审核接口

由于需要审核的内容字典难以获取,因此另一种简单方式就是调用的第三方内容审核服务。
下面调研了三家平台服务。

阿里内容审核

网站:https://help.aliyun.com/document_detail/70439.htm?spm=a2c4g.11186623.0.0.2f0f3dc02liW2m#section-cic-j6w-c0s
看了下阿里的文档,申请入口一下子没找到,就没继续尝试。

网易易盾

网站:https://dun.163.com/trial/text
新用户似乎有7天的免费试用,不过申请之后,发现需要一天多的审核时间,并且会有人打电话来进行确认,比较麻烦。

百度内容审核平台

网站:https://ai.baidu.com/solution/censoring
百度这个平台的申请挺容易的,直接秒过,并且有总量5万次文本审核调用量,对于我这样的小应用来说足够使用。

在这里插入图片描述
并且,官网给出了详细的调用示例,兼容python2和python3:

import sys
import json
import base64# 保证兼容python2以及python3
IS_PY3 = sys.version_info.major == 3
if IS_PY3:from urllib.request import urlopenfrom urllib.request import Requestfrom urllib.error import URLErrorfrom urllib.parse import urlencodefrom urllib.parse import quote_plus
else:import urllib2from urllib import quote_plusfrom urllib2 import urlopenfrom urllib2 import Requestfrom urllib2 import URLErrorfrom urllib import urlencode# 防止https证书校验不正确
import sslssl._create_default_https_context = ssl._create_unverified_contextAPI_KEY = '自己的API_KEY'SECRET_KEY = '自己的SECRET_KEY 'IMAGE_CENSOR = "https://aip.baidubce.com/rest/2.0/solution/v1/img_censor/v2/user_defined"TEXT_CENSOR = "https://aip.baidubce.com/rest/2.0/solution/v1/text_censor/v2/user_defined""""  TOKEN start """
TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token'"""获取token
"""def fetch_token():params = {'grant_type': 'client_credentials','client_id': API_KEY,'client_secret': SECRET_KEY}post_data = urlencode(params)if (IS_PY3):post_data = post_data.encode('utf-8')req = Request(TOKEN_URL, post_data)try:f = urlopen(req, timeout=5)result_str = f.read()except URLError as err:print(err)if (IS_PY3):result_str = result_str.decode()result = json.loads(result_str)if ('access_token' in result.keys() and 'scope' in result.keys()):if not 'brain_all_scope' in result['scope'].split(' '):print('please ensure has check the  ability')exit()return result['access_token']else:print('please overwrite the correct API_KEY and SECRET_KEY')exit()"""读取文件
"""def read_file(image_path):f = Nonetry:f = open(image_path, 'rb')return f.read()except:print('read image file fail')return Nonefinally:if f:f.close()"""调用远程服务
"""def request(url, data):req = Request(url, data.encode('utf-8'))has_error = Falsetry:f = urlopen(req)result_str = f.read()if (IS_PY3):result_str = result_str.decode()return result_strexcept  URLError as err:print(err)if __name__ == '__main__':# 获取access tokentoken = fetch_token()# 拼接图像审核urlimage_url = IMAGE_CENSOR + "?access_token=" + token# 拼接文本审核urltext_url = TEXT_CENSOR + "?access_token=" + tokenfile_content = read_file('./image_normal.jpg')result = request(image_url, urlencode({'image': base64.b64encode(file_content)}))print("----- 正常图调用结果 -----")print(result)file_content = read_file('./image_advertise.jpeg')result = request(image_url, urlencode({'image': base64.b64encode(file_content)}))print("----- 广告图调用结果 -----")print(result)text = "我们要热爱祖国"result = request(text_url, urlencode({'text': text}))print("----- 正常文本调用结果 -----")print(result)text = "我要爆粗口啦"result = request(text_url, urlencode({'text': text}))print("----- 粗俗文本调用结果 -----")print(result)

上线实测一天下来,整体稳定性是不错的,基本不会出现“错杀”,“漏杀”的情况,省去了人工盯群的精力。


http://chatgpt.dhexx.cn/article/bv0j5i7L.shtml

相关文章

微信支付成功后,不回调接口问题

微信支付已经成功了,但是传的那个notify_url支付回调地址没进入? 按网上说的原因检查,好像都没问题。最后想起来这个接口没有设置不拦截,微信回调时,没传token,被拦截了。在过滤器中,添加回调接…

微信支付付款成功,回调函数不执行

最近用laravel框架做个微商城接微信支付,明明付款成功回调函数就是不执行,数据库存没变化 网上也查了好久,发现是因为回调路由放到了登录中间件里边... //微信支付回调接口 Route::post(wxpay_notify, Front\PayControllerwxpay_notify); …

app调用微信支付接口第一次成功,后面就调取不成功

原因1.可能由于微信缓存问题引起,将微信数据清除或者重装 原因2.微信签名不正确 图中红框部分,Android应用签名要全部小写,并且不能有冒号 在微信开放平台修改应用签名 转载自:https://blog.csdn.net/niuzimao/article/details/50685442 微信…

请教微信支付回调不成功的问题

我是微信端授权登陆的网站, 在里面写的微信支付, 但是回调一直不成功,有大佬可以看看吗? 接收方法 用的这位大佬的代码https://blog.csdn.net/kolinhu/article/details/81061722#commentsedit 原来是外网无法访问的问题

微信支付第一次可以成功,后面一直报错

微信支付,第一次支付可以唤起微信并支付成功,然后就再也唤不起来了 首先保证每个参数的正确,(一般第一次能成功就说明参数是正确的)略 解决办法: 1.使用自定义基座运行。 2.确保包名不要出错&#xff0c…

Android问题集锦(八)- Android 微信支付成功后没有回调问题

还在为接入支付烦恼吗,下面只要一行代码即可发起支付。 PayHelper.createWXPayBuilder(this).setNonceStr("xxxxxx").setTimeStamp("xxxxxx").setPrepayId("xxxxxx").setPartnerId("xxxxxx").setSign("xxxxxx").…

微信支付接口--支付成功的回调--超详细Demo

如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人。谢谢大家!❤ 如果解决不了,可以在文末进群交流。 写微信支付成功回调的代码,尤其要注意官方文档的一句话: 如果不注意这里,…

解密大模型与文心一言

近日,百度集团副总裁袁佛玉受邀出席数字纵深论坛并进行“解密大模型与文心一言“主题分享。 数字纵深论坛由北京大学光华管理学院数字教育中心主办,专注于分享科技前沿与商业洞见。 以下为分享精华回顾: 大家都能感受到,ChatGPT和…

chatgpt赋能Python-python3_7如何下载

Python3.7如何下载?详细步骤分享! Python是一门当今最热门、最常用、最易学的编程语言之一,且拥有庞大的社区和强大的库支持。在这篇文章中,我们将会详细介绍如何下载Python3.7版本,让大家能够轻松上手Python编程。 …

摆平Win2008与VPC2007的诡异冲突

摆平 Win2008 与 VPC2007 的冲突 话说上个周末,参加完51CTO组织的虚拟化技术沙龙,俺和老方,老胡,小废物等人杀奔西直门的红顶老汉烧鸡公,席间觥筹交错,一顿狂磋。说句题外话,这个鸡的味道真是不…

NeurIPS 2020 | 基于协同集成与分发的协同显著性目标检测网络

论文题目:CoADNet: Collaborative Aggregation-and-Distribution Networks for Co-Salient Object Detection 论文链接:https://proceedings.neurips.cc/paper/2020/file/4dc3ed26a29c9c3df3ec373524377a5b-Paper.pdf 论文代码:https://githu…

(附源码)基于spring boot 青少年公共卫生教育平台的设计与实现 毕业设计 643214

Springboot青少年公共卫生教育平台 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对青少年公…

IT服务管理的指挥与智慧

IT服务管理的指挥与智慧 在当今动荡不宁、不断变化的 IT 环境中,IT服务管理(ITSM)的重要性不言而喻,它通过保证关键业务系统和服务的可用性和可靠性,为整个企业提供至关重要的支持。随着技术变得越来越复杂&#xff0c…

php比特教务选排课系统的设计与实现毕业设计源码301826

比特教务选排课系统的设计与实现 摘 要 随着人类向信息社会的不断迈进,风起云涌的信息时代正掀起一次新的革命,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的比特教务选排课系统来管理选课信…

Springboot爱护大自然的设计与实现 毕业设计-附源码231643

爱护大自然 摘 要 热爱大自然,保护自然环境,是人们处理与自然关系过程中应当遵守的基本行为准则。第一,热爱大自然,是人类社会赖以生存和发展的物质条件。自然界一切对人类社会生活有益的存在物,如山川草木、飞禽走兽、…

python面向对象案例步骤分析_Python面向对象之继承原理与用法案例分析

本文实例讲述了Python面向对象之继承原理与用法。分享给大家供大家参考,具体如下: 目标 单继承 多继承 面向对象三大特性 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 继承 实现代码的重用,相同的代码不需要重复的编写 多态 不同…

中国多媒体与网络教学学报杂志中国多媒体与网络教学学报杂志社中国多媒体与网络教学学报编辑部2022年第6期目录

中国多媒体与网络教学学报杂志中国多媒体与网络教学学报杂志社中国多媒体与网络教学学报编辑部2022年第6期目录 实践研究_案例精选 找春天 左文慧; 1-515 长方体和正方体的认识 史颂; 6-912 测定空气中氧气的含量 彭洪;肖启友; 10-12 基于单元要素 设计智趣活动…

基于MATLAB的静态手势分割与识别研究

一、课题介绍 本课题设计了手势的分割与识别程序系统,结合 MATLAB软件对采集的目标图像进行识别。结合基于运动的手势分割与基于肤色的手势分割2种手势分 割方法,提取运动肤色区域,通过计算此区域的均值与方差矩阵更新高斯模型,设…

吉林建筑大学电气与计算机学院院长,吉林建筑大学城建学院市政与环境工程学院来我校计算机学院调研“学习筑梦”行动开展情况...

6月21日上午,吉林建筑大学城建学院市政与环境工程学院党委副书记、副院长王洪平、学办主任、辅导员和学生党员一行9人来访我校计算机学院。计算机学院党委副书记王俊成,学办主任兼分团委书记马立明等热情接待了来访嘉宾,双方就“学习筑梦”行…

计算机专业在法国好就业吗,对法国计算机专业留学热门院校的推荐与就业分析...

法国计算机专业总体介绍: 在法国从高中到博士阶段,共有5000余种计算机专业课程。有公立大学或者高等专业学院课程;有长期或短期课程;也有免费,付费或者学徒课程,对于计算机专业课程的选择是十分丰富的。 法国公立大学 随着法国大学…