本文目录导读:

我来详细说明PHP接入内容审核API的方法,以百度AI内容审核和阿里云内容安全为例。
百度AI内容审核接入
前期准备
// 1. 安装SDK composer require baidu-aip/php-sdk
代码实现
<?php
require_once 'vendor/autoload.php';
use AipContentCensor;
class ContentModeration {
private $client;
public function __construct($appId, $apiKey, $secretKey) {
$this->client = new AipContentCensor($appId, $apiKey, $secretKey);
}
// 文本审核
public function textCensor($text) {
try {
$result = $this->client->textCensorUserDefined($text);
// 解析结果
if ($result['conclusionType'] == 1) {
return ['passed' => true, 'message' => '审核通过'];
} elseif ($result['conclusionType'] == 2) {
return ['passed' => false, 'message' => '内容违规'];
} else {
return ['passed' => false, 'message' => '需要人工审核'];
}
} catch (Exception $e) {
return ['passed' => false, 'message' => $e->getMessage()];
}
}
// 图片审核
public function imageCensor($imagePath) {
try {
$image = file_get_contents($imagePath);
$result = $this->client->imageCensorUserDefined($image, 'BASE64');
return $this->parseResult($result);
} catch (Exception $e) {
return ['passed' => false, 'message' => $e->getMessage()];
}
}
private function parseResult($result) {
if ($result['conclusionType'] == 1) {
return ['passed' => true, 'message' => '审核通过'];
} else {
$errorMsg = $result['data'][0]['msg'] ?? '内容违规';
return ['passed' => false, 'message' => $errorMsg];
}
}
}
// 使用示例
$moderation = new ContentModeration('your_app_id', 'your_api_key', 'your_secret_key');
$result = $moderation->textCensor('测试内容');
print_r($result);
安全
前期准备
// 1. 安装SDK composer require alibabacloud/green // 2. 配置阿里云AccessKey
代码实现
<?php
require_once 'vendor/autoload.php';
use AlibabaCloud\Green\Green;
use AlibabaCloud\Client\AlibabaCloud;
class AliyunContentModeration {
private $client;
public function __construct($accessKeyId, $accessKeySecret) {
AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)
->regionId('cn-shanghai')
->asDefaultClient();
$this->client = new Green();
}
// 文本审核
public function textModeration($content) {
try {
$result = $this->client->textScan()
->withTasks([[
'dataId' => uniqid(),
'content' => $content
]])
->withScenes(['antispam']) // 场景:反垃圾
->request();
$body = $result->toArray();
return $this->handleResult($body);
} catch (Exception $e) {
return ['passed' => false, 'message' => $e->getMessage()];
}
}
// 图片审核
public function imageModeration($imageUrl) {
try {
$result = $this->client->imageScan()
->withTasks([[
'dataId' => uniqid(),
'url' => $imageUrl
]])
->withScenes(['porn', 'terrorism', 'ad']) // 审核场景
->request();
$body = $result->toArray();
return $this->handleResult($body);
} catch (Exception $e) {
return ['passed' => false, 'message' => $e->getMessage()];
}
}
private function handleResult($body) {
if (isset($body['data'][0]['results'])) {
$results = $body['data'][0]['results'];
foreach ($results as $item) {
if ($item['suggestion'] !== 'pass') {
return [
'passed' => false,
'label' => $item['label'],
'message' => '内容违规:' . $item['label']
];
}
}
return ['passed' => true, 'message' => '审核通过'];
}
return ['passed' => false, 'message' => '审核异常'];
}
}
// 使用示例
$moderation = new AliyunContentModeration('your_access_key_id', 'your_access_key_secret');
$result = $moderation->textModeration('需要审核的文本内容');
通用封装接口
<?php
interface ContentModerationInterface {
public function textCheck($content);
public function imageCheck($imageUrl);
public function videoCheck($videoUrl);
}
class ContentModerationService implements ContentModerationInterface {
private $provider;
public function __construct($provider = 'baidu') {
$this->provider = $provider;
$this->initProvider();
}
private function initProvider() {
switch ($this->provider) {
case 'baidu':
$this->client = new AipContentCensor(
getenv('BAIDU_APP_ID'),
getenv('BAIDU_API_KEY'),
getenv('BAIDU_SECRET_KEY')
);
break;
case 'aliyun':
// 初始化阿里云客户端
break;
default:
throw new Exception('Unsupported provider');
}
}
public function textCheck($content) {
// 具体实现...
}
public function imageCheck($imageUrl) {
// 具体实现...
}
public function videoCheck($videoUrl) {
// 具体实现...
}
}
集成到Laravel框架
<?php
// config/contentmoderation.php
return [
'default' => env('CONTENT_MODERATION_PROVIDER', 'baidu'),
'providers' => [
'baidu' => [
'app_id' => env('BAIDU_APP_ID'),
'api_key' => env('BAIDU_API_KEY'),
'secret_key' => env('BAIDU_SECRET_KEY'),
],
'aliyun' => [
'access_key_id' => env('ALIYUN_ACCESS_KEY_ID'),
'access_key_secret' => env('ALIYUN_ACCESS_KEY_SECRET'),
],
],
];
// 在控制器中使用
use App\Services\ContentModerationService;
class PostController extends Controller {
public function store(Request $request) {
$moderation = new ContentModerationService();
$result = $moderation->textCheck($request->input('content'));
if (!$result['passed']) {
return response()->json([
'success' => false,
'message' => '内容审核未通过:' . $result['message']
], 422);
}
// 审核通过,继续处理
}
}
注意事项
- API密钥安全:不要将API密钥硬编码在代码中,使用环境变量
- 错误处理:做好异常捕获和日志记录
- 并发处理:考虑队列处理大量审核请求
- 缓存策略:对重复内容可以缓存审核结果
- 白名单机制可以设置白名单跳过审核
这样,你就可以在PHP项目中快速集成内容审核功能了。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播