はじめに
LLMはWebインターフェースで利用する事が一般的ですが、ローカルLLMをシェルと組み合わせて利用するとさらに便利になります。
もちろん開発者や技術者であれば、Python言語で直接利用する方法もありますが、ollamaを利用する事でプログラミングに精通しない人でも簡単なコマンドを作る事ができます。
インストールは、Windowsの場合は「OllamaSetup.exe」実行、Linuxの場合は「curl -fsSL https://ollama.com/install.sh | sh」とするのが一般的です。
簡単なコマンド
例えば、ollamaコマンドがインストールされていれば
ollama run gemma2 <<< "何か冗談を言って。"
と出力を得られます。さらに、.bashrc等にalias登録しておくと
alias jodan="ollama run gemma2 <<< \"何か冗談を言って。\""
と「jodan」コマンドを作成できます。
基本的に、この手法で作成したのが下記事です。sd-promptというコマンドで、簡単に画像生成用のプロンプトを作成できます。
$ sd-prompt "美女の画像"
プロンプト追従性が良いFlux.1を利用すると、次の結果を得られます。
$ sd-prompt "ジャンプする猫の画像"
少し機能を入れたコマンド
次に、少し工夫したコマンドを作ってみます。例として、翻訳コマンドを作成します。
主機能は翻訳ですが、語学勉強も兼ねて、単語の意味も同時に表示するものとします。
(英語に限らず)文章をクリップボードにコピーし、指定言語へ翻訳します。コマンド名はllm-translateとします。
$ llm-translate ja
コマンドの引数に翻訳先の言語として入力します。LLM側が対応している言語を入力・出力共に利用する事ができます。フランス語やドイツ語などのメジャーな言語であれば、実用的に利用できるはずです。
翻訳コマンドのコード例
llm_model変数に「ollama list」で取得できるモデル名を入力します。
WSLでネイティブのWindows版ollamaを利用する場合は、ollamaを「/mnt/c/Users/usr01/AppData/Local/Programs/Ollama/ollama.exe」等に差し替えてください。
引数にjaやenの省略形を利用できるようにしています。Frenchなどの登録されていない文字列の場合はそのままlang変数になります。
「llm-tranlate」ファイル名で「/usr/local/bin」等のパスの通ったディレクトリに保存し、実行属性「sudo chmod +x /usr/local/bin/llm-translate」を付与してください。
プロンプト欄(EOF文字列で囲まれた部分)を変更する事で、様々な事ができると思います。
basenameやsedはデフォルトでインストールされていると思いますが、クリップボードを扱うxclipがない場合は「sudo apt install xclip」として導入してください。
付録
上記llm-translateコマンド例のスクリプトを記事最下部の有料欄でダウンロードできます。記事支援いただける場合はよろしくお願いします。
関連記事の【PR】