之前写过一篇文章「Google搜索成最大入口,简单谈下个人博客的SEO」,文章里介绍了网页的描述信息TDK(Title、Description和Keywords)对SEO的重要作用,尽管已经意识到了TDK能够直接影响到SEO的效果,但仍存在随意编写或忽略的情况,究其原因,第一是懒散,嫌麻烦,第二是不懂,随便写写效果不佳。曾经幻想有一个工具既能读懂文章的意思,又对SEO比较的了解,可以根据文章内容自动生成SEO友好的TDK,一直以来也仅仅是幻想,但随着AI的出现,随着GPT的普及,让这件原本几乎不太可能实现的事情也变得容易了很多

写好文章丢给GPT,再配上一段提示词,GPT就能根据文章的内容生成SEO友好的slug、title、keywords和description等信息,例如我把上篇文章「 全程使用 AI 从 0 到 1 写了个小工具」的内容丢给DeepSeek,让他从SEO友好的角度生成文章的TDK等信息

可以看到DeepSeek生成的内容确实十分的专业,利用AI生成SEO友好的TDK已然可以实现了。虽然功能能够实现,但每次都要复制文章内容给GPT,还是麻烦的,于是考虑借助API来实现自动化,许多AI模型都有提供API,但几乎全都收费,提供API还免费的不多,调研了一圈,决定试用硅基流动,主要原因是当前邀请注册送2000万Token,同时也支持Json格式输出,这对于我后续要拿到数据做自动化处理可太重要了。也想试用的朋友可以用我的推荐链接注册或是填写我的推荐码:tqPo40nB,这样就能免费获得2000万的Token

实际体验下来2000万的Token根本用不完,我300多篇文章近60万字,加上前期的调试调用,全部文章重新生成一遍SEO友好的描述信息,也就用了大概180万Token,用不完,根本用不完

过程

大概的实现流程是,调用AI的API,把文章内容喂它,同时让它输出Json格式的结果,我们拿到结果之后,把相应的TDK描述信息例如Keywords和Description写入数据库,然后再调用生成程序把文章连带这些描述生成HTML文件,最后上传到github自动发布,整个流程就算完成了。这其中基本的流程我的博客后台程序都已经是实现好的,需要修改的主要就是根据文章内容,调用AI来生成SEO友好的描述信息,然后把这些信息写入数据库。具体的实现过程很简单,主要就两步,以我用的硅基流动平台为例

首先去注册平台账号并登录,登录之后点击页面左侧的API密钥-新建API密钥,填写描述信息了之后就创建了一个API密钥

然后就可以调用API传入文章内容+需求让他生成数据,硅基流动它不是具体的某个模型,而是提供了一个模型市场,这个模型市场里的模型都可以调用,部分模型支持openai库进行调用,这样就比较方便,我们通过python调用,需要Python版本高于3.7.1,在调用之前先安装openai库,执行如下命令:

pip install --upgrade openai

安装完成后,就可以调用,一个简单的调用示例如下:

import json
from openai import OpenAI def generate_seo_data(content):
client = OpenAI(
api_key="sk-xxxxxxxx", # 替换成自己的密钥
base_url="https://api.siliconflow.cn/v1"
) try:
response = client.chat.completions.create(
model="deepseek-ai/DeepSeek-V2.5",
messages=[
{"role": "system", "content": "You are a helpful assistant designed to output JSON."},
{"role": "user", "content": f"? 以下是一篇markdown格式的文章,请根据文章内容从SEO友好的角度提取出slug、title、keywoards和description,至少10个keywords,要列表格式:{content}"
"Please respond in the format {\"slug\": ..., \"title\": ..., \"keywords\": ..., \"description\": ...}"}
],
response_format={"type": "json_object"}
) return json.loads(response.choices[0].message.content)
except Exception as e:
print("Error generating SEO data:", str(e))
return {"slug": "", "title": "", "keywords": [], "description": ""}

把代码里的api_key替换成第一步里生成的key,稍微调整下content的内容就可以为你所用。输出的结果就是这样的

>>> blog = Blog.objects.get(title='运维自动化系统各模块介绍')
>>> seo_data = generate_seo_data(blog.content)
>>>
>>> seo_data.get('slug')
'devops-automation-platform-overview'
>>>
>>> seo_data.get('title')
'运维自动化平台功能模块全面解析'
>>>
>>> seo_data.get('keywords')
['运维自动化', '资产管理', '容器管理', '监控告警', '作业系统', '任务系统', '域名管理', '备份系统', '数据库服务', '费用中心', '审计中心', '用户管理']
>>>
>>> seo_data.get('description')
'本文从整体视角介绍了一个较为完善的运维自动化系统包含的主要功能模块,包括工作台、资产管理、容器管理、监控告警、作业系统、任务系统、域名管理、备份系统、数据库服务、费用中心、审计中心和用户管理,详细解析每个模块如何解决实际运维中的问题。

然后我只需要把这些输出的数据保存到数据库,会自动触发页面生成方法并上传,整个流程就完成了

后记

当初找了好久的工具尝试了很多的方法来实现SEO友好型TDK信息的自动生成,始终没有很好的方案,现在终于找到了完美的方式来解决这个问题,但如今已经进入AI的时代,传统网站加速走向没落变成了一个不争的事实,那即便是生成再完美的TDK,做再好的SEO,意义还大吗

AI用的越多,越是感叹其强大,同时带来的打击也越大

