2. インストールと最初のタスク
動作環境
myllmはBash 3.2以降で動作します。macOS標準の/bin/bashを基準としているため,新しいBashへの入れ替えは不要です。LinuxとWSL2でもBashから実行できます。
必須の外部コマンドはcurlとjqです。curlはHTTP通信,jqはリクエストJSONの構築とストリーム応答の解析に使用します。ローカルモデルを利用する場合はOllamaも別途必要です。翻訳時の言語自動判定には,任意の依存としてwhichlang-cliを使用します。
| 種別 | ソフトウェア | 用途 |
|---|---|---|
| 必須 | Bash 3.2以降 | スクリプトの実行 |
| 必須 | curl | APIとのHTTP通信 |
| 必須 | jq | JSONの構築と解析 |
| 選択 | Ollama | ローカルLLMの実行 |
| 選択 | whichlang-cli | 翻訳元言語の自動判定 |
インストーラーの実行
公式リポジトリのインタラクティブインストーラーは,次のコマンドで実行できます。
bash -c "$(curl -fsSL https://raw.githubusercontent.com/rinodrops/myllm-cli/main/install.sh)"インストーラーは最初に依存関係を確認し,myllmの配置先を尋ねます。システム全体で使う/usr/local/binと,管理者権限を必要としない~/.local/binから選択できます。その後,任意でwhichlang-cliを導入し,設定テンプレートを~/.config/myllm/config.tomlへ配置します。既存の設定ファイルがある場合は上書きしません。
ダウンロードするスクリプトを先に確認する場合は,ファイルへ保存してから実行します。
curl -fsSL \
https://raw.githubusercontent.com/rinodrops/myllm-cli/main/install.sh \
-o install.sh
less install.sh
bash install.sh~/.local/binを選択した場合,このディレクトリがPATHに含まれていなければ,インストーラーが追加方法を表示します。新しいシェルを開いたあと,次のコマンドで導入を確認できます。
myllm version
myllm listOllamaの準備
初期設定ではOllamaを使用します。Ollama本体をインストールして起動し,設定ファイルのdefault_modelに対応するモデルを取得します。既定テンプレートのllama3.2を使う場合は次のように実行します。
ollama pull llama3.2設定の要点は,既定のプロバイダーと,そのプロバイダーで使う既定モデルです。
[general]
default_provider = "ollama"
keep_alive = "5m"
[providers.ollama]
base_url = "http://localhost:11434"
default_model = "llama3.2"keep_aliveは,推論後にOllamaがモデルをメモリへ保持する時間です。同じモデルを続けて使う場合,モデルの再ロードを減らせます。
タスクの定義
タスクは[tasks.<id>]セクションへ記述します。<id>がmyllmに渡すサブコマンド名になります。次のpolishタスクは,入力の意味と文体を保ちながら文章を整え,修正文だけを返すよう指示します。
[tasks.polish]
name = "Polish"
instruction = '''
Improve the clarity, flow, and correctness of the provided text.
Fix grammar, punctuation, and word choice. Preserve the original meaning and tone.
Output only the revised text, no explanation.
Use the same language as the original text.
'''instructionには複数行のTOMLリテラル文字列を使用します。最後の文は,入力と同じ言語で結果を返すための指示です。用途に応じて出力形式,長さ,変更してよい範囲を具体的に書くと,毎回の入力を短くできます。
実行方法
短い入力は引数として渡せます。
myllm polish "この文章をもう少し読みやすくしたいです。"長い入力や他のコマンドの出力は,stdinへ渡す方が扱いやすくなります。
printf '%s\n' "この文章をもう少し読みやすくしたいです。" | myllm polish
myllm summarize < report.txt応答は生成された部分からstdoutへ表示されます。結果全体の完成を待ってから一括表示する方式ではないため,長い応答でも処理の進行を確認できます。また,stdoutを使うことで,ファイルへのリダイレクトや別のコマンドへのパイプも可能です。
myllm summarize < report.txt > summary.txt利用できるタスクはmyllm list,実際に選択されるプロバイダー,モデル,指示はmyllm info <task>で確認できます。
macOSのクリップボード
macOSでは--with-clipboardを指定すると,pbpasteで入力を読み,生成結果をstdoutへ表示しながらpbcopyにも渡します。--with-notifyを加えると,処理の開始と完了をシステム通知で確認できます。
myllm polish --with-clipboard --with-notifyこれらはmacOS固有の連携です。LinuxとWSL2では通常の引数,stdin,リダイレクトを使用します。