このサイトはHugoで開発されているのですが、筆者はいつも中国語のタイトルを使っているため、生成される記事のハイパーリンクが親しみやすくありません。要するに、発信したときに見栄えが悪く、中国語の文字がハイパーリンク内で%E4%BD%A0%E5%A5%BDのような形式に変換されてしまうのです。Slugを設定すれば解決できるのですが、毎回手動で設定する必要があり、面倒です。
そこで、今日はClaude4を使って翻訳アシスタントを開発してみようと思います。中国語のタイトルを自動的に英語のスラッグに変換し、記事中にハイパーリンクを追加することで、手動設定の手間を省きます。
クロード4は素晴らしい、文脈理解能力と複雑なタスク処理の効率が大幅に向上している。
プロジェクトアドレス
国内プロジェクトアドレス:https://cnb.cool/ttf248/hugo-content-suite 海外プロジェクトの場所:https://github.com/ttf248/hugo-content-suite
コード実装
実装のアイデアですが、まず全ての記事をスキャンし、タグ情報と記事タイトルを抽出した後、ローカルの大規模言語モデル(gemma-3-12b-itなど)を用いて翻訳します。
実際の開発において、以前のモデルと比較して、Claude4
はいくつかの顕著な特徴を示しています。多岐にわたる機能要件に対応するため、Claude4
は自動的にインタラクティブメニューを設計し、様々な使用シナリオを網羅的に考慮しています。例えば、タグ処理に関して、Claude4
はタグの統計と分析だけでなく、分類統計もサポートし、さらには未ラベルの記事を検出することも可能です。また、プレビュー機能やタグページ生成機能も提供されています。
ローカルLLMとの連携、翻訳キャッシュの追加、広範囲にわたるコードのリファクタリングなど、あらゆることをClaude4
が一括で完了させ、ほとんど問題なく実行できた。プロジェクト規模は大きくないものの、多くの小機能が含まれていた。従来の大規模言語モデルでは開発中に内容を忘れてしまうことが多かったが、今回のClaude4
は非常に優れたパフォーマンスを発揮し、コンテキストの忘れがあまり見られなかった。
要するに、知能が向上し、次はその後の開発作業を Claude4
に移行する予定です。日常のコーディングにおける主力モデルとして活用します。
翻訳キャッシュ
この点に関しては、大規模言語モデルの呼び出し回数を減らすだけでなく、実際にローカルで12Bモデルを実行すると、効率は高く、作業を妨げることはありません。しかし、毎回大規模言語モデルを呼び出すと少し遅くなることがあります。また、記事の関連性を固定するために全量更新を行う際、記事のタイトルが長い場合、稀に翻訳結果が異なり、記事のリンクが変わってしまうという事態が発生することがあり、これは非常に困ります。
機能改善
プロジェクト全体を Claude4
に投げ込み、最適化の余地を分析した結果、以下の提案が得られました。
配置外置化 - 提高可维护性和灵活性
结构化日志 - 便于问题排查和监控
性能监控 - 了解系统运行状况
用户体验 - 进度条等视觉反馈
错误处理 - 更完善的异常处理机制
代码组织 - 更清晰的模块划分
コードを確認しました、全て問題ありません。例えば設定ファイルですが、元のコードの設定をデフォルト設定に変換し、設定ファイルを読み込む際に、対応する設定ファイルがない場合、自動的にデフォルトの設定ファイルが生成されるため、ユーザーの誤りを避けることができます。
要件:本文を翻訳する際、現在の翻訳効率を動的に計算し、残りの時間を予測し、関連情報をコンソールに出力すること。現在、記事の文字数を取得済み。各行を翻訳する際に、現在の翻訳文字数、時間、100字あたりの翻訳時間の推定値を算出し、同時に記事全体の翻訳にかかる残り時間を予測する。
コードは終わったけど、あまり満足いかないので、AIに新しいデザイン案を提供してもらった。
効率計算方法を複数提供:リアルタイム効率、平均効率、スライディングウィンドウ効率 表示方法を改善:プログレスバー、段階的統計、動的更新 より多くの有用な指標を追加する:API呼び出し回数、成功率など
コードが完了した後、新たな驚きがありましたが、翻訳効率の統計情報がリアルタイムで表示され、無駄なスクロールは発生しませんでした。
翻訳本文を英語に(合計7163文字)… 検出された翻訳が必要な行は53行です。 [1/53] ステージ1/6 [░░░░░░░░░░░░░░░░░░░░░░░░░] 1.9% 翻訳 354 文字… 完了 (3.1秒) | API呼び出し #1 完了 (1.5秒) | API呼び出し #2 完了 (0.9秒) | API呼び出し #3 完了 (0.2秒) | API呼び出し#4 完了 (1.0秒) | API呼び出し #5 完了 (1.0秒) | API呼び出し #6 完了 (0.2秒) | 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秒] 9.4% 翻訳 110文字… 残り時間: 55秒 | 推定完了: 00:10:19 8秒] 進捗 11.3% 翻訳 114 文字… 処理速度: 3211.3 行/分 | 合計時間: 8秒] 13.2% 翻訳 16 文字… [8/53] ステージ1/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%) - 時間: 3秒 - 残り時間: 3分8秒💾 キャッシュファイル保存済み、翻訳記録5件を含む [█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 10/360 (2.8%) - 時間: 6秒 - 残り時間: 3分28秒💾 キャッシュファイル保存済み、翻訳記録10件を含む [██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 15/360 (4.2%) - 時間: 9秒 - 残り時間: 3分30秒💾 キャッシュファイル保存済み、翻訳記録15件を含む [██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 20/360 (5.6%) - 時間: 13秒 - 残り時間: 3分36秒💾 キャッシュファイル保存済み、翻訳記録20件を含む [███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 25/360 (6.9%) - 時間: 16秒 - 残り時間: 3分33秒💾 キャッシュファイル保存済み、25件の翻訳記録を含む [████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 30/360 (8.3%) - 時間: 19秒 - 残り時間: 3分30秒💾 キャッシュファイル保存済み、30件の翻訳記録を含む [████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 35/360 (9.7%) - 時間: 22秒 - 残り時間: 3分25秒💾 キャッシュファイル保存済み、35件の翻訳記録を含む
=== Hugo 博客管理工具 ===
🚀 核心功能
1. 一键处理全部 (完整博客处理流程)
📝 内容管理
2. 生成标签页面
3. 生成文章Slug
4. 翻译文章为多语言版本
💾 缓存管理
5. 查看缓存状态
6. 生成全量翻译缓存
7. 清空翻译缓存
0. 退出程序