Skip to content

Commit d434d70

Browse files
committed
bug #935 [Platform][Anthropic] Update Anthropic models to adopt new and drop outdated (chr-hertel)
This PR was merged into the main branch. Discussion ---------- [Platform][Anthropic] Update Anthropic models to adopt new and drop outdated | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | Docs? | no | Issues | | License | MIT Examples were broken and latest models missing. Commits ------- 0abd022 Update Anthropic models to adopt new and drop outdated
2 parents 9e71690 + 0abd022 commit d434d70

File tree

10 files changed

+47
-21
lines changed

10 files changed

+47
-21
lines changed

examples/anthropic/chat.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@
2121
Message::forSystem('You are a pirate and you write funny.'),
2222
Message::ofUser('What is the Symfony framework?'),
2323
);
24-
$result = $platform->invoke('claude-3-5-sonnet-20241022', $messages);
24+
$result = $platform->invoke('claude-sonnet-4-5-20250929', $messages);
2525

2626
echo $result->asText().\PHP_EOL;

examples/anthropic/image-input-binary.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@
2525
'Describe this image.',
2626
),
2727
);
28-
$result = $platform->invoke('claude-3-5-sonnet-20241022', $messages);
28+
$result = $platform->invoke('claude-sonnet-4-5-20250929', $messages);
2929

3030
echo $result->asText().\PHP_EOL;

examples/anthropic/image-input-url.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,6 @@
2525
'Describe this image.',
2626
),
2727
);
28-
$result = $platform->invoke('claude-3-5-sonnet-20241022', $messages);
28+
$result = $platform->invoke('claude-sonnet-4-5-20250929', $messages);
2929

3030
echo $result->asText().\PHP_EOL;

examples/anthropic/pdf-input-binary.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@
2424
'What is this document about?',
2525
),
2626
);
27-
$result = $platform->invoke('claude-3-5-sonnet-20241022', $messages);
27+
$result = $platform->invoke('claude-sonnet-4-5-20250929', $messages);
2828

2929
echo $result->asText().\PHP_EOL;

examples/anthropic/pdf-input-url.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@
2424
'What is this document about?',
2525
),
2626
);
27-
$result = $platform->invoke('claude-3-5-sonnet-20241022', $messages);
27+
$result = $platform->invoke('claude-sonnet-4-5-20250929', $messages);
2828

2929
echo $result->asText().\PHP_EOL;

examples/anthropic/stream.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@
2121
Message::forSystem('You are a thoughtful philosopher.'),
2222
Message::ofUser('What is the purpose of an ant?'),
2323
);
24-
$result = $platform->invoke('claude-3-5-sonnet-20241022', $messages, ['stream' => true]);
24+
$result = $platform->invoke('claude-sonnet-4-5-20250929', $messages, ['stream' => true]);
2525

2626
print_stream($result);

examples/anthropic/token-metadata.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
$platform = PlatformFactory::create(env('ANTHROPIC_API_KEY'), http_client());
2121

22-
$agent = new Agent($platform, 'claude-3-5-sonnet-20241022', outputProcessors: [new TokenOutputProcessor()]);
22+
$agent = new Agent($platform, 'claude-sonnet-4-5-20250929', outputProcessors: [new TokenOutputProcessor()]);
2323
$messages = new MessageBag(
2424
Message::forSystem('You are a pirate and you write funny.'),
2525
Message::ofUser('What is the Symfony framework?'),

examples/anthropic/toolcall.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
$wikipedia = new Wikipedia(http_client());
2626
$toolbox = new Toolbox([$wikipedia], logger: logger());
2727
$processor = new AgentProcessor($toolbox, includeSources: true);
28-
$agent = new Agent($platform, 'claude-3-5-sonnet-20241022', [$processor], [$processor]);
28+
$agent = new Agent($platform, 'claude-sonnet-4-5-20250929', [$processor], [$processor]);
2929

3030
$messages = new MessageBag(Message::ofUser('Who is the current chancellor of Germany?'));
3131
$result = $agent->call($messages);

src/platform/src/Bridge/Anthropic/ModelCatalog.php

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public function __construct(array $additionalModels = [])
3535
Capability::TOOL_CALLING,
3636
],
3737
],
38-
'claude-3-5-haiku-latest' => [
38+
'claude-3-opus-20240229' => [
3939
'class' => Claude::class,
4040
'capabilities' => [
4141
Capability::INPUT_MESSAGES,
@@ -45,7 +45,7 @@ public function __construct(array $additionalModels = [])
4545
Capability::TOOL_CALLING,
4646
],
4747
],
48-
'claude-3-sonnet-20240229' => [
48+
'claude-3-5-haiku-latest' => [
4949
'class' => Claude::class,
5050
'capabilities' => [
5151
Capability::INPUT_MESSAGES,
@@ -55,7 +55,7 @@ public function __construct(array $additionalModels = [])
5555
Capability::TOOL_CALLING,
5656
],
5757
],
58-
'claude-3-5-sonnet-latest' => [
58+
'claude-3-5-haiku-20241022' => [
5959
'class' => Claude::class,
6060
'capabilities' => [
6161
Capability::INPUT_MESSAGES,
@@ -65,7 +65,7 @@ public function __construct(array $additionalModels = [])
6565
Capability::TOOL_CALLING,
6666
],
6767
],
68-
'claude-3-5-sonnet-20241022' => [
68+
'claude-3-7-sonnet-latest' => [
6969
'class' => Claude::class,
7070
'capabilities' => [
7171
Capability::INPUT_MESSAGES,
@@ -75,7 +75,7 @@ public function __construct(array $additionalModels = [])
7575
Capability::TOOL_CALLING,
7676
],
7777
],
78-
'claude-3-7-sonnet-latest' => [
78+
'claude-3-7-sonnet-20250219' => [
7979
'class' => Claude::class,
8080
'capabilities' => [
8181
Capability::INPUT_MESSAGES,
@@ -105,7 +105,7 @@ public function __construct(array $additionalModels = [])
105105
Capability::TOOL_CALLING,
106106
],
107107
],
108-
'claude-3-opus-20240229' => [
108+
'claude-opus-4-20250514' => [
109109
'class' => Claude::class,
110110
'capabilities' => [
111111
Capability::INPUT_MESSAGES,
@@ -115,7 +115,7 @@ public function __construct(array $additionalModels = [])
115115
Capability::TOOL_CALLING,
116116
],
117117
],
118-
'claude-opus-4-20250514' => [
118+
'claude-opus-4-0' => [
119119
'class' => Claude::class,
120120
'capabilities' => [
121121
Capability::INPUT_MESSAGES,
@@ -125,17 +125,40 @@ public function __construct(array $additionalModels = [])
125125
Capability::TOOL_CALLING,
126126
],
127127
],
128-
'claude-opus-4-0' => [
128+
'claude-opus-4-1' => [
129129
'class' => Claude::class,
130130
'capabilities' => [
131131
Capability::INPUT_MESSAGES,
132132
Capability::INPUT_IMAGE,
133133
Capability::OUTPUT_TEXT,
134134
Capability::OUTPUT_STREAMING,
135+
Capability::OUTPUT_STRUCTURED,
135136
Capability::TOOL_CALLING,
136137
],
137138
],
138-
'claude-opus-4-1' => [
139+
'claude-opus-4-1-20250805' => [
140+
'class' => Claude::class,
141+
'capabilities' => [
142+
Capability::INPUT_MESSAGES,
143+
Capability::INPUT_IMAGE,
144+
Capability::OUTPUT_TEXT,
145+
Capability::OUTPUT_STREAMING,
146+
Capability::OUTPUT_STRUCTURED,
147+
Capability::TOOL_CALLING,
148+
],
149+
],
150+
'claude-sonnet-4-5-20250929' => [
151+
'class' => Claude::class,
152+
'capabilities' => [
153+
Capability::INPUT_MESSAGES,
154+
Capability::INPUT_IMAGE,
155+
Capability::OUTPUT_TEXT,
156+
Capability::OUTPUT_STREAMING,
157+
Capability::OUTPUT_STRUCTURED,
158+
Capability::TOOL_CALLING,
159+
],
160+
],
161+
'claude-haiku-4-5-20251001' => [
139162
'class' => Claude::class,
140163
'capabilities' => [
141164
Capability::INPUT_MESSAGES,

src/platform/tests/Bridge/Anthropic/ModelCatalogTest.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,19 @@ final class ModelCatalogTest extends ModelCatalogTestCase
2525
public static function modelsProvider(): iterable
2626
{
2727
yield 'claude-3-haiku-20240307' => ['claude-3-haiku-20240307', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
28+
yield 'claude-3-opus-20240229' => ['claude-3-opus-20240229', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
2829
yield 'claude-3-5-haiku-latest' => ['claude-3-5-haiku-latest', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
29-
yield 'claude-3-sonnet-20240229' => ['claude-3-sonnet-20240229', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
30-
yield 'claude-3-5-sonnet-latest' => ['claude-3-5-sonnet-latest', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
30+
yield 'claude-3-5-haiku-20241022' => ['claude-3-5-haiku-latest', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
3131
yield 'claude-3-7-sonnet-latest' => ['claude-3-7-sonnet-latest', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
32+
yield 'claude-3-7-sonnet-20250219' => ['claude-3-7-sonnet-latest', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
3233
yield 'claude-sonnet-4-20250514' => ['claude-sonnet-4-20250514', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
3334
yield 'claude-sonnet-4-0' => ['claude-sonnet-4-0', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
34-
yield 'claude-3-opus-20240229' => ['claude-3-opus-20240229', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
3535
yield 'claude-opus-4-20250514' => ['claude-opus-4-20250514', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
3636
yield 'claude-opus-4-0' => ['claude-opus-4-0', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
37-
yield 'claude-opus-4-1' => ['claude-opus-4-1', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
37+
yield 'claude-opus-4-1' => ['claude-opus-4-1', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::OUTPUT_STRUCTURED, Capability::TOOL_CALLING]];
38+
yield 'claude-opus-4-1-20250805' => ['claude-opus-4-1-20250805', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::OUTPUT_STRUCTURED, Capability::TOOL_CALLING]];
39+
yield 'claude-sonnet-4-5-20250929' => ['claude-sonnet-4-5-20250929', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::OUTPUT_STRUCTURED, Capability::TOOL_CALLING]];
40+
yield 'claude-haiku-4-5-20251001' => ['claude-haiku-4-5-20251001', Claude::class, [Capability::INPUT_MESSAGES, Capability::INPUT_IMAGE, Capability::OUTPUT_TEXT, Capability::OUTPUT_STREAMING, Capability::TOOL_CALLING]];
3841
}
3942

4043
protected function createModelCatalog(): ModelCatalogInterface

0 commit comments

Comments
 (0)