0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M4 の Mac mini で ローカルLLM: Ollama v0.8 の新機能(ストリーミング + ツール)を試す

Posted at

はじめに

公式が以下でポストしていた Ollama v0.8 の新機能を試してみます。

ストリーミングとツールを組み合わせた出力を得られるようです。

過去に Ollama で試した内容

Ollama を使ったローカルLLM は、過去に以下の内容を試していたことがありました。

さっそく試す

それでは、さっそく試していきます。

今回試す内容

今回 Ollama v0.8 の新機能を試す際に使うのは、前にも使った「ollama - npm」です。

そして、公式ブログの以下に書かれているコードを少しだけ書きかえて使います。

●Streaming responses with tool calling · Ollama Blog
 https://ollama.com/blog/streaming-tool

image.png

利用するモデル

今回はツールを使うので、それが利用可能なモデルを選びます(※ 以前は gemma3:12b-it-q8_0 を使いました)。適当に以下を選びました。

●qwen3:14b
 https://ollama.com/library/qwen3:14b

動作テスト

とりあえず、モデルのダウンロードもかねて動作テストをやっておきます。

まずは以下を実行します。

ollama run qwen3:14b

image.png

その後、モデルのダウンロードが完了してから、「あなたは誰?」というプロンプトを入力してみました。その結果、以下のとおり回答を得られました。

image.png

Ollama の JavaScriptライブラリを使って新機能を試す

それでは Ollama の JavaScriptライブラリを使って v0.8 の新機能を試します。

パッケージのインストール

以下でパッケージをインストールします。

npm i ollama

用いるコードと実行結果

そして、用いるコードは以下の通りです。

app.mjs
import ollama from "ollama";

const addTool = {
  type: "function",
  function: {
    name: "addTwoNumbers",
    description: "Add two numbers together",
    parameters: {
      type: "object",
      required: ["a", "b"],
      properties: {
        a: { type: "number", description: "The first number" },
        b: { type: "number", description: "The second number" },
      },
    },
  },
};

async function run(model) {
  const messages = [
    { role: "user", content: "What is 2 plus 3?(日本語で答えて)" },
  ];
  console.log("Question:", messages[0].content);

  for await (const chunk of await ollama.chat({
    model,
    messages,
    tools: [addTool],
    stream: true,
  })) {
    if (chunk.message.tool_calls) {
      for (const toolCall of chunk.message.tool_calls) {
        console.log("Tool call:", toolCall);
      }
    } else {
      process.stdout.write(chunk.message.content);
    }
  }
}

run("qwen3:14b").catch(console.error);

上記を実行すると、以下の内容が少しずつ表示されていきました。

image.png

image.png

最後の部分を見ると、ツールの呼び出しも行えているようです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?