Vibra-Ingennは、llama.cppを介してGGUFモデルをVulkan(AMD/Intel/NVIDIA)またはCPUで推論し、OpenAI互換APIを提供する単一のGoバイナリ「Janus」をMITライセンスで公開しました。Hacker NewsのShow HN投稿は81ポイント・14コメントを集め、GitHubのスター数は73です。
何ができるか
JanusはPython、Docker、Ollamaを必要とせず、Windowsでは.exeひとつで動きます。主な機能は次のとおりです。
/v1/chat/completions(ストリーミング対応)と/v1/modelsを含むOpenAI互換API- 再起動なしで
.ggufを切り替えるモデルのホットスワップ - GGUFメタデータからのチャットテンプレート自動検出
- thinkingモデルの推論部分を
reasoning_contentに分離 - Vulkanが使えない場合のCPUフォールバック
エンドポイントは以下です。
| メソッド | パス | 内容 |
|---|---|---|
| GET | /health |
稼働確認(?deep=trueで詳細) |
| GET | /v1/models |
モデル一覧 |
| POST | /v1/chat/completions |
チャット |
| POST | /models/load |
モデルのホットスワップ |
| GET | /models/list |
利用可能な.gguf一覧 |
| GET | /engine/status |
VRAMとバックエンドの情報 |
対応環境と要件
| プラットフォーム | 要件 |
|---|---|
| Windows(主対象) | Windows 10/11、Go 1.22以上、Vulkan対応GPU推奨 |
| Linux | Go 1.22以上、VulkanまたはCPU |
| macOS | Go 1.22以上、CPUバックエンド(Vulkanはハードウェア次第) |
ディスクはモデルごとに2〜8GB程度、加えてJanusとllama.dllで約50MBが必要です。初回応答はVRAMへのモデル読み込みで10〜60秒かかり、Q4など小さい量子化ほど速く読み込めます。
試し方
Windowsではリポジトリをcloneしてcd Janus後、.\build.ps1を実行します。スクリプトは事前ビルド済みのllama.cpp Vulkan DLLをダウンロードし、dist\janus.exeをコンパイルします。モデルはmodels\に置き、同梱のmodelgetで例えばLlama-3.2-3B-Instruct-Q8_0.ggufを取得できます。
.env.exampleを.envにコピーし、主な設定を編集します。
| 変数 | 既定値 | 意味 |
|---|---|---|
INFERENCE_BACKEND |
vulkan |
vulkan、cpu、openrouter |
JANUS_MODEL_PATH |
(必須) | .ggufのパス |
JANUS_GPU_LAYERS |
-1 |
-1で全レイヤーGPU、0でCPUのみ |
JANUS_VRAM_CEILING_MB |
9216 |
VRAM予算ヒント(MiB) |
JANUS_MAX_TOKENS |
4096 |
1応答の最大トークン数 |
JANUS_LISTEN_ADDR |
127.0.0.1:8990 |
待受アドレス |
.\dist\janus.exeを起動するとブラウザでhttp://127.0.0.1:8990が開き、curl http://127.0.0.1:8990/healthで稼働を確認できます。
Linux/macOSではgo mod tidy、go build -o dist/janus ./cmd/janusを実行し、.envを設定して./dist/janusを起動します。Linuxではlibllama.soをバイナリの隣かLD_LIBRARY_PATH上に置く必要があります。
CursorやClineなどのOpenAIクライアントからは、ベースURLhttp://127.0.0.1:8990/v1、APIキー空欄で接続できます。READMEは、既定ポートが8080ではなく8990である点や、Windowsでは実行中のjanus.exeを止めないと再ビルドが反映されない点を注意事項に挙げています。

まだコメントはありません。