统计
  • 建站日期:2022-01-17
  • 文章总数:3590 篇
  • 评论总数:6927条
  • 分类总数:43 个
  • 最后更新:今天

WordPress通过OpenAI接口自动优化TAG标签描述内容

首页 建站技术 正文
广告
广告
广告
广告

image.png

准备工作

1.已经搭建好 WordPress 站点,无论是否上线网站,只需要能够连接“外网”,这样才能够正常的访问到 OpenAI 接口,因为国内已经屏蔽了 OpenAI 网站,包括 API 接口,如果没法访问“外网”,那么需要找一个 OpenAI API 的反向代理地址,或者自己利用国外服务器搭建一个反向代理的接口地址。

2.如果你已经搭建好自己的 OpenAI API 接口的代理,那么可以跳过这一步骤,或者可以通过以下代码自行搭建反向代理:

#PROXY-START/v1/ by https://www.aybk.cn/wordpress-tag-description-by-openai-api.html
location /{
    proxy_pass https://api.openai.com/;
    proxy_set_header Host $proxy_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_http_version 1.1;
    proxy_ssl_server_name on;
    proxy_ssl_name $proxy_host;
    add_header X-Cache $upstream_cache_status;
}
#PROXY-END/

以上为 Nginx 环境的反向代理规则,大家可以参考使用,如果你和阿影我一样也是使用的宝塔面板,可以直接通过宝塔面板创建站点,绑定和解析好域名,添加反向代理,但是需要注意是否和阿影我提供的反向代理规则有区别的地方,因为直接通过宝塔面板后台添加反向代理可能会失败。

3.剩下的就需要获取 OpenAI API Keys(https://platform.openai.com/account/api-keys),同样也需要外网才能访问,初次注册的账号一般会有 5 美元的体验额度可以使用,登录后创建自己的 Keys 就可以使用 OpenAI API 接口服务了

接入 OpenAI API

完成以上准备功能,就可以编辑你的 WordPress 当前主题的 functions.php 文件,将以下代码添加到合适的位置即可实现 OpenAI 自动生成 WordPress 标签描述内容,但是需要注意的是 OpenAI 生成内容需要时间,所以可能需要稍等片刻才能在标签中看到自动生成的描述内容,其次则是只会对新增的标签自动生成,不会影响已经存在的标签。

//WordPress 新增文章标签动作 by https://www.aybk.cn/wordpress-tag-description-by-openai-api.html
add_action('created_post_tag', 'fanly_basic_created_post_tag', 10, 3);
function fanly_basic_created_post_tag($term_id, $tt_id, $args) {
  wp_remote_post( admin_url( 'admin-ajax.php' ), [
    'blocking'  => false,
    'timeout'  => 1,
    'body'    =>[
      'action'  => 'fanly_basic_post_tag_description',
      'term_id'  => $term_id,
      'name'    => $args['name'] ?? null
    ]
  ]);
}
//WordPress 标签描述自动生成
add_action('wp_ajax_fanly_basic_post_tag_description', 'fanly_basic_post_tag_description');
add_action('wp_ajax_nopriv_fanly_basic_post_tag_description', 'fanly_basic_post_tag_description');
function fanly_basic_post_tag_description() {
  $term_id = $_POST['term_id'];
  $name = $_POST['name'];
  if($name){
    $prompt = $name . '是什么 回答至少 300 字,且必须是简体中文。';//标签名称+要求
    $token = 'sk-添加你自己的 key';//secret key
    $api = 'https://api.openai.com';//接口地址,或者是反向代理的镜像地址
    $res = wp_remote_post("$api/v1/chat/completions", [
      'headers' => ['Content-Type'=>'application/json','Authorization'=>"Bearer $token"],
      'timeout' => 300,
      'body' => json_encode([
        'model' => 'gpt-3.5-turbo',//gpt-3.5-turbo gpt-4
        'messages' => [[
          'role' => 'user',
          'content' => $prompt
        ]],
        'max_tokens' => 3000
      ])
    ]);
    if(!is_wp_error($res)){
      $body = json_decode($res['body'], true);
      $content = $body['choices'][0]['message']['content'] ?? null;
      $description = trim($content);
      if($description){
        wp_update_term($term_id, 'post_tag', ['description'=>$description]);
      }
    }
  }
}

以上代码只需要填写你自己的 key 即可使用。默认使用的是 OpenAI GPT3.5 接口,而 GPT4 接口还需要申请,晚些时候我也会给大家分享详细的 GPT4 权限的申请办法和教程。

至此就是阿影本次给大家分享的全部内容,如果大家还需要针对已经存在的 WordPress 标签自动生成描述内容,请在文章评论区留言,阿影我后期再给大家提供解决办法。当然大家也可以根据以上的代码做二次开发,做个所有标签的循环就可以实现了。

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系客服并出示版权证明以便删除!
微信UI在线聊天源码 聊天系统PHP聊天源码分享
« 上一篇 11-03
怎么申请美国虚拟信用卡? 美国信用卡申请教程
下一篇 » 11-02

发表评论

  • 泡泡
  • 阿呆
  • 阿鲁
  • 蛆音娘
    没有更多评论了