LLMに面倒なことをやらせるソフト「Code Cooker」の紹介
LLMに面倒なことをやらせたい
面倒なことはChatGPTにやらせようという本の著者のからあげです。
書籍では、様々な面倒なことをChatGPTにやらせています。ChatGPT単体(コアの部分)は、基本的にテキスト(言葉)を生成することしかできないので、どうやって面倒なことをやらせているかというと、ChatGPTの生成したテキストで、拡張機能を操作することで、実現しています。イメージ的には以下のように、ChatGPTの手足のように拡張機能を使う感じです。拡張機能としては、色々ありますがChatGPTが生成したコードを実行できるAdvanced Data Analysis(Code Interpreter)が重要かつ代表的な機能となります。
この機能はChatGPT独自のものだったのですが、最近はGeminiのGoogle AI Studioでもコード実行するAdvanced Data Analysis的な機能が使えるようになったり、ClaudeがArtifactsという機能で、似たように様々なことができるようになってきました。イメージ的には上の図と同様なのですが、恐らく内部的にはChatGPTはバックエンドの技術をメインにつかっているのに対して、Artifactsはフロントエンドの機能をメインに使っているといった違いがあるように感じています(中身は公開されていないので、挙動からの想像です)。
正直、使う分には何でもよいのですが、この機能はChatGPTでしかできない、この機能はClaudeでしかできない…といったようになると不便ですし、特定のサービスに囲い込まれるのも課金的につらいですよね。
そういうわけで、いろんなLLMでClaudeのArtifactsやChatGPTのAdvanced Data Analysis(Code Interpreter)的なことが実験できるソフトを作ってみました。
実は以下記事でも紹介しているのですが、色々ソフトもアップデートしたので、本記事ではあらためて簡単に使い方を紹介したいと思います。
ちなみに、ChatGPT/Claude/GeminiいずれかのAPI Keyが必要です。そしてあらかじめ言っておくと、ChatGPTやClaudeに比べるとめっちゃ不便であまり実用的でないです。開発者向けというか、完全に自分の実験用ですのでその点は注意ください。
特徴(メリット/デメリット)としては、以下です。
- APIさえあればArtifacts的なこともAdvanced Data Analysis的なことが手軽にできる
- 自分で好きなライブラリをインストールして使うこともできる
- LLMを簡単に切り替えられる
- GPT-4, GPT-4o, GPT-4o mini, Claude 3.5 Sonnet, Gemini 1.5 Pro, Gemini 1.5 Flashに対応
- GeminiのAPIの無料分を使えばある程度無料で使える
- Google Colabで手軽に使うこともできる
- UIがいまいち
Code Cooker使い方
ソフトは以下です。
ローカルでもGoogle Colabでも動かせます。初心者はGoogle Colabを使うのが手軽でよいと思います。
READMEに簡単なセットアップ方法と使い方は書いてあるのですが、少し丁寧に説明します。
Google Colabでのセットアップ方法
以下のNotebookの上のOpen in Colabをクリックして、上から実行していくだけです。
途中API Keyを入力するところがあるので、そこには手持ちのAPI Keyを入力してください。お金を使いたくない人は、GeminiのAPIに無料分があるのでそれを使うのがよいと思います。もしくは、頑張ってソフトを改造してローカルLLMに対応すれば無料で使えます。
最後まで実行すると Running on public URL: https://xxxx.gradio.live
というウェブリンクが発行されるので、クリックするとソフトが起動します。
ローカルでのセットアップ方法
OSはMacでもLinuxでもWindows(WSL2)でも動くと思います(Windowsは未テスト)
まずDockerをセットアップしてください。Docker知らない人は、以下記事参照ください。
以下コマンドでソフトをダウンロードします。
$ cd && git clone https://github.com/karaage0703/code-cooker
ダウンロードしたディレクトリ以下の./cooker/.config
というファイルにAPIを書き込んでください。以下のxxxの部分に自分のAPIキーを入力します。自分が使うLLMのAPI KeyだけでOKです。
[claude_api_key]
key = sk-xxx
[openai_api_key]
key = sk-xxx
[gemini_api_key]
key = xxx
以下コマンドでソフトを起動します。
$ cd ~/code-cooker
$ docker compose up -d base
$ docker exec -it code-cooker-base python3 app.py
ブラウザ(Google Chrome推奨)で以下アドレスにアクセスするとソフトが使えます。
以下コマンドでDockerコンテナを停止できます。ソフトを起動できないときは、一旦以下を実行してください。
$ cd ~/code-cooker
$ docker compose down
使い方
Google Colabでもローカルでも、起動したら以下のように表示されます。
データ分析・コード実行(Code Interpreter的使い方)
好きなLLMを選択して、システムプロンプトに「Data Analytics」を選択します。
あとは好きなプロンプトを入力してSubmitしてください。
以下のようにコードが実行されます。
以下のような結果画像もブラウザの右下に出てきます。
続けて会話したいときは、Operationを「Continute」にしてください。新たに会話したいときは「new」を選択しましょう。
なお、LLMを途中で変更したら、強制的に新しい会話からになります。
Webアプリ生成(Artifacts的使い方)
システムプロンプトに「Web App Creator」を選択します。あとは上記と同じです。
実行後は、ひと手間かかります。ClaudeのArtifactsのように右側に結果はでてきません。
Code Cookerのディレクトリ直下に「index.html」が生成されるので、自分の好きなブラウザでindex.htmlを開いてください。
以下のようにシューティングゲームがブラウザで遊べます。
作り直すたびにブラウザはリロードしてください。
システムプロンプトについて
システムプロンプトに「Empty」を選択すると、空のシステムプロンプトになります。LLMの比較をしたいときに便利かもしれません。
システムプロンプトはcooker/system_prompt.pyに書かれているので、プロンプトを変えたいときは、自分で好きに書き換えてください。
Code Cookerを使って作ってみたもの
最近は、LLMで新しい楽器を作って遊んだりしています。Web MIDIを使うと、ブラウザでMIDIデバイスにも対応できるので楽しいです。AIで作った楽器のセッションとかやってみたいですね。
まとめ
LLMに面倒なことをやらせる自作ソフト「Code Cooker」の紹介でした。
完全に自分の実験用で、車輪の再発明的なところはあるのですが、実際に自分でソフト作ってみるとLLMのプロンプトエンジニアリングや、複数のLLMに対応したソフトをどう構成するのがよいかといったことを考えるきっかけになってよかったです。
LLM使って、面倒なことでなく、色々新しいものを作ったりするのも楽しいなと感じています。よかったらぜひ使ってみたり、ソフトの不便なところを修正Pull Requestしてもらえると嬉しいです。
参考リンク
関連記事
変更履歴
- 2024/07/23 GPT-4o miniに対応
Discussion