自動翻訳システム2025-03-02
いつから止まってるのかわからない自動翻訳システムを修理する
前回どこまで作業したのやら...
名前がついてないせいで見つけられないのがダメなのでは
見つけようとして検索した時に他の仕掛かりタスクが目に入って気が散ってしまう
そもそもCosense→GitHub(Markdown)ができてればRoo CodeやDevinがすんなり読めるのでは
Cosense上で検索しないでもlocalでgrepする
これは脇道なので保留
ローカルにも変更がある、これなんだっけな...
とりあえずこれを確認するか
https://gyazo.com/e46fa4514beb436903ebc6501bd05271
コミットしてからScapboxにImportしようとしてエラーになっているので最新の翻訳結果はある
この日本語版と英訳版をとりあえずGitHubに入れるのは手だな→(A)
これは脇道なので保留
何度か発生している「なぜかimportでエラーになる」問題か
https://gyazo.com/85130a94d34679a90dac48570dd10b70
Devinのやりかけタスク、レビューされないまま忘れ去れてる
少し気が散ってた
https://gyazo.com/972d432d35972194740045b704e4b1b2
そもそも68ページ程度のインポートでエラーになってるな
大体全部書いてあるじゃん
/nishio-enはこのままだと更新されないし、GitHub Pagesで動くようになったら「こちらをみてね」的ページをピン留めして終了
この方針でいいと思う
そのあとQuartzで何かやった記憶があるけど
これか
Quartzで公開するところまではできたが微妙だった
リポジトリはnishio/from_scrapbox
部品としてのQuartzはnishio/quartzに本家からforkしてある
カスタマイズする可能性があるからね
ビルド結果はnishio/quartzではなくnishio/quartz_deployにいれた
英訳バージョンがGitHub Pagesでデプロイされている状況までは実現できているが、Quartzによるバックリンクの表示などに不可解な点があり、Quartzをデバッグするのか、そんな微妙なものは捨ててしまった方がいいのでは、という大きめの意思決定で止まっている
今日の残り時間が少なくなってきた
当初の課題である「自動英訳が壊れている問題」に関しては、自動英訳は壊れておらずJSONのインポートが止まってる状況
これを直すことにエフォートを割かない
内部APIを前提としてシステムを組むのはそもそも筋が悪いので
最新のものを手動インポートする
将来的に自動化された移行先ができたら「移行先はこちら」とリンクして停止する流れ
JSONからMarkdownにしてQuartzで静的HTMLにしてGitHub Pagesで配信する案について
できているが、Quartzの出すHTMLが微妙
(A)の観点から、Markdownの段階でGitHubに置かれるだけで有用性がある
できた
確認したらできてなかった
エラーになった時にそのまま続行してしまってるのだな
こんどこそできた
ちゃんとMarkdownになってGitHubに入っている
まとめ
さっそくDevinに読ませている
https://gyazo.com/e9c6e1d55ddfd1de1847663c2ce69448
キーワードを与えてそれについてCosenseを読みまくってまとめることが出来てそうな雰囲気
importの方は手動でimportしようとしてみたら
https://gyazo.com/1ad374cbe6fabd554668045fa776240f
これがエラーの原因なのでは?
雑に修正スクリプトを実装させる
https://gyazo.com/916d125f50269dd4abfa983373521fa0
直した
https://gyazo.com/f5d7c9b05c423bfb1e3cc8efc815097b
ファイルのコピーもできるようになったんだ
private projectからpublic projectに移植する時に便利かも?
メモ:
同一タイトルをマージするプログラムを作った
これを走らせてからdiffをするなら問題なくimportできるのか?
逆に言えば今までは同一タイトルのものが上書きされてしまっていたということ
2025-03-03
Devin.icon
ワークフローの修正:
nishio_trans_commit.yamlワークフローに新しいステップを追加し、diffの作成後、コミット前に同一タイトルのページをマージするようにしました。
マージスクリプトの修正:
merge_same_title_page.pyスクリプトを修正して、data_en_diff.jsonファイルを処理するようにしました。
スクリプトは大文字小文字を区別せずにタイトルの重複を検出し、同一タイトルのページをマージします。
マージされたページは最も新しいページをベースにし、すべてのページの内容を結合します。
マージしてからdiffを取った方がいい気がするな
これenついてるのに翻訳されちゃってるな、なぜだ?
なになにを実装しろと指示するのではなく予期しない振る舞いについて「なぜ?」と聞くスタイルの使い方
https://gyazo.com/f2b7370c3f54ceafbec85059e8298a64
https://gyazo.com/4b1be491d2be64799d21d2fbe39eb7e3
ちゃんとenの説明ページを確認してるの偉いな
そして結論「実装したつもりになって使ってたけどまだ実装してなかった」
このあと「こう実装したらいいと思う」と提案してきたので「それをやって」と指示した
---
混乱度が上がってきたのでタスクをたたむ方向にハンドルを切る
本題でない部分でトラブってしまった
・データの更新をmainにやるとコミットログが見づらいからブランチを分けた
・上手くいってると思ってさらにGitHub Actionsをうまく行っている部分といってない部分の2つに分けた
・異なるアクション間で共有できてないデータがあったのでコミットしようとした
・ここで最初の「ブランチを分ける」がそもそも成功していないのにset -eし忘れてたことが発覚
根本的に、データが単なる上書きではなく「前回との差分を取る」という処理があるのでブランチを分けたら
「コードの最新はmain、データの最新はauto-update、どうする?」
になっちゃうのか... 考えが足りなったな...
Roo.icon
問題の全体像が見えてきました。以下の点が問題の原因と考えられます:
...
diff_json.pyの処理:
前回のデータ(nishio/data_en_prev.json)と現在のデータ(data_en.json)を比較
更新されたページのみを抽出してdata_en_diff.jsonに保存
問題点:
ブランチを分けたことで、mainブランチとauto-updateブランチでデータの状態が異なる
差分処理は前回のデータと現在のデータを比較するため、ブランチが異なると正しく差分が取れない
nishio_trans_import.yamlでは、auto-updateブランチをチェックアウトしているが、このブランチには最新のデータがあるとは限らない
解決策を考えましょう:
ブランチ戦略の見直し:
データとコードを同じブランチで管理する
または、データの差分処理をブランチに依存しない方法に変更する
---
Roo Codeの意見をChatGPT o3でセカンドオピニオン
o3-mini-high.icon
提案された解決策は合理的だと思います。
単一ブランチ運用であれば、コードとデータが同じ状態で管理でき、差分処理の不整合を防げる点が大きなメリットです。
エラー検出の強化(set -eの追加)により、失敗時の早期検知と対応が可能になり、信頼性が向上します。
分岐を維持する場合は、ワークフロー間での同期やデータ共有の仕組みをしっかり整える必要がありますが、その実装コストとリスクも考慮すべきです。
全体として、シンプルな運用を目指すなら単一ブランチ戦略が望ましく、提案された方法は効果的なアプローチだと考えます。
---
無事直った
これでしばらく止まっていた自動翻訳システムが無事再開した
今日書いてたものも英訳されてる