macOS上でローカルLLMをHTTP経由で実行する
お疲れ様です。macOS上でローカルLLMをHTTP経由で実行する方法を調べて、実行してみました。私が動作確認した記録を残します。
前提
- 実行環境は、MacBookAir M2 24GBです。
- 普段使っているマシンがこのスペックです。
- Ollamaを使って、モデルは
qwen3:14Bを使ってみました。- 以前、Ollamaとこのモデルを入れて動作確認したものをそのまま使います
実行
curlで実行しました。
curl http://localhost:11434/api/chat -d '{
"model": "qwen3:14b",
"messages": [
{"role": "user", "content": "こんにちは!聞こえますか!"}
],
"think": false,
"stream": false
}'
Code language: PHP (php)
{"model":"qwen3:14b","created_at":"2026-06-12T09:17:00.959324Z","message":{"role":"assistant","content":"こんにちは!聞こえていますよ!お元気ですか?"},"done":true,"done_reason":"stop","total_duration":8838921208,"load_duration":6903632958,"prompt_eval_count":24,"prompt_eval_duration":426332625,"eval_count":14,"eval_duration":1458145040}
Code language: JSON / JSON with Comments (json)
time コマンドで実行速度を測ったところ、以下でした。およそ2秒くらいですね。
________________________________________________________
Executed in 2.11 secs fish external
usr time 6.95 millis 0.23 millis 6.72 millis
sys time 15.36 millis 1.29 millis 14.07 millis
Code language: CSS (css)
解説・余談
今回、ローカルLLMには、Obisidan上のノートへのタグ付けを任せようとしており、その前段の検証をしています。で、thinkingモードはいらないのですが、Qwen3はデフォルトでthinkingが有効になっているようです。このままだとthinkingに時間がかかりますが、私のケースでは不要なので、これを削ります。で、そのために think: false を指定しています。
また、stream: false を付けていますが、これをやらないとトークンごとに1行ずつJSONが流れてきます。curlで試すときは付けたほうが見やすいです。
curl http://localhost:11434/api/chat -d '{
"model": "qwen3:14b",
"messages": [
{"role": "user", "content": "こんにちは!聞こえますか!"}
],
"think": false
}'
Code language: PHP (php)