前两天我在一个网站上看到一个很棒的智能摘要功能,研究后发现它是通过调用付费API实现的。奈何囊中羞涩,于是我把这个功能改造了一下,对接了百度千帆的免费API接口,既保留了原有功能的完整性,又实现了零成本部署。
1、下载文件
本文以子比主题演示,下载本文中的代码文件上传到主题的js和css目录中。 下载地址:http://www.ucbk.cn
2、修改主题的func.php或者functions.php文件
最下面添加
function qianfan_gpt_init() {
register_setting('qianfan_gpt_options', 'qianfan_gpt_api_key');
register_setting('qianfan_gpt_options', 'qianfan_gpt_theme');
add_options_page(
'百度千帆大模型设置',
'百度千帆',
'manage_options',
'qianfan-gpt-settings',
'qianfan_gpt_settings_page'
);
}
add_action('admin_menu', 'qianfan_gpt_init');
function qianfan_gpt_settings_page() {
?>
<div class="wrap">
<h1>百度千帆大模型设置</h1>
<form method="post" action="options.php">
<?php settings_fields('qianfan_gpt_options'); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">API Key</th>
<td>
<input type="password" name="qianfan_gpt_api_key"
value="<?php echo esc_attr(get_option('qianfan_gpt_api_key')); ?>"
class="regular-text" />
<p class="description">从<a href="https://console.bce.baidu.com/iam/#/iam/apikey/list" target="_blank">百度千帆平台</a>获取的 API Key</p>
</td>
</tr>
<tr valign="top">
<th scope="row">主题样式</th>
<td>
<select name="qianfan_gpt_theme" class="regular-text">
<option value="default" <?php selected(get_option('qianfan_gpt_theme'), 'default'); ?>>默认主题</option>
<option value="yanzhi" <?php selected(get_option('qianfan_gpt_theme'), 'yanzhi'); ?>>胭脂主题</option>
<option value="simple" <?php selected(get_option('qianfan_gpt_theme'), 'simple'); ?>>简约主题</option>
<option value="menghuan" <?php selected(get_option('qianfan_gpt_theme'), 'menghuan'); ?>>梦幻主题</option>
</select>
<p class="description">选择AI摘要的显示主题样式</p>
</td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
function qianfan_gpt_handle_request() {
check_ajax_referer('qianfan_gpt_nonce', 'security');
$api_key = get_option('qianfan_gpt_api_key');
if (empty($api_key)) {
wp_send_json_error('API Key 未配置', 403);
}
$content = isset($_POST['content']) ? sanitize_text_field($_POST['content']) : '';
if (empty($content)) {
wp_send_json_error('内容不能为空', 400);
}
$response = wp_remote_post('https://qianfan.baidubce.com/v2/chat/completions', [
'headers' => [
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $api_key
],
'body' => json_encode([
'model' => 'ernie-speed-8k',
'messages' => [
[
'role' => 'system',
'content' => '你是一个专业的文章摘要生成器,请根据用户提供的内容生成简洁、准确的中文摘要。摘要应包含文章的主要观点和关键信息,长度在150-300字之间。使用简洁明了的语言,避免直接复制原文句子。'
],
[
'role' => 'user',
'content' => '请为以下内容生成摘要:\n\n' . $content
]
]
]),
'timeout' => 15
]);
if (is_wp_error($response)) {
wp_send_json_error($response->get_error_message(), 500);
}
$body = json_decode(wp_remote_retrieve_body($response), true);
if (isset($body['error_code'])) {
wp_send_json_error($body['error_msg'], $body['error_code']);
}
wp_send_json_success($body);
}
add_action('wp_ajax_qianfan_gpt_summary', 'qianfan_gpt_handle_request');
add_action('wp_ajax_nopriv_qianfan_gpt_summary', 'qianfan_gpt_handle_request');
function qianfan_gpt_enqueue_scripts() {
wp_enqueue_style(
'qianfan-gpt-css',
get_template_directory_uri() . '/css/qianfan_gpt.min.css',
[],
'1.0.0'
);
wp_enqueue_script(
'qianfan-gpt-js',
get_template_directory_uri() . '/js/qianfan_gpt.min.js',
['jquery'],
'1.0.1',
true
);
$current_theme = get_option('qianfan_gpt_theme', 'default');
wp_localize_script('qianfan-gpt-js', 'qianfanGPTConfig', [
'ajax_url' => admin_url('admin-ajax.php'),
'nonce' => wp_create_nonce('qianfan_gpt_nonce'),
'postSelector' => '.single-post .wp-posts-content',
'wordLimit' => 1000,
'title' => '智能摘要',
'theme' => $current_theme,
'name' => '百度千帆AI',
'loadingText' => '生成中...',
'typingAnimate' => true
]);
}
add_action('wp_enqueue_scripts', 'qianfan_gpt_enqueue_scripts');

3、后台设置
记得去申请APIKey,这里就不演示怎么申请了

4、效果
效果可以看一下本文开头
5、结束语
大家有米的话还是推荐支持一下大佬,和作者一样的就凑合用一下这个吧。
如果需要对接DeepSeek的可以参考本文文末下面的代码文件,DeepSeek我只是测试了一下,可以正常使用,但是没有切换主题的选项,动手能力强的博主可以自己修改一下
理论上,支持大部分主题,其他主题需要修改php代码中的,可以参考一下大佬的postSelector
'postSelector' => '.single-post .wp-posts-content',
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
没有相关内容!
暂无评论...