「Mac/インストール/ollama」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→curlサンプル) |
(→curlサンプル) |
||
| 行112: | 行112: | ||
*macM4の128GBだと1秒。 | *macM4の128GBだと1秒。 | ||
*macIntelの32BGだと90秒。 | *macIntelの32BGだと90秒。 | ||
| + | |||
| + | ==phpサンプル== | ||
| + | <pre> | ||
| + | <?php | ||
| + | $input = $argv[1] ?? "こんにちは"; | ||
| + | $url = "http://localhost:11434/api/generate"; | ||
| + | $data = [ | ||
| + | "model" => "gpt-oss", | ||
| + | "prompt" => $input, | ||
| + | "stream" => false | ||
| + | ]; | ||
| + | $ch = curl_init($url); | ||
| + | curl_setopt_array($ch, [ | ||
| + | CURLOPT_RETURNTRANSFER => true, | ||
| + | CURLOPT_POST => true, | ||
| + | CURLOPT_HTTPHEADER => ["Content-Type: application/json"], | ||
| + | CURLOPT_POSTFIELDS => json_encode($data), | ||
| + | ]); | ||
| + | $response = curl_exec($ch); | ||
| + | </pre> | ||
2026年2月16日 (月) 17:12時点における版
目次
ollamaインストール
brew install ollama
ollamaサーバ起動
ollama serve
ログイン時に起動
brew services start ollama
gpt-ossのモデルを動かす
$ ollama run gpt-oss >>> こんにちは Thinking... The user says "こんにちは". That's Japanese greeting "Hello". Should respond politely, maybe in Japanese. Simple greeting. Probably respond with "こんにちは!今日はどうされましたか?" or something. The user might just say hello. So respond. ...done thinking. こんにちは!今日はどんなご用件でしょうか?何かお手伝いできることがあれば教えてくださいね。 >>> Send a message (/? for help)
mac-intelのメモリ32GB程度だと、レスポンスに1分以上かかる。
モデルリスト表示
$ ollama list NAME ID SIZE MODIFIED gpt-oss:latest aa4295ac10c3 13 GB About an hour ago
サイズが13GBなので、20Bのgpt-ossが入ってることがわかる。120Bではない。120Bは、70GB以上あるはず。
モデルのインストールパス
~/.ollama/models/manifests/registry.ollama.ai/library/<モデル名>/<バージョン>/
インストールに必要なメモリ
最低16GB程度は必要。
httpアクセス
デフォルトでは以下が起動してる
http://localhost:11434
Ollama is running
curlサンプル
リクエスト
% curl http://localhost:11434/api/generate -d '{
"model": "gpt-oss",
"prompt": "こんにちは!"
}'
レスポンス
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.6297Z","response":"","thinking":"User","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.642052Z","response":"","thinking":" says","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.653944Z","response":"","thinking":" \"","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.666045Z","response":"","thinking":"こんにちは","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.678172Z","response":"","thinking":"!","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.690023Z","response":"","thinking":"\"","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.701849Z","response":"","thinking":" (","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.713882Z","response":"","thinking":"Hello","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.725683Z","response":"","thinking":"!).","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.737732Z","response":"","thinking":" Need","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.749662Z","response":"","thinking":" to","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.762579Z","response":"","thinking":" respond","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.773642Z","response":"","thinking":" politely","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.785467Z","response":"","thinking":".","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.797319Z","response":"","thinking":" Provide","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.80919Z","response":"","thinking":" greeting","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.820969Z","response":"","thinking":".","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.832962Z","response":"","thinking":" Let's","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.844998Z","response":"","thinking":" ask","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.856901Z","response":"","thinking":" how","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.868945Z","response":"","thinking":" can","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.881168Z","response":"","thinking":" help","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.893326Z","response":"","thinking":".","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.977468Z","response":"こんにちは","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:22.990969Z","response":"!","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.014597Z","response":"🌸","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.026746Z","response":" \n","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.038947Z","response":"何","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.050976Z","response":"か","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.063168Z","response":"お","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.075635Z","response":"手","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.088004Z","response":"伝","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.100341Z","response":"い","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.112858Z","response":"でき","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.125925Z","response":"る","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.139937Z","response":"こと","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.153531Z","response":"があります","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.16605Z","response":"か","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.17869Z","response":"?","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.191311Z","response":"質問","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.203878Z","response":"や","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.216107Z","response":"相談","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.22991Z","response":"、","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.243029Z","response":"情報","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.255405Z","response":"の","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.268102Z","response":"検索","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.280793Z","response":"など","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.293252Z","response":"、","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.305921Z","response":"何","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.31814Z","response":"でも","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.330533Z","response":"どう","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.343084Z","response":"ぞ","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.355432Z","response":"!","done":false}
{"model":"gpt-oss","created_at":"2025-08-25T18:12:23.36765Z","response":"","done":true,"done_reason":"stop","context":[200006,17360,200008,3575,553,17554,162016,11,261,4410,6439,2359,22203,656,7788,17527,558,87447,100594,25,220,1323,19,12,3218,198,6576,3521,25,220,1323,20,12,3062,12,2109,279,30377,289,25,14093,279,2,13888,18403,25,8450,11,49159,11,1721,13,21030,2804,413,7360,395,1753,3176,13,200007,200006,1428,200008,95839,3393,200007,200006,173781,200005,35644,200008,1844,5003,392,95839,3393,1,350,13225,50148,19792,316,9570,167705,13,51441,64790,13,41021,3810,1495,665,1652,13,200007,200006,173781,200005,17196,200008,95839,3393,64364,116,4066,13811,7128,8930,6034,117934,3826,78673,6996,53217,164454,7128,4802,193023,19160,147983,1395,47357,3385,88225,73045,1395,13811,45996,85545,111317,3393],"total_duration":3907852375,"load_duration":2981784458,"prompt_eval_count":69,"prompt_eval_duration":150688458,"eval_count":64,"eval_duration":774894417}
- macM4の128GBだと1秒。
- macIntelの32BGだと90秒。
phpサンプル
<?php
$input = $argv[1] ?? "こんにちは";
$url = "http://localhost:11434/api/generate";
$data = [
"model" => "gpt-oss",
"prompt" => $input,
"stream" => false
];
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode($data),
]);
$response = curl_exec($ch);
