Claude4发布,尝试开发:hugo标签、超链接翻译助手

本站点基于 hugo 开发,但是笔者一直用的都是中文标题,导致生成的文章超链接不太友好,说人话就是,发出去的时候,看起来不太友好,中文的字符在超链接中会被转义成 %E4%BD%A0%E5%A5%BD 这种形式,虽然可以通过设置 slug 来解决,但是每次都要手动设置,太麻烦了。

所以,今天尝试用 Claude4 来开发一个翻译助手,自动将中文标题转换为英文 slug,并且在文章中添加超链接。这样就可以避免手动设置了。

claude4 真香,上下文的能力大幅提升,复杂任务的处理效率也大幅提升。

项目地址

国内项目地址:https://cnb.cool/ttf248/hugo-content-suite 国外项目地址:https://github.com/ttf248/hugo-content-suite

代码实现

先说一下实现思路:我们需要扫描所有文章,提取标签信息和文章标题,然后调用本地的大模型(如 gemma-3-12b-it)进行翻译。

在实际开发中,与前代大模型相比,Claude4 展现了几个显著的亮点。由于功能需求较多,Claude4 自动设计了交互式菜单,全面考虑了各种使用场景。例如,在标签处理方面,Claude4 不仅支持标签的统计与分析,还包括分类统计,甚至能够检测无标签文章。此外,它还提供了预览和生成标签页面的功能。

无论是对接本地大模型、新增翻译缓存,还是进行大范围的代码重构,Claude4 都一次性完成,几乎没有出现任何问题。尽管项目规模不大,但包含了许多小功能。以往在开发过程中,大模型经常会遗忘前面的内容,而这次的 Claude4 表现非常出色,几乎没有出现遗忘上下文的情况

简而言之,智能程度提高了,后续准备切换到 Claude4 进行更多的开发工作,作为日常编码的主力模型。

翻译缓存

这个点单说,除了减少大模型调用次数,实际本地跑 12b 模型,效率挺高,不耽误事,但是如果每次都要调用大模型,还是会有点慢的。其次就是,为了固定文章的连接,如果执行全量更新操作,文章的标题很长,偶尔就会出现,两次翻译出来的结果不一样的情况,导致文章的链接变了,这个就很尴尬了。

功能优化

整个项目扔给 Claude4,分析优化的空间,拿到如下的建议:

配置外置化 - 提高可维护性和灵活性
结构化日志 - 便于问题排查和监控
性能监控 - 了解系统运行状况
用户体验 - 进度条等视觉反馈
错误处理 - 更完善的异常处理机制
代码组织 - 更清晰的模块划分

审核了代码,全部都没什么毛病,比如配置文件,知道自己将原来代码中的配置,转换成默认配置,读取配置文件的时候,如果没有对应的配置文件,就会自动生成一个默认的配置文件,避免了用户的操作失误。

需求:翻译正文的时候,动态计算当前翻译的效率,预估剩余的时间,相关信息输出到控制台:现在获取了文章的字符数量,每行进行翻译的时候,当前翻译的字符数量,时间,拟合计算每100字符的翻译时间,同时计算文章剩余的翻译预估时间

代码搞定了,效果不是很满意,我就让AI提供新的设计方案:

  • 提供多种效率计算方式:实时效率、平均效率、滑动窗口效率
  • 改进显示方式:进度条、分段统计、动态刷新
  • 增加更多有用的指标:API调用次数、成功率等

代码完成以后,发现了新的惊喜,翻译效率的统计信息实时刷屏,但是没有无脑向下滚动。

翻译正文到 English (总计 7163 字符)… 检测到 53 行需要翻译 [1/53] Stage1/6 [░░░░░░░░░░░░░░░░░░░░░░░░░] 1.9% 翻译 354 字符… ✅ 完成 (3.1s) | API调用 #1 ✅ 完成 (1.5s) | API调用 #2 ✅ 完成 (0.9s) | API调用 #3 ✅ 完成 (0.2s) | API调用 #4 ✅ 完成 (1.0s) | API调用 #5 ✅ 完成 (1.0s) | API调用 #6 ✅ 完成 (0.2s) | API调用 #7 📊 进度: 行 13.2% (7/53) | 字符 12.9% (925/7163) 114.6 字符/秒 📊 ⚡ 效率: 实时76.4 | 平均117.9 | 最近109.0 | 阶段113.6 字符/秒 📊 🎯 成功率: 100.0% (7/7) | 剩余: 46行7 7s] 9.4% 翻译 110 字符… ⏱️ 预估剩余: 55s | 预计完成: 00:10:19 8s] 11.3% 翻译 114 字符… 💾 处理速度: 3211.3 行/分钟 | 总用时: 8s] 13.2% 翻译 16 字符… [8/53] Stage1/6 [███░░░░░░░░░░░░░░░░░░░░░░] 15.1% 翻译 166 字符…

以前控制程序写的也不是很多,好奇如何实现的,翻看代码

// 清屏并重新显示 (动态刷新效果)
if translationCount > 1 {
   fmt.Print("\033[6A\033[K") // 上移6行并清除
}

性能统计菜单

新增的性能统计菜单,让我自己设计,都不一定能设计的这么完善

📊 性能统计: 🔄 翻译次数: 360 ⚡ 缓存命中率: 1.4% (5/365) ⏱️ 平均翻译时间: 315.927234ms 📁 文件操作: 73 ❌ 错误次数: 0

进度条显示

新增的进度条显示,详细的进度、已用时间、剩余时间预估

请选择功能 (0-13): 10 🔍 正在收集翻译目标… 📄 已加载缓存文件,包含 0 个翻译记录

📊 翻译缓存统计: 🏷️ 标签总数: 229 个 📝 文章总数: 131 篇 ✅ 已缓存: 0 个 🔄 需翻译: 360 个

确认生成全量翻译缓存?(y/n): y 🚀 正在生成全量翻译缓存… 📄 已加载缓存文件,包含 0 个翻译记录 🔍 检查缓存中的翻译… 🔄 需要翻译 360 个新标签 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 5/360 (1.4%) - 用时: 3s - 预计剩余: 3m8s💾 已保存缓存文件,包含 5 个翻译记录 [█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 10/360 (2.8%) - 用时: 6s - 预计剩余: 3m28s💾 已保存缓存文件,包含 10 个翻译记录 [██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 15/360 (4.2%) - 用时: 9s - 预计剩余: 3m30s💾 已保存缓存文件,包含 15 个翻译记录 [██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 20/360 (5.6%) - 用时: 13s - 预计剩余: 3m36s💾 已保存缓存文件,包含 20 个翻译记录 [███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 25/360 (6.9%) - 用时: 16s - 预计剩余: 3m33s💾 已保存缓存文件,包含 25 个翻译记录 [████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 30/360 (8.3%) - 用时: 19s - 预计剩余: 3m30s💾 已保存缓存文件,包含 30 个翻译记录 [████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 35/360 (9.7%) - 用时: 22s - 预计剩余: 3m25s💾 已保存缓存文件,包含 35 个翻译记录


=== Hugo 博客管理工具 ===

🚀 核心功能
  1. 一键处理全部 (完整博客处理流程)

📝 内容管理
  2. 生成标签页面
  3. 生成文章Slug
  4. 翻译文章为多语言版本

💾 缓存管理
  5. 查看缓存状态
  6. 生成全量翻译缓存
  7. 清空翻译缓存

  0. 退出程序
Licensed under CC BY-NC-SA 4.0
最后更新于 2025年05月26日 00:49
金融IT程序员的瞎折腾、日常生活的碎碎念
使用 Hugo 构建
主题 StackJimmy 设计