カテゴリー: メモ

  • # 公式ドキュメントを完璧に手元へ!Playwrightで実践した「技術とマナー」の自動化術

    こんにちは!今日は「Gemini CLI」の公式ドキュメントを丸ごとMarkdown形式で保存した際のお話を紹介します。

    「公式ドキュメントをローカルでも見たい」「自分専用の検索ツールに使いたい」と思ったことはありませんか?

    私は「Gemini CLIのドキュメントをNotebookLMのソースにしたいけど取り込むドキュメントが無い。。」となりました。なければ公式ドキュメントから取得いてくればいい!

    今回は、最新の自動化ツール Playwright を使って、ただコピーするだけではない「こだわりの抽出術」をGeminiと実践してみました。

    ## 🚀 最初は「スクレイピング」で苦戦…

    最初は、ウェブサイトの見た目(HTML)を解析して、Geminiの力技でMarkdownに変換しようとしていました。

    しかし、この方法には困った問題が。

    – 表(テーブル)がガタガタになってしまう…
    – 箇条書きの階層が崩れる…
    – Geminiさんが気を利かせて要約してしまう…
    – サイトのデザインが変わると、すぐに動かなくなる…

    「もっと綺麗に、正確に取得する方法はないかな?」とサイトをじっくり観察していると、ある素晴らしい機能に気づきました。

    ## 💡 「公式のコピー機能」を味方につける

    Gemini CLIの公式サイトには、各ページに 「Copy as Markdown」 というボタンが用意されていたのです。

    「これだ!」と思いました。

    サイト自身がMarkdownを出力してくれるなら、それが一番正確なはずです。そこで、このボタンの仕組みを調査したところ、裏側で「Markdown専用のソースファイル」を読み込んでいることが分かりました。

    ## 🛠️ こだわりの自動化ポイント

    今回のGemini CLIによる自動化で特に大切にした、3つのポイントをご紹介します。

    ### 1. 「1:1の精度」へのこだわり

    Geminiに書き換えさせるのではなく、公式サイトが用意した「正解」をそのまま保存する仕組みを作りました。これにより、複雑なコードブロックや表も、公式サイトと全く同じクオリティで手元に再現できました。

    ### 2. 「サーバーへのマナー」:1.5秒の優しさ

    自動化プログラムは、人間とは比べ物にならない速さでサイトにアクセスできます。でも、あまりに速すぎると相手のサーバーに負担をかけてしまいます。最悪の場合、「攻撃」とみなされてアクセスを遮断されてしまうことも…。

    そこで、1ページ取得するごとに 「1.5秒待機する(おやすみタイム)」 というルールをプログラムに組み込みました。

    「速さ」よりも、相手のサイトを尊重する「マナー」を優先したのです。

    ### 3. 「使いやすさ」:リンクの魔法

    保存したファイルの中にあるリンクが「/docs/…」のままだと、手元で開いたときに正しくリンクが飛びません。これを一括で「https://geminicli.com/docs/…」という絶対パスに書き換える処理も追加しました。これで、どこからでも迷わず公式ドキュメントへ飛べるようになります。

    ## 🌟 終わってみて

    Geminiによって、Playwrightという強力なツールを使うことで、単なる「コピー」を超えた、高品質なナレッジベースを作ることができました。

    技術で便利にするのはもちろんですが、相手のサーバーへの配慮(レートリミット)を忘れないことで、安全で持続可能な自動化ができるのだと改めて実感しました。

    皆さんも、何かを自動化するときは「技術+マナー」をセットで考えてみると、より素敵な成果物が生まれるかもしれませんよ!


    この記事は、Gemini CLIを活用したドキュメント抽出プロジェクトの記録をもとに構成されました。

  • 外国のサービスは英語のドキュメントを読もう!

    外国のサービス(GoogleとかMetaとかApple等々)を使用する場合は、必ず英語版のドキュメントを読もう。
    英語版以外のローカライズされたドキュメントだと、重要な要素が記載されていない場合がある。

    FCMのFCM2023で廃止されたサービスが日本語のドキュメントやFAQで見当たらず、直撃を受けた。。。

    https://firebase.google.com/support/faq/?hl=en#fcm-depr-features

    2024/06/20で利用できなくなるのは、レガシーHTTPプロトコルでの配信だけでは無かったのだね😢

    英語は出来ないと厳しい。特にIT関連を仕事にしていく以上は。。

  • 更新の再開

    環境の移行

    AWS Lightsail 上に移動して再開してみる。

    EC2とか利用して再開も考えたのだが、管理や価格を考えてAWS Lightsailを追加って再開することにした。

    企業が提供するサービスはいつ終了するのか分からず(昨今のEvernoteの状況で切実に感じた)、やはりノウハウは自分で管理したい、ただローカルPC上で保存するとオンラインではできないので、サーバを立ててWordPress上に保存することにした。

    今まで通りに、さくらインターネットのVSPでもよかったのだが、最近、AWSでいろいろしたくなったのでAWS Lightsail上で環境作ってみることにした。

    はじめはEC2を使ったり、ELBやRDSを使ったりもしたが、値段が高くなるのと、管理コストが高いのでLightsail上で環境を作ってみた。

    ぼちぼちと更新していく。