diff --git a/packages/providers/ollama/src/llm.ts b/packages/providers/ollama/src/llm.ts index f82da2ff32bd0785ad6a2e13f72ca3ce598c549e..3878a96783de066fb1f1a7f537a94187e1af4929 100644 --- a/packages/providers/ollama/src/llm.ts +++ b/packages/providers/ollama/src/llm.ts @@ -23,7 +23,22 @@ import { type Options, } from "ollama/browser"; -const messageAccessor = (part: OllamaChatResponse): ChatResponseChunk => { +const messageAccessor = ( + part: OllamaChatResponse, +): ChatResponseChunk<ToolCallLLMMessageOptions> => { + if (part.message.tool_calls) { + return { + raw: part, + delta: part.message.content, + options: { + toolCall: part.message.tool_calls.map((toolCall) => ({ + name: toolCall.function.name, + input: toolCall.function.arguments, + id: randomUUID(), + })), + }, + }; + } return { raw: part, delta: part.message.content,