Content-Converter への移行と自動化パイプライン構築(開発日記 No.102)
関連リンク
はじめに
昨日は PyPI リリース作業におけるバージョン競合や仮想環境、CI/CD の問題解決、そしてリリースガイドの見直しを行いました。本日は、その流れを引き継ぎ、@diary-convert.yml
の改修に取り組み、変換エンジンを Diary-Converter から Content-Converter へと移行します。
背景と目的
従来の Diary-Converter の利用を廃止し、Content-Converter へ移行する背景には、より柔軟で効率的な変換処理を実現したいという目的があります。今回の移行により、CI/CD パイプラインの安定化、テンプレート・プロンプト・スクリプトの整備を目指します。
検討内容
Content-Converter の使い方を確認し、@diary-convert.yml
の修正方針を検討しました。また、テンプレートとプロンプトの整理、そしてスクリプト化(find-latest-diary.sh
, find-prev-article.sh
)によるテンプレート置換・後処理の自動化についても検討しました。
実装内容
まず、GitHub リポジトリ上のファイル内容を取得するための URL (https://raw.githubusercontent.com/{owner}/{repo}/{branch}/{path_to_file}
) を確認しました。Content-Converter が pip でインストールして使う CLI ツールであることを再認識し、ローカルで仮想環境を作成して Content-Converter をインストールしました。
次に、2025-06-09_101_development.md
を参考に、prompt ファイルを新規作成し、出力要件(コードブロック禁止、モデル名・スラッグの明示、余計な文の禁止等)を明記しました。テンプレート内の [LLM Model 名]
[前回の記事スラッグ]
はパイプラインで置換する方式に変更しました。
find-latest-diary.sh
と find-prev-article.sh
を tools/
に新規作成し、ローカルと CI/CD 共通で利用できるようにしました。スクリプトと Content-Converter を組み合わせてローカルで動作確認を行い、テンプレート置換・prompt 指定・変換・後処理までの一連の流れを確認しました。
2025-06-09_101_dev-diary.md
にまだコードブロックが残っている問題に対し、以前作成した @document_processor.py
の remove_markdown_code_block
メソッドを活用し、Content-Converter の出力後に後処理を追加しました。
技術的なポイント
- Content-Converter の CLI 運用、テンプレート置換、後処理の自動化
- LLM 出力の安定化とテンプレート適用の一貫性確保
- スクリプトの共通化による運用効率化
所感
Content-Converter への移行は、当初予想以上に手間取りましたが、自動化パイプラインを構築することで、今後の開発効率が大幅に向上すると感じています。特に、LLM 出力の安定化とテンプレート適用の一貫性を確保できたことは大きな成果です。ローカルと CI/CD で共通のスクリプトを利用できるようにしたことで、運用効率も向上しました。
苦労した点としては、Content-Converter の挙動を理解し、適切なプロンプトを作成することでした。また、以前のコードブロック問題が再発した際には、過去の経験を活かして迅速に対処することができました。
今後の課題
Content-Converter の更なる活用方法を模索し、LLM の出力品質を向上させるためのプロンプト改善を継続していく必要があります。また、今回構築した自動化パイプラインの安定性を確認し、必要に応じて修正を行う必要があります。
まとめ
本日の開発では、Content-Converter への移行、ワークフローのスクリプト化、テンプレート・プロンプトの工夫、記事後処理の自動化まで、一連の流れを整理・実装しました。これにより、開発プロセスの自動化が進み、より効率的な開発が可能になりました。
Discussion