【AI】网站文章添加智能摘要

Web2周前更新 小黑
96 00

前两天我在一个网站上看到一个很棒的智能摘要功能,研究后发现它是通过调用付费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');

【AI】网站文章添加智能摘要

3、后台设置

记得去申请APIKey,这里就不演示怎么申请了

【AI】网站文章添加智能摘要

4、效果

效果可以看一下本文开头

【腾讯云】2025上云采购,2核2G云服务器低至 68元/年

5、结束语

大家有米的话还是推荐支持一下大佬,和作者一样的就凑合用一下这个吧。

如果需要对接DeepSeek的可以参考本文文末下面的代码文件,DeepSeek我只是测试了一下,可以正常使用,但是没有切换主题的选项,动手能力强的博主可以自己修改一下

理论上,支持大部分主题,其他主题需要修改php代码中的,可以参考一下大佬的postSelector

'postSelector' => '.single-post .wp-posts-content',

© 版权声明

相关文章

没有相关内容!

暂无评论

none
暂无评论...