ネイティブなローカル推論

Bonsai CLI

Bonsai-8Bをターミナルから実行するための小さなネイティブCLIです。 初回実行時にGGUFモデルをダウンロードしてローカルにキャッシュし、 生成結果を標準出力へそのままストリーミングします。

Bonsai-8B 既定のGGUFモデル
llama.cpp ネイティブ実行バックエンド
Metal macOS arm64で有効
bonsai
$ ./bonsai "GitHub Actionsを一文で説明して"
初回実行時にBonsai-8B.ggufをダウンロード...
GitHub Actionsは、pushやpull requestなどのイベントに応じてリポジトリ内のワークフローを実行するCI/CD自動化サービスです。

$ terraform plan | ./bonsai "このTerraform planを要約して"
このplanはネットワーク関連リソースを更新し、既存のcompute instanceは変更せず、破棄されるインフラはありません。

クイックスタート

利用するプラットフォーム向けのビルド済みバイナリをダウンロードし、 展開して、プロンプト付きで実行します。モデルは一度だけダウンロードされ、 その後はローカルキャッシュから再利用されます。

1

ダウンロード

macOS、Windows、Linux向けのビルド済みバイナリを、 最新のGitHub Releaseから取得します。

2

展開

アーカイブを展開し、コマンドラインツールを置いている場所に 実行ファイルを配置します。

3

実行

引数としてプロンプトを渡すか、要約やレビューしたい内容を 標準入力からパイプで渡します。

./bonsai "GitHub Actionsを一文で説明して"
.\bonsai.exe "GitHub Actionsを一文で説明して"

使い方

Bonsaiは、直接プロンプトを渡す使い方にも、既存コマンドの出力、 ログ、plan、テキストファイルを処理するUnix風フィルターとしての 使い方にも向いています。

./bonsai "次のテキストを日本語で要約して" < terraform_plan_result.log
terraform plan | ./bonsai "次のTerraform planを日本語で要約して"
  • プロンプトはコマンド引数として渡せます。
  • 標準入力がある場合は、プロンプトの後ろに追加されます。
  • 生成されたトークンは到着し次第、標準出力へストリーミングされます。
  • 設定はフラグまたはBONSAI_*環境変数で指定できます。

主なフラグ

モデルのパス、サンプリング動作、コンテキストサイズ、キャッシュ場所、 Hugging Face認証をコマンドラインから調整できます。

フラグ 既定値 説明
-model-path auto ローカルのGGUFモデルパス。
-model-repo prism-ml/Bonsai-8B-gguf Hugging Faceのモデルリポジトリ。
-model-file Bonsai-8B.gguf リポジトリ内のGGUFファイル名。
-cache-dir OSのユーザーキャッシュディレクトリ ダウンロードしたモデルを保存するルートディレクトリ。
-context-size 4096 コンテキストウィンドウサイズ。
-max-tokens 64 生成するトークン数の上限。
-threads runtime.NumCPU()/2 CPUスレッド数。最小値は1です。
-temperature 0.5 サンプリング温度。
-top-k 20 Top-kサンプラー設定。
-top-p 0.9 Top-pサンプラー設定。
-repeat-penalty 1.0 繰り返しペナルティ。
-seed 0 乱数シード。
-raw-prompt false モデルのチャットテンプレートを適用せず、プロンプトをそのまま送ります。
-hf-token empty gated model用のHugging Faceトークン。

開発者向け

ソースからBonsai CLIをビルドするには、Go、CMake、C/C++ツールチェーン、 そしてチェックアウト済みのllama.cppサブモジュールが必要です。

ソースからビルド

git clone --recurse-submodules https://github.com/pluswing/bonsai-cli.git
cd bonsai-cli
./scripts/build-bonsai.sh

Dockerスモークテスト

BONSAI_CONTEXT_SIZE=4096 \
BONSAI_MAX_TOKENS=24 \
BONSAI_PROMPT="CPU-only inferenceについて一文で答えて" \
docker compose up --build --abort-on-container-exit \
  --exit-code-from bonsai-cli-test