AI 实践|零成本生成SEO友好的TDK落地方案的更多相关文章

  1. Google Colab——零成本玩转深度学习

    前言 最近在学深度学习HyperLPR项目时,由于一直没有比较合适的设备训练深度学习的模型,所以在网上想找到提供模型训练,经过一段时间的搜索,最终发现了一个谷歌的产品--Google Colabora ...

  2. ASP.NET的SEO: 服务器控件背后——SEO友好的Html和JavaScript

    本系列目录 假设你需要从一个页面转向其他页面,下面有很多种方式,你是如何选择的呢?你能清晰的说明理由么?         <%--链接的表现形式--%>        <asp:Hy ...

  3. 如何利用开源思想开发一个SEO友好型网

    如果你有一个网站需要去做SEO优化的时候,不要期望你的努力能立即得到回报.耐心等待并更正内容营销策略,最终会发现你的网站很受用户欢迎.下面就教你如何利用开源思维开发一个SEO友好型网站! 首先,你应该 ...

  4. 零成本搭建个人博客之图床和cdn加速

    本文属于零成本搭建个人博客指南系列 为什么要使用图床 博客文章中的图片资源文件一般采用本地相对/绝对路径引用,或者使用图床通过外链进行引用展示.本地引用的弊端我认为在于: 图片和博客放在同一个代码托管 ...

  5. ajax 如何做到 SEO 友好

    我猜你是在网络上搜索“ajax如何被搜索引擎收录”.“ajax SEO”.“ajax SEO友好”等关键词来到这里的.你可能已经很疲惫了,因为前段时间我也这样搜索,但是我发现搜索到的内容质量不高,有的 ...

  6. Oracle EBS-SQL (CST-3):检查零成本交易.sql

    SELECT            '零成本交易'                                交易异常类型          ,msi.segment1               ...

  7. 零成本实现Android/iOS自动化测试:基于Appium和Test Perfect

    https://item.taobao.com/item.htm?spm=a230r.1.14.14.42KJ3L&id=527677900735&ns=1&abbucket= ...

  8. 用AI思维给成本降温,腾讯WeTest兼容性测试直击底价!

    WeTest 导读 当AI成为各行业提高产业效率的动能,很多人开始疑惑,这架智能化的“无人机”何时在移动应用测试中真正落地?在今年的国际数码互动娱乐博览会(ChinaJoy)上,腾讯WeTest给出了 ...

  9. 使用syncthing和蒲公英异地组网零成本实现多设备实时同步

    设想一个场景,如果两台电脑之间可以共享一个文件夹,其中一个增删更改其中的内容时,另一个也能同步更新,而且速度不能太慢,最好是免费的.那么syncthing就可以满足这个要求.syncthing可以实现 ...

  10. Web前端开发最佳实践(7):使用合理的技术方案来构建小图标

    大家都对网站上使用的小图标肯定都不陌生,这些小图标作为网站内容的点缀,增加了网站的美观度,提高了用户体验,可是你有没有看过在这些网站中使用的图标都是用什么技术实现的?虽然大部分网站还是使用普通的图片实 ...

随机推荐

  1. MessageConsumer

    @Slf4j @Component public class MessageConsumer { @Autowired private PpcRequestMessageListener ppcReq ...

  2. Qt编写可视化大屏电子看板系统23-模块1产量汇总

    一.前言 大屏系统采用结构模块化的分层设计思路,一个表对应一个最小模块比如模具产量.零件产量,数据库采集的时候采集对应的表,拿到数据后按照对应的数据规则传给控件绘制,其中模具产量.零件产量两个模块采用 ...

  3. Qt编写地图综合应用35-设备分布图

    一.前言 设备分布图在所有的地图应用案例项目中,最常见最普遍最基础,就是将项目中的设备信息,比如设备名称.设备所在的经纬度坐标.设备的其他信息(设备地址.设备参数等),通过标注点的形式添加到地图中,至 ...

  4. Qt编写地图综合应用7-百度离线地图

    一.前言 离线地图的核心其实就是拿到这些瓦片地图文件,并不是离线地图的代码怎么写,其实离线地图的网页代码和在线地图的网页代码几乎一致的,主要就是将对应的依赖的js文件从在线的地址改成本地的地址,然后可 ...

  5. Uniapp仿ChatGPT Stream流式输出(非Websocket)

    前言 最近写一个chagpt小程序,流式输出可以使用websocket也可以使用stream来实现,这里就不折腾websocket的了,我发现uniapp实现流式输出的方式挺多的,主要是有些小程序还不 ...

  6. Applitools_问题汇总

    1.  Android使用Real Device 问题1: AttributeError: 'NoneType' object has no attribute 'to_capabilities' 解 ...

  7. .NET 响应式编程 System.Reactive 系列文章(三):Subscribe 和 IDisposable 的深入理解

    .NET 响应式编程 System.Reactive 系列文章(三):Subscribe 和 IDisposable 的深入理解 引言:为什么理解 Subscribe 和 IDisposable 很重 ...

  8. CDS标准视图:会计员 I_AccountingClerk

    视图名称:会计员 I_AccountingClerk 视图类型:基础 视图代码: 点击查看代码 @AbapCatalog: { sqlViewName: 'IFIACCCLERK', // compi ...

  9. CDS标准视图:设备信息 I_EquipmentData

    视图名称:I_EquipmentData 视图类型:基础视图 视图代码: 点击查看代码 @EndUserText.label: 'Equipment Data' @VDM.viewType: #COM ...

  10. G1原理—4.G1垃圾回收的过程之Young GC

    大纲 1.G1的YGC过程 2.YGC并行处理阶段的过程 3.YGC串行处理阶段的过程(一) 4.YGC串行处理阶段的过程(二) 5.整个YGC的执行流程总结 1.G1的YGC过程 (1)YGC相关的 ...