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接口,帮助我们实现更多的功能。