Gemini CLIで遊ぶ
先日リリースされたGemini CLIの制限がChatGPTよりもユルい感じなので、まだChatGPTよりもお馬鹿さんだとしても、みんなが食いつけば一気に賢くなってくれると信じて、導入してみました。
また、最近Dockerとか全然使ってなかったので(仕事では全く使わない…)、Dockerに包んでみようかな…と、こっちも趣味で。
DockerコンテナにはNode.jsのv20を設定し、vimだけ入れて、あとは.inputrc, .vimrcだけ設定して、最後にGemini CLIをインストールするようにしました。(趣味の実験なので、かなり軽量の方向で)
インストール後、コンテナに入ってgeminiコマンドを実行してみたところ、OAuth認証でコケました。(^^;
どうやらブラウザからGUIの認証を要求されているようだったので、Windowsに同じようにNode.js入れてGemini CLIを入れて実行したら、そのようでした。
Dockerで実現するにはどうするか…と認証の選択にAPIキーがあったので、Google Cloudにプロジェクトを作って APIキーを作って、このAPIキーを作成、セキュリティとして自分のグローバルIPだけを許可して、キー登録したらgeminiコマンドができるようになりました。
…が、これはヌカ喜びで、Gemini自体がGoogle検索を行うとたちまちフリーズ。タイムアウトエラーに。
なるほど。APIキー内のAPIサービスにGoogle Custom Searchなどが完全に抜け落ちてるのか…と分かったのですが、ここで脳裏に課金が過ぎりました。基本無料で全てやってきたので、Google Cloudのサービスを使いまくっていると面倒なことになると思い、ネットの住人の様子を確認したら、やはり簡単に溢れる(or 無課金なら制限がかかる)と分かったので、APIキーの方法は却下することに。
そこで、Gemini CLIのコミュニティを覗いてみると、SSHによるOAuthに詰まっている人が沢山いて、Dockerではなかったものの、Google GUI認証について同じようなことが議論されており、突破方法が挙がっていたので真似してみました。
要は--debugでgeminiコマンドを実行し、その際に表示されるOAuth認証のURLをホストOSで実行し、その後失敗はするものの、そのlocalhostで始まるURLを実際のホストにフォワードすれば(私の場合はDockerコンテナ内で実行すれば)行けるという感じです。
一旦、geminiコマンドを終了させ、Gemini CLIの内容をrm -rf ~/.geminiで削除して設定を全消ししてから、別ターミナルでコンテナ入ったbashをスタンバイさせつつ、再度gemini --debugでOAuthを実行して上記の流れをgeminiコマンドのデバッグログ、ホストOS、スタンバイコンテナbashで連携しました。
アクター1.geminiコマンド(デバッグモード)を実行するDockerコンテナ。
アクター2.OAuth認証を途中まで実行するホストOS(Linux Mint)のChrome。
アクター3.「2」で最終的に失敗するURLを実行するDockerコンテナのbash。
1.アクター1でgemini --debugでOAuth認証に必要なURLが表示されるので、
これをコピー。認証をOAuthで実行。
2.アクター2のホストOSでChromeからURLを実行すると、Googleアカウントログインが
表示されるので、ログインまで進める。そうすると
「このサイトにアクセスできません」の画面が表示されるので、この時の URL をコピーする。
3.アクター3のDokcerコンテナのbashよりcurlコマンドで、curl "<URL>"を実行して認証を通す。
4.(゚д゚)ウマー
という感じで、さも、ホストOSでGemini CLIやっているようなDockerコンテナが作れました。
Google検索もしてくれます。

Google検索もしてくれます。
Gemini CLIの利点は、Node.jsを使っているので、AIがローカルファイルアクセスを直接できることです。上手く付き合えれば、自PC内のファイルの整理やローカルで実行するプログラムをそのまま構築してくれます。
ただ、一歩間違えるとファイルを破壊したり消したりもしてくれるような気もしますw (それを理解したうえでDockerに包もうかと思ったのが理由です。実行前にプロンプトは出ますが、実際にファイルのコピーや削除を実施してくれました)

試しに私の作成した画像解析スクリプトの一部を解析させたら、
しっかり概要を説明してくれた。
うん、いい感じです。普段遣いはChatGPTの方が現時点では使いやすくて頭も良いですが、Geminiが追いつけ追い越せでやるでしょうから、二足のわらじで楽しんでみようと思います♪
いやぁ~、このような環境構築は面白い。ゲームで遊ぶくらい面白いな。(´▽`)
また、最近Dockerとか全然使ってなかったので(仕事では全く使わない…)、Dockerに包んでみようかな…と、こっちも趣味で。
DockerコンテナにはNode.jsのv20を設定し、vimだけ入れて、あとは.inputrc, .vimrcだけ設定して、最後にGemini CLIをインストールするようにしました。(趣味の実験なので、かなり軽量の方向で)
インストール後、コンテナに入ってgeminiコマンドを実行してみたところ、OAuth認証でコケました。(^^;
どうやらブラウザからGUIの認証を要求されているようだったので、Windowsに同じようにNode.js入れてGemini CLIを入れて実行したら、そのようでした。
Dockerで実現するにはどうするか…と認証の選択にAPIキーがあったので、Google Cloudにプロジェクトを作って APIキーを作って、このAPIキーを作成、セキュリティとして自分のグローバルIPだけを許可して、キー登録したらgeminiコマンドができるようになりました。
…が、これはヌカ喜びで、Gemini自体がGoogle検索を行うとたちまちフリーズ。タイムアウトエラーに。
なるほど。APIキー内のAPIサービスにGoogle Custom Searchなどが完全に抜け落ちてるのか…と分かったのですが、ここで脳裏に課金が過ぎりました。基本無料で全てやってきたので、Google Cloudのサービスを使いまくっていると面倒なことになると思い、ネットの住人の様子を確認したら、やはり簡単に溢れる(or 無課金なら制限がかかる)と分かったので、APIキーの方法は却下することに。
そこで、Gemini CLIのコミュニティを覗いてみると、SSHによるOAuthに詰まっている人が沢山いて、Dockerではなかったものの、Google GUI認証について同じようなことが議論されており、突破方法が挙がっていたので真似してみました。
要は--debugでgeminiコマンドを実行し、その際に表示されるOAuth認証のURLをホストOSで実行し、その後失敗はするものの、そのlocalhostで始まるURLを実際のホストにフォワードすれば(私の場合はDockerコンテナ内で実行すれば)行けるという感じです。
一旦、geminiコマンドを終了させ、Gemini CLIの内容をrm -rf ~/.geminiで削除して設定を全消ししてから、別ターミナルでコンテナ入ったbashをスタンバイさせつつ、再度gemini --debugでOAuthを実行して上記の流れをgeminiコマンドのデバッグログ、ホストOS、スタンバイコンテナbashで連携しました。
アクター1.geminiコマンド(デバッグモード)を実行するDockerコンテナ。
アクター2.OAuth認証を途中まで実行するホストOS(Linux Mint)のChrome。
アクター3.「2」で最終的に失敗するURLを実行するDockerコンテナのbash。
1.アクター1でgemini --debugでOAuth認証に必要なURLが表示されるので、
これをコピー。認証をOAuthで実行。
2.アクター2のホストOSでChromeからURLを実行すると、Googleアカウントログインが
表示されるので、ログインまで進める。そうすると
「このサイトにアクセスできません」の画面が表示されるので、この時の URL をコピーする。
3.アクター3のDokcerコンテナのbashよりcurlコマンドで、curl "<URL>"を実行して認証を通す。
4.(゚д゚)ウマー
という感じで、さも、ホストOSでGemini CLIやっているようなDockerコンテナが作れました。
Google検索もしてくれます。
Google検索もしてくれます。
Gemini CLIの利点は、Node.jsを使っているので、AIがローカルファイルアクセスを直接できることです。上手く付き合えれば、自PC内のファイルの整理やローカルで実行するプログラムをそのまま構築してくれます。
ただ、一歩間違えるとファイルを破壊したり消したりもしてくれるような気もしますw (それを理解したうえでDockerに包もうかと思ったのが理由です。実行前にプロンプトは出ますが、実際にファイルのコピーや削除を実施してくれました)
試しに私の作成した画像解析スクリプトの一部を解析させたら、
しっかり概要を説明してくれた。
うん、いい感じです。普段遣いはChatGPTの方が現時点では使いやすくて頭も良いですが、Geminiが追いつけ追い越せでやるでしょうから、二足のわらじで楽しんでみようと思います♪
いやぁ~、このような環境構築は面白い。ゲームで遊ぶくらい面白いな。(´▽`)
コメント
コメントの投稿