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

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

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

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

因此,我们需要一种更智能和灵活的方法来提高内容过滤筛查的效率和准确性。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. Linux 大页内存 Huge Pages 虚拟内存

    Linux为什么要有大页内存?为什么DPDK要求必须要设置大页内存?这都是由系统架构决定的,系统架构发展到现在,又是在原来的基础上一点点演变的.一开始为了解决一个问题,大家设计了一个很好的方案,随着事 ...

  2. 【python基础】循环语句-continue关键字

    1.continue关键字 continue关键字的作用是:用来告诉 Python 跳过当前循环代码块中的剩余语句,然后继续进行下一轮循环. 其在while循环和for循环中的作用示意图如下 我们通过 ...

  3. selenium-wire简介

    一.简介 以下来自chatGPT回答: selenium-wire是一个基于selenium的Python库,它扩展了selenium的功能,使得我们可以在自动化测试中直接访问和修改浏览器的网络请求和 ...

  4. WPF 入门笔记 - 03 - 样式基础及模板

    程序的本质 - 数据结构 + 算法 本篇为学习李应保老师所著的<WPF专业编程指南>并搭配WPF开发圣经<WPF编程宝典第4版>以及痕迹大佬<WPF入门基础教程系列> ...

  5. C++面试八股文:什么是RAII?

    某日二师兄参加XXX科技公司的C++工程师开发岗位第13面: 面试官:什么是RAII? 二师兄:RAII是Resource Acquisition Is Initialization的缩写.翻译成中文 ...

  6. 大数据实战手册-开发篇之pycharm远程开发调试

    2.1 pycharm远程开发调试 2.1.1 python版本一致 #版本都保持3.6.6 #root cd /usr/local/python3/bin/pip3 list 备注:[python模 ...

  7. mysql 查询时间段的数据怎么写?

    测试让我查询2个时间段的数据,这里不怎么会,所以记录一下:   一般可以使用如下语法: select * from xxx表 where xx='xx' and time between '时间戳' ...

  8. Mysql基础篇(二)之函数和约束

    一. 函数 Mysql中的函数主要分为四类:字符串函数.数值函数.日期函数.流程函数 1. 字符串函数 常用函数如下: 函数 功能 CONCAT(S1, S2, ......Sn) 字符串拼接,将S1 ...

  9. UI自动化打开游览器失败 elenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 90

    原因是: 驱动和当前游览器版本不一致 查看游览器版本: 下载对应驱动: http://npm.taobao.org/mirrors/chromedriver/ 在自己电脑上 找到原来驱动的存放位置 将 ...

  10. SDK 接入|游戏语音之“范围语音”接入实践

    语音是线上游戏用户的主要交流方式,大多数用户会通过游戏中的内置语音功能与其他玩家沟通,而一些用户在游戏没有内置语音功能的情况下,通过其他语音软件与玩家沟通. 并且,游戏语音在玩家开黑时承担着至关重要的 ...