
My LLM
同じプロンプトを繰り返し貼り付ける代わりに,あらかじめ用途別の指示を登録し,短い名前で呼び出す。myllm-cliは,ChatGPTのGPTsから着想を得て,この操作をコマンドラインへ移した個人用LLMツールです。Ollamaによるローカルモデルのほか,OpenAI APIとAnthropic APIに対応し,どのプロバイダーを選んでも生成中の出力を逐次表示します。
本シリーズでは,TranslateGemmaによる翻訳スクリプトを汎用化した経緯から始め,インストール,TOMLによるタスク定義,ローカルとクラウドの使い分け,Bash 3.2でストリーミングを扱う実装までを解説します。コマンドと設定項目を一覧から調べたい場合は,myllm-cliリファレンスを参照してください。
myllm-cli
1. GPTsの発想をコマンドラインへ
最初に作成したtranslateスクリプトは,選択したテキストまたはクリップボードの内容をOllamaへ送り,TranslateGemmaの結果を受け取るためのものでした。定型プロンプト,言語方向の判定,API呼び出しをひとつのコマンドにまとめたことで,翻訳のたびに同じ指示を入力する必要がなくなりました。この仕組みを使…
2. インストールと最初のタスク
myllmはBash 3.2以降で動作します。macOS標準の/bin/bashを基準としているため,新しいBashへの入れ替えは不要です。LinuxとWSL2でもBashから実行できます。必須の外部コマンドはcurlとjqです。curlはHTTP通信,jqはリクエストJSONの構築とストリーム応答の解析に使用します…
3. タスクとプロバイダーの使い分け
myllm-cliは,プロバイダー,モデル,タスクをひとつのconfig.tomlで管理します。既定の場所は~/.config/myllm/config.tomlです。XDG_CONFIG_HOMEが設定されている場合は,$XDG_CONFIG_HOME/myllm/config.tomlを使用します。設定は四つの領域…
4. Bashで実現するストリーミングと移植性
myllm-cliの中核は,myllmという1本のBashスクリプトです。このファイルに,設定の読み取り,タスクの解決,翻訳時の言語判定,三つのプロバイダーへの接続,CLIの引数処理が含まれます。Pythonなどの言語ランタイムを追加せず,HTTPをcurl,JSONをjqへ委ねています。Bash 3.2を基準とするの…