内容过滤筛查是指对网络上发布或传播的文本、图片、视频等内容进行审核和监管,以防止出现违法违规、暴力色情、虚假广告、电信诈骗等现象,维护网络安全和社会秩序。

内容过滤筛查是一个亟待解决的问题,因为网络内容的数量庞大,且具有多样性、动态性和隐晦性。对于处理用户数据的软件或者网站的开发者来说,内容审核必不可少,通过内容过滤筛查可以有效阻止一些恶意用户。

传统内容审核一般需要人工参与结合规则或关键词,通过预设一些条件或标准来判断内容是否合规。然而,这种方法存在很多局限性和缺陷:

  • 人工审核成本高昂,一般个人或者小型工作室难以负担
  • 人工审核难以处理大量数据,很难做到实时检测
  • 规则或关键词难以覆盖所有情况,容易漏掉一些隐晦或变化的不良内容
  • 规则或关键词容易被规避或绕过,容易出现误报或漏报。
  • 规则或关键词需要不断更新和维护,耗费人力和时间。

因此,我们需要一种更智能和灵活的方法来提高内容过滤筛查的效率和准确性。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 在内容自动审查中的应用的更多相关文章

  1. 从B站、爱奇艺、映客的IPO上市,看国内视频公司的内容审核现状

    本文由  网易云发布. 3月30日,中央电视台<经济半小时>栏目讲述了网络上的一个顽症——色情内容.在这期主题为<互联网上的“色诱”>的节目中,央视的记者揭示了色情直播的猖獗. ...

  2. 滴滴过节送10元打车券是不是bug

    自从滴滴跟快的去年合作以后,也不玩烧钱大战了,也没法打到免费的车了,乘客打车优惠也少了. 但是现在的滴滴在过节的时候还是会返滴滴代金券,而且金额都比较大,超出了打车的起步价.半年前这边的司机会经常利用 ...

  3. 8月30号周五香港接单ING~~化妆品只加10元!!!!!!

    8月30号周五香港接单ING~~化妆品只加10元!!!!!! 8月30号周五香港接单ING~~化妆品只加10元!!!!!!

  4. Linux中一个文件10行内容,如何输出5-8内容到屏幕

    题目是这样的,Linux中一个文件10行内容,如何输出5-8内容到屏幕首先我们模拟一下这样的环境: [root@localhost question]# pwd /root/question [roo ...

  5. 10元买啤酒问题Java解法

    10元去买啤酒,2元一瓶.每两个瓶可以换一瓶啤酒,每四个瓶盖可以换一瓶啤酒.最多买几瓶? public class Java { public static void main(String[] ar ...

  6. 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, ...

  7. 用java代码解决10元喝多少瓶汽水的问题

    问题:汽水2元一瓶,四个盖子换一瓶,两个空瓶一瓶,问10元可以喝几瓶?(不许借别人空瓶或瓶盖,但可以先喝汽水再付空酒瓶或瓶盖) 最近同事让笔者看了一道脑筋急转弯的数学题,当然不是很难,只要会加减法应该 ...

  8. UCloud 云服务内容审核 Java 版本实现

    前言 最近不少小伙伴反映上传小黄图偶尔性的异常,并且不能上传动态图片,很是苦恼!无她,鉴黄API还没有这么智能,毕竟是自己训练的,不是那么专业!为了更好的服务广大网友,撸主决定接入更加智能快速的鉴黄服 ...

  9. 《ASP.NET1200例》解决母版页报错“内容控件必须是内容页中的顶级控件,或是引用母版页的嵌套母版页。”

    VS2005下,添加了母版页这个控件,我们可以讲N个页面中共同的部分放在母版页来实现,并让WEB窗体集成自我们的母版页,就可以让我们的站点具有统一的风格了.在VS2005SP1之前的版本中,我们只能创 ...

  10. Android - 分享内容 - 接收其他APP的内容

    就象程序可以发送数据给其他程序,所以也可以接收其他程序的数据.想一下用户如何和程序交互,以及想从其他程序接收什么样类型的数据.例如,一个社交程序可能对接收其他程序的文字(比如有趣的网址)感兴趣.Goo ...

随机推荐

  1. Android SmartTable表格框架1_如何使用

    SmartTable github地址:https://github.com/huangyanbin/smartTable 参考:https://juejin.cn/post/684490354910 ...

  2. Go语言如何判断两个对象是否相等

    1. 引言 在编程中,判断两个对象是否相等是一项常见的任务,同时判断对象是否相等在很多情况下都非常重要,例如: 单元测试:编写单元测试时,经常需要验证函数的输出是否符合预期,这涉及到比较对象是否相等. ...

  3. 《数据结构》之栈和堆结构及JVM简析

    导言: 在数据结构中,我们第一了解到了栈或堆栈,它的结构特点是什么呢?先进后出,它的特点有什么用呢?我们在哪里可以使用到栈结构,栈结构那么简单,使用这么久了为什么不用其它结构替代? 一.程序在内存中的 ...

  4. JVM 诊断神器-Arthas实战

    什么是Arthas(阿尔萨斯) 阿里开源的Java诊断工具,它可以在运行时对Java应用程序进行动态诊断和调试 当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决 这个类从哪个 jar 包加 ...

  5. allure的安装与配置

    一.安装配置JDK 说明:以win10系统为例 1.Oracle官网下载JDK:https://www.oracle.com/java/technologies/downloads/ 请下载安装JDK ...

  6. Vue_Django 登录注册+图书管理系统

    Vue前端 注册页面 点击查看代码 <template> <div class="register"> <el-row :gutter="2 ...

  7. 聊聊Flink必知必会(二)

    Checkpoint与Barrier Flink是一个有状态的流处理框架,因此需要对状态做持久化,Flink定期保存状态数据到存储空间上,故障发生后从之前的备份中恢复,这个过程被称为Checkpoin ...

  8. 【Leetcode】 # 20 有效的括号 Rust Solution About Rust Stack implement

    给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效.有效字符串需满足:    左括号必须用相同类型的右括号闭合.    左括号必须以正确的顺序闭合.注意空字符 ...

  9. CF1810H Last Number

    大难题,但是非常的有意思.思路来自 \(\color{black}\text{艾}\color{red}\text{利克斯·伟}\).补充了一点小细节. 题意 对于一个 可重 集合 \(S\),初始为 ...

  10. PowerBuilder从入坑到放弃(二)编码规范

    前言 上一篇我们从0到1用pb开发了一个helloworld程序,并成功将开发的程序编译打包并且制作了安装包. 程序员最讨厌的莫过于写文档和别人不写注释. 不知道大家会不会和我一样,在找bug时,有段 ...