月工资不到10元的内容审核专员? - ChatGPT 在内容自动审查中的应用
内容过滤筛查是指对网络上发布或传播的文本、图片、视频等内容进行审核和监管,以防止出现违法违规、暴力色情、虚假广告、电信诈骗等现象,维护网络安全和社会秩序。
内容过滤筛查是一个亟待解决的问题,因为网络内容的数量庞大,且具有多样性、动态性和隐晦性。对于处理用户数据的软件或者网站的开发者来说,内容审核必不可少,通过内容过滤筛查可以有效阻止一些恶意用户。

传统内容审核一般需要人工参与结合规则或关键词,通过预设一些条件或标准来判断内容是否合规。然而,这种方法存在很多局限性和缺陷:
- 人工审核成本高昂,一般个人或者小型工作室难以负担
- 人工审核难以处理大量数据,很难做到实时检测
- 规则或关键词难以覆盖所有情况,容易漏掉一些隐晦或变化的不良内容
- 规则或关键词容易被规避或绕过,容易出现误报或漏报。
- 规则或关键词需要不断更新和维护,耗费人力和时间。
因此,我们需要一种更智能和灵活的方法来提高内容过滤筛查的效率和准确性。ChatGPT作为一种先进的自然语言生成的AI技术,可以为内容过滤筛查提供一种新的解决方案。
本文主要讨论利用Azure OpenAI的ChatGPT对文本内容筛查。相比于使用OpenAI, Azure OpenAI有以下优点:
- 两者底层的模型都是一样的,使用起来几乎没有区别
- 没有屏蔽国内用户,可以在国内直接调用
- 有现成的Azure SDK可以使用,不必裸写HTTP请求
- 可以上传自己的数据集,对模型进行fine-tuning(微调)
使用Azure OpenAI的ChatGPT做内容过滤筛查的大致流程如下:
- 在Azure门户上创建一个Azure OpenAI资源,并部署ChatGPT模型。我们可以选择不同的部署名称和规格,以满足不同的需求和预算。
- 使用Azure OpenAI SDK或REST API来调用ChatGPT模型,并传入网络内容作为输入。我们可以选择不同的输入格式和参数,以控制模型的行为和输出。
- 接收并处理ChatGPT模型返回的输出,并根据需要对网络内容进行过滤筛查。我们可以选择不同的输出格式和处理方式,以实现不同的目标和效果。
下面是一个简单NodeJs的Web API示例代码,可以对发送过来的文本进行自动审核:
const openai = require("@azure/openai");
const express = require("express");
const app = express();
// 设置必要的参数
const endpoint = "<Azure OpenAI的URL>";
const key = "<Azure OpenAI资源的密钥>";
const engine = "chatgpt"; // 部署名称
// 创建一个OpenAI客户端
const client = new openai.OpenAIClient(endpoint, key);
// 定义一个中间件,用于解析请求体中的JSON数据
app.use(express.json());
// 定义一个路由,用于接收POST请求,传入一段文本,返回是否为不良内容和替代文本
app.post("/validate", async (req, res) => {
// 获取请求体中的文本
const text = req.body.text;
// 使用Azure OpenAI ChatGPT作为一个分类器,输入一段文本,输出其是否为不良内容, 可以根据自己的需求,调整下面的内容
const response1 = await client.chatCompletion(engine, [
{ role: "system", content: "请根据发送过来的文本,判断其是否包含不良内容. 如果有就返回bad, 如果没有返回good" },
{ role: "user", content: text },
]);
const label = response1.choices[0].message.content;
// 返回响应体
res.json({
isBad: label === "bad",
});
});
app.listen(3000, () => {
console.log("App is running on port 3000");
});
把上述代码部署到http服务器后,要调用这个REST API,使用任何支持HTTP请求的语言或工具。例如,可以使用Python的requests库来发送一个POST请求,传入一段文本,获取返回的结果。以下是一个可能的示例代码:
import requests
url = "http://localhost:3000/validate" # REST API的地址,根据实际情况修改
text = "这是一段测试文本,没有什么不良内容。" # 要审核的文本
response = requests.post(url, json={"text": text})
result = response.json()
print(result)
上述代码仅是一个简单的示例,在实际使用过程中,还需要考虑很多内容,包括错误处理,数据加密,模型微调和设置更好的prompt等。当然,AI也不是万能的,肯定会存在误判或者漏判的情况,一般可以考虑和人工审核相结合,使用AI进行初步判断筛选,对于疑似的内容进行人工二次审核,可以极大地减轻审核人员的负担。
目前,这边大部分处理用户内容的软件都已经接入了AI自动审核系统,审核数千条的内容的成本只有几十美分,成本十分低廉,效果也达到了令人满意的程度。通过AI自动审批初步筛选判断,人工审核为辅的方式极大减轻了人工审核的负担,并可以有效检测到一些隐晦或变化的不良内容,有力地打击了一些恶意用户。
月工资不到10元的内容审核专员? - ChatGPT 在内容自动审查中的应用的更多相关文章
- 从B站、爱奇艺、映客的IPO上市,看国内视频公司的内容审核现状
本文由 网易云发布. 3月30日,中央电视台<经济半小时>栏目讲述了网络上的一个顽症——色情内容.在这期主题为<互联网上的“色诱”>的节目中,央视的记者揭示了色情直播的猖獗. ...
- 滴滴过节送10元打车券是不是bug
自从滴滴跟快的去年合作以后,也不玩烧钱大战了,也没法打到免费的车了,乘客打车优惠也少了. 但是现在的滴滴在过节的时候还是会返滴滴代金券,而且金额都比较大,超出了打车的起步价.半年前这边的司机会经常利用 ...
- 8月30号周五香港接单ING~~化妆品只加10元!!!!!!
8月30号周五香港接单ING~~化妆品只加10元!!!!!! 8月30号周五香港接单ING~~化妆品只加10元!!!!!!
- Linux中一个文件10行内容,如何输出5-8内容到屏幕
题目是这样的,Linux中一个文件10行内容,如何输出5-8内容到屏幕首先我们模拟一下这样的环境: [root@localhost question]# pwd /root/question [roo ...
- 10元买啤酒问题Java解法
10元去买啤酒,2元一瓶.每两个瓶可以换一瓶啤酒,每四个瓶盖可以换一瓶啤酒.最多买几瓶? public class Java { public static void main(String[] ar ...
- c语言实践 用1角 2角 5角 凑成10元钱的方法
/* 用1角,2角,5角凑出10元钱,有几种办法. 也就是0.1a+0.2b+0.3c=10,化简一下就是 a=100-2b-3c 因为a的范围是0到100,所以弄一个循环 把a的值从0尝试到100, ...
- 用java代码解决10元喝多少瓶汽水的问题
问题:汽水2元一瓶,四个盖子换一瓶,两个空瓶一瓶,问10元可以喝几瓶?(不许借别人空瓶或瓶盖,但可以先喝汽水再付空酒瓶或瓶盖) 最近同事让笔者看了一道脑筋急转弯的数学题,当然不是很难,只要会加减法应该 ...
- UCloud 云服务内容审核 Java 版本实现
前言 最近不少小伙伴反映上传小黄图偶尔性的异常,并且不能上传动态图片,很是苦恼!无她,鉴黄API还没有这么智能,毕竟是自己训练的,不是那么专业!为了更好的服务广大网友,撸主决定接入更加智能快速的鉴黄服 ...
- 《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的顶级控件,或是引用母版页的嵌套母版页。”
VS2005下,添加了母版页这个控件,我们可以讲N个页面中共同的部分放在母版页来实现,并让WEB窗体集成自我们的母版页,就可以让我们的站点具有统一的风格了.在VS2005SP1之前的版本中,我们只能创 ...
- Android - 分享内容 - 接收其他APP的内容
就象程序可以发送数据给其他程序,所以也可以接收其他程序的数据.想一下用户如何和程序交互,以及想从其他程序接收什么样类型的数据.例如,一个社交程序可能对接收其他程序的文字(比如有趣的网址)感兴趣.Goo ...
随机推荐
- cv学习总结(10.16-10.23) KNN
本周从周一开始学习cs231n的相关内容,看完了231n的课程介绍,背景介绍,图像分类的KNN和SVM算法,完成了作业中assignment1的KNN部分的代码(附件),思考总结了KNN的实现原理:即 ...
- Oracle Linux切换uek内核到rhck内核解决ACFS兼容问题
背景:协助客户做验证,客户使用的是RHEL7.6环境,我这边是OEL7.6环境,开始以为区别不大,结果acfs兼容还是遇到问题,特此记录下. 现象:asmca图形没有acfs相关内容,无法使用acfs ...
- 3、数据库:Oracle部署 - 系统部署系列文章
Oracle数据库的安装,以前写过一篇,这次将新版的安装再记录一次,让读者能够有所了解,笔者也能够记录下最新版的安装过程. 一.数据库下载: Oracle最新版目前在官网是19c,从下面这个链接进去下 ...
- HStore表全了解:实时入库与高效查询利器
摘要:本文章将从使用者角度介绍HStore概念以及使用. 本文分享自华为云社区<GaussDB(DWS)HStore表讲解>,作者:大威天龙:- . HStore表简介 面对实时入库和实时 ...
- 通过模仿学会Python爬虫(一):零基础上手
好家伙,爬虫来了 爬虫,这玩意,不会怎么办, 诶,先抄一份作业回来 1.别人的爬虫 Python爬虫史上超详细讲解(零基础入门,老年人都看的懂)_ChenBinBini的博客-CSDN博客 # -* ...
- tvm-多线程代码生成和运行
本文链接 https://www.cnblogs.com/wanger-sjtu/p/16818492.html 调用链 tvm搜索算子在需要多线程运行的算子,是在codegen阶段时插入TVMBac ...
- WPF 入门笔记 - 04 - 数据绑定 - 补充内容:资源基础
宇宙很大,生活更大,也许以后还有缘相见. --三体 该篇作为[WPF 入门笔记 - 04 - 数据绑定] - Additional Content 章节的补充内容 前言 XAML 资源概述 (WPF ...
- 【序列化与反序列化】关于序列化与反序列化MessagePack的实践
在进行序列化操作之前,我们还对系统进行压测,通过jvisualvm分析cpu,线程,垃圾回收情况等:运用火焰图async-profiler分析系统性能,找出程序中占用CPU资源时间最长的代码块. 代码 ...
- go NewTicker 得使用
转载请注明出处: 在 Go 语言中,time.NewTicker 函数用于创建一个周期性触发的定时器.它会返回一个 time.Ticker 类型的值,该值包含一个通道 C,定时器会每隔一段时间向通道 ...
- Nginx使用Lua脚本连接Redis验证身份并下载文件
目录 安装Nginx 下载 解压安装包 安装依赖 安装 启动 测试访问 安装LuaJIT 安装ngx_devel_kit 安装lua-nginx-module 在已安装的Nginx中添加Lua模块 L ...