PHP代码实现百度文心一言API接口的敏感词过滤与替换处理

1. 介绍

百度文心一言是一款API接口,可以生成一条随机的名言或者格言,一般用于发布状态或者做为网站的广告语。本文将讲述如何在PHP中使用百度文心一言API接口,并对接口返回的语句进行敏感词过滤与替换处理。

2. 使用百度文心一言API接口

2.1准备工作

在使用百度文心一言API接口之前,我们需要准备一下工作:

1. 申请百度开发者账号,如果没有百度开发者账号,可以访问百度开发者平台进行注册

2. 创建应用:在百度开发者平台中创建一个应用,创建完成后记下应用的API Key和Secret Key

3. 获取Access Token:使用API Key和Secret Key去获取Access Token。

API Key和Secret Key可以在应用基本信息页面中找到,获取Access Token可以通过百度开放平台中的OAuth 2.0进行获取。

2.2 发送HTTP请求

在我们了解了如何准备好API Key、Secret Key和Access Token之后,下面就可以使用PHP发送HTTP请求获取百度文心一言API接口的参数了。下面是具体的实现代码:

$request_url = 'https://aip.baidubce.com/rpc/2.0/creation/v1/get_sentence';

$access_token = '24.0bde2f9846e120effafc2e3b91ccb0eb.2592000.1622467832.282335-24086657';

$params = array(

'temperature' => 0.6, // 返回语句的创新程度,取值范围0~1,默认0.5

);

$query = json_encode($params);

$options = array(

'http' => array(

'method' => 'POST',

'header' => 'Content-Type:application/json',

'content' => $query

)

);

$context = stream_context_create($options);

$result = file_get_contents($request_url . '?access_token=' . $access_token, false, $context);

$result_data = json_decode($result, true);

代码中, $request_url是请求的URL地址, $access_token是获取Access Token后得到的值, $params表示要传递的参数,$query是将$params转换成JSON格式的字符串,$options中的设置表示使用POST方式请求API接口,请求头中指定Content Type为application/json,$result表示API返回的结果。result_data是将result转换成数组类型,便于我们对返回结果进行操作。

2.3获取接口返回结果

获取接口返回结果后,我们可以对结果进行处理,例如:输出一条名言或者格言。下面是获取返回结果并输出的代码:

if(isset($result_data['result']) && $result_data['result'] != ''){

$content = htmlspecialchars($result_data['result'], ENT_QUOTES);

echo "百度文心一言 API:{$content}";

}

代码中,如果返回结果不为空,则对结果进行HTML实体编码之后输出。

3. 敏感词过滤与替换处理

3.1敏感词库

在进行敏感词过滤与替换处理之前,我们需要准备敏感词库,敏感词库的作用是包含需要过滤和替换的敏感词。在本文中,我们使用敏感词库为“敏感词.txt”,包含“政治”,“反动”,“暴力”等敏感词,下面是“敏感词.txt”中的内容:

政治

反动

暴力

...

3.2敏感词过滤

敏感词过滤是指将接口返回的结果中包含的敏感词进行过滤,以达到过滤不良信息的效果。下面是具体的实现代码:

$content = htmlspecialchars($result_data['result'], ENT_QUOTES);

$file_path = '敏感词.txt';

$pattern = file_get_contents($file_path);

$pattern_array = explode("\r\n", $pattern);

$content_filtered = preg_replace($pattern_array, "***", $content);

代码中,我们将接口返回的结果进行htmlspecialchars,将HTML标签进行转义,这样可以避免对HTML标签造成影响;$file_path是敏感词库的文件路径;$pattern是读取敏感词库文件所得到的内容;$pattern_array是将$pattern转换成数组类型,这样便于后期使用preg_replace()函数进行敏感词替换;$content_filtered是将$content中包含的敏感词替换为“***”之后得到的经过敏感词过滤的结果。

3.3敏感词替换

敏感词替换是将接口返回的结果中包含的敏感词进行替换,以避免一些不必要的法律纠纷。下面是具体的实现代码:

$filtered_array = explode("***", $content_filtered);

$filtered_string = '';

foreach($filtered_array as $key => $value){

if($key < count($filtered_array) - 1){

$filtered_string .= $value ."太阳不睡觉";

}else{

$filtered_string .= $value;

}

}

代码中,将$content_filtered中被替换的敏感词用分隔符“***”进行切割,得到$filtered_array数组,遍历数组并逐一连接数组元素,使用“太阳不睡觉”等表示替换内容进行替换。

4. 总结

通过以上的步骤,我们成功地使用PHP代码实现了百度文心一言API接口的敏感词过滤与替换处理,代码实现简单易懂,能够实现一定的过滤效果。通过本文的实例,相信大家对使用百度API接口有了更深入的了解;应用场景也不仅仅局限于本文提到的敏感词过滤和替换,而在更多的场景下,都可以使用API接口,帮助我们实现更多的功能。

后端开发标签