🌸

開発の途中で感じた違和感をそのままにしない! | note2Zenn開発記(変革編 / Vol.6)

に公開

🚩変革のきっかけ

👉CLIで毎回打つのが手間

元々CLIで実行するスタイルを採用していましたが、毎回コマンドを打つのが面倒に感じていました。
>>ただnoteのURLを貼って終わり!<<
これが理想ではないかと考えました。

👉OpenAIのトークン消費が非常に小さい

OpenAI APIのトークン消費を確認したところ、思っていたよりもかなり少なかったです。
$5分の課金でほとんど使い切っていません。
0.16・・・( ^ω^)・・・
検証では2000文字以上のリクエストを50回以上行いましたが、消費はごくわずかでした。
image

この状況から、今回のツールにローカルLLMを使う価値は小さいと判断しました。
ローカルLLMのメリットは主に以下です。

  • いくらトークンを消費しても費用がかからない
  • ローカル完結で堅牢な構成にできる

しかし今回のケースでは、

  • トークン消費が非常に少ない
  • noteもZennも公開前提のコンテンツを扱う

ため、ローカルLLMの利点が活かせていませんでした。

🚩アプローチ

まとめると、

  • noteのURLを貼って終わりにしたい
  • ローカルLLMは廃止し、OpenAI API一本に絞る

この仕組みを実現するにはCLIだけでは難しく、UIが必要です。
そこで思いついたのが、

>>VSCode拡張機能にすればいいのでは?<<

Zennに記事投稿したい人はVSCodeやCursorの利用者が多いと予想でき、
UI実装も容易なため、この2点が噛み合うと考えました。

💡Tips

image

VSCodeの拡張機能は意外と簡単に実装できます。
私はCursorにお願いして構成を理解しました。
参考にしたサイトはこちらです。

VSCode拡張は基本的にTypeScriptで構成されるため、note2zennの実装はそのまま移行可能でした。

👊Try

🚙移行 with Cursor

AI駆動開発でCursorさんに移行を依頼し、Node/TypeScriptベースなので大きく構成を崩さずに進められそうです。
APIキーや個人情報の設定方法も確認しました。

image
いい質問ですって言われた(笑)

プロンプトには懸念や批判点を指摘してもらうようにするのがおすすめです。

以下は話し合いの結果まとめです。

# 方針まとめ

## 1. 開発の方向性と移行の全体像
* CLIベースからVSCode拡張へ移行
* 既存処理ロジックは維持し、入口だけ変更
* 入力はnote URLと保存ファイル名
* Ollamaは廃止しOpenAI API固定
* 設定は拡張のUIで完結
* バックアップ済みで全面置換可能

## 2. 設定の置き場所(最終案)

### SecretStorage(機密情報)
* OPENAI_API_KEY
* Gitトークン系

### 通常設定(note2zenn.*)
* モデル、出力先、デフォルト値など
* converter-config.json相当の設定値

### 実行時入力
* note URL
* basename

## 3. converter-config.jsonの扱い
* 拡張設定にnote2zenn.converterConfigを追加しGUI編集可能
* 実行時は従来のconverter-config.jsonと同等に利用
* 移行期はフォールバック可

## 4. 安定化ポイント
* 入力検証(URL形式、禁止文字、必須設定)
* 設定バリデーション
* 秘密情報の安全運用
* 実行UX(進捗表示、中断可能)
* 出力安全性(プレビュー/差分確認)
* 互換性管理
* ドキュメント同期

この内容をもとにCursorに移行を依頼し、拡張機能をパッケージ化して自分の環境に導入しました。

📝移行結果

VSCodeのサイドバー展開時

VSCodeのサイドバー展開はイメージ通りで良い感じです。
連続実行や意図的なバグには未対応ですが、今後対応予定です。

次に動作確認として、以前調査したSakanaAIの記事を使いました。

入力は上記の通り。保存されるフォルダやファイル名を指定したい人も多いと思うので、入力した場合、それを利用するようにしています。

入力は上記の通りで、保存先やファイル名を指定可能にしています。
実行中~
実行完了!実行時間は15秒くらいかな!

実行時間は約15秒でした。

ZennのGitHub連携結果も問題なく、指定した名称で登録できています。
指定した名称で登録できてますね!

中身もほぼ修正なしで公開済みです。

文章構成や画像、冒頭の挨拶を割愛するなど検証段階の課題は解決し、
URLを貼るだけでこの内容でZennに下書き登録できました。

📚Summary

今回「変革編」としたのは、個人的に強い意思を持っているためです。
SE/PGあるあるですが、当初決めた設定や構成を変えたくない気持ちがあり、
事前に検討やPoCを徹底的に行います。

しかし、開発途中で感じた違和感を放置したくありませんでした。
個人開発の良さは、主観的な良し悪しであっても大きく構成を見直せることです。

規模が大きいと難しいですが、まず一歩ずつ進んでみないと見えないこともあります。
CLIベースやローカルLLMの経験も後悔はなく、勉強になりました。

ツールの公開準備が整ったら、次回投稿でお知らせします。

***

使ってみたいと思ったら、記事の引用やスキをいただけると嬉しいです。

***

以上、「変革編」でした!

GitHubで編集を提案

Discussion