Skip to content

Commit 2c83378

Browse files
authored
fix(ollama): tool maps and arguments (#738)
1 parent 441b6d9 commit 2c83378

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

src/Providers/Ollama/Maps/MessageMap.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ protected function mapToolResultMessage(ToolResultMessage $message): void
6262
foreach ($message->toolResults as $toolResult) {
6363
$this->mappedMessages[] = [
6464
'role' => 'tool',
65+
'tool_name' => $toolResult->toolName,
6566
'content' => is_string($toolResult->result)
6667
? $toolResult->result
6768
: (json_encode($toolResult->result) ?: ''),
@@ -94,7 +95,7 @@ protected function mapAssistantMessage(AssistantMessage $message): void
9495
'tool_calls' => $message->toolCalls ? array_map(fn (ToolCall $toolCall): array => [
9596
'function' => [
9697
'name' => $toolCall->name,
97-
'arguments' => $toolCall->arguments(),
98+
'arguments' => (object) $toolCall->arguments(),
9899
],
99100
], $message->toolCalls) : null,
100101
]);

tests/Providers/Ollama/MessageMapTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,14 @@
8383
$messageMap = new MessageMap([$assistantMessage]);
8484
$result = $messageMap->map();
8585

86-
expect($result)->toBe([
86+
expect($result)->toEqual([
8787
[
8888
'role' => 'assistant',
8989
'content' => 'Assistant response',
9090
'tool_calls' => [[
9191
'function' => [
9292
'name' => 'search',
93-
'arguments' => [
93+
'arguments' => (object) [
9494
'query' => 'What is Prism?',
9595
],
9696
],
@@ -114,6 +114,7 @@
114114
expect($result)->toBe([
115115
[
116116
'role' => 'tool',
117+
'tool_name' => 'test-tool',
117118
'content' => 'Tool execution result',
118119
],
119120
]);
@@ -134,6 +135,7 @@
134135
expect($result)->toBe([
135136
[
136137
'role' => 'tool',
138+
'tool_name' => 'test-tool',
137139
'content' => '{"key":"value"}',
138140
],
139141
]);

0 commit comments

Comments
 (0)