NISHIO Hirokazu[日本語][English]

自動翻訳システム2025-03-02

  • いつから止まってるのかわからない自動翻訳システムを修理する

  • 前回どこまで作業したのやら...

  • 名前がついてないせいで見つけられないのがダメなのでは

  • 見つけようとして検索した時に他の仕掛かりタスクが目に入って気が散ってしまう

    • 2024-09-08外部脳GitHub作業(A)
      • そもそもCosense→GitHub(Markdown)ができてればRoo CodeやDevinがすんなり読めるのでは
        • Cosense上で検索しないでもlocalでgrepする
      • これは脇道なので保留
  • etude-github-actions

  • 日記2025-01-09

    • ローカルにも変更がある、これなんだっけな...

  • とりあえずこれを確認するか

  • image

    • コミットしてからScapboxにImportしようとしてエラーになっているので最新の翻訳結果はある
      • この日本語版と英訳版をとりあえずGitHubに入れるのは手だな→(A)
        • これは脇道なので保留
    • 何度か発生している「なぜかimportでエラーになる」問題か
  • image

    • Devinのやりかけタスク、レビューされないまま忘れ去れてる
  • 少し気が散ってた

  • image

    • そもそも68ページ程度のインポートでエラーになってるな
  • (A)のことを考えても「なんかもうScrapboxにimportするの辞めた方がいいんじゃないの」だな

    • 2024-11-17外部脳考える
      • 大体全部書いてあるじゃん
      • /nishio-enはこのままだと更新されないし、GitHub Pagesで動くようになったら「こちらをみてね」的ページをピン留めして終了

      • この方針でいいと思う
  • そのあとQuartzで何かやった記憶があるけど

    • Cosense英訳のホスティング2024-11-24
      • これか
    • 機械翻訳したScrapboxをQuartzで公開2024-11-24
      • 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に置かれるだけで有用性がある

GitHub Actionsで他のrepoにpush

できた

まとめ

さっそくDevinに読ませている

importの方は手動でimportしようとしてみたら image これがエラーの原因なのでは?

雑に修正スクリプトを実装させる image 直した

image ファイルのコピーもできるようになったんだ

  • private projectからpublic projectに移植する時に便利かも?

メモ:

2025-03-03 Devin.icon

  • ワークフローの修正:
    • nishio_trans_commit.yamlワークフローに新しいステップを追加し、diffの作成後、コミット前に同一タイトルのページをマージするようにしました。
  • マージスクリプトの修正:
    • merge_same_title_page.pyスクリプトを修正して、data_en_diff.jsonファイルを処理するようにしました。
    • スクリプトは大文字小文字を区別せずにタイトルの重複を検出し、同一タイトルのページをマージします。
    • マージされたページは最も新しいページをベースにし、すべてのページの内容を結合します。

マージしてからdiffを取った方がいい気がするな

[/nishio-en/Way of thinking](https://scrapbox.io/nishio-en/Way of thinking)

  • これenついてるのに翻訳されちゃってるな、なぜだ?

なになにを実装しろと指示するのではなく予期しない振る舞いについて「なぜ?」と聞くスタイルの使い方 image image ちゃんと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の追加)により、失敗時の早期検知と対応が可能になり、信頼性が向上します。
  • 分岐を維持する場合は、ワークフロー間での同期やデータ共有の仕組みをしっかり整える必要がありますが、その実装コストとリスクも考慮すべきです。

全体として、シンプルな運用を目指すなら単一ブランチ戦略が望ましく、提案された方法は効果的なアプローチだと考えます。


無事直った

これでしばらく止まっていた自動翻訳システムが無事再開した

今日書いてたものも英訳されてる https://scrapbox.io/nishio-en/Automatic_Translation_System_2025-03-02


(C)NISHIO Hirokazu / Converted from Markdown (ja)
Source: [GitHub] / [Scrapbox]