feat(anthropic): add support for claude-opus-4 and claude-sonnet-4 (#3351)

* feat(anthropic): add support for claude-opus-4-0 and claude-sonnet-4-0 models

- Introduce `CLAUDE_OPUS_4` and `CLAUDE_SONNET_4` to `ChatModel` enum
- Update documentation to include new model options

Signed-off-by: Alexandros Pappas <apappascs@gmail.com>

* add model aliases url to anthropic documentation

Signed-off-by: Alexandros Pappas <apappascs@gmail.com>

---------

Signed-off-by: Alexandros Pappas <apappascs@gmail.com>
This commit is contained in:
Alexandros Pappas
2025-05-30 12:32:26 +02:00
committed by GitHub
parent 3a527eeb98
commit 71e56fbed0
2 changed files with 15 additions and 3 deletions

View File

@@ -241,6 +241,16 @@ public final class AnthropicApi {
public enum ChatModel implements ChatModelDescription {
// @formatter:off
/**
* The claude-opus-4-0 model.
*/
CLAUDE_OPUS_4("claude-opus-4-0"),
/**
* The claude-sonnet-4-0 model.
*/
CLAUDE_SONNET_4("claude-sonnet-4-0"),
/**
* The claude-3-7-sonnet-latest model.
*/

View File

@@ -124,7 +124,7 @@ The prefix `spring.ai.anthropic` is used as the property prefix that lets you co
| spring.ai.anthropic.completions-path | The path to append to the base URL. | `/v1/chat/completions`
| spring.ai.anthropic.version | Anthropic API version | 2023-06-01
| spring.ai.anthropic.api-key | The API Key | -
| spring.ai.anthropic.beta-version | Enables new/experimental features. If set to `max-tokens-3-5-sonnet-2024-07-15`
| spring.ai.anthropic.beta-version | Enables new/experimental features. If set to `max-tokens-3-5-sonnet-2024-07-15`
the output tokens limit is increased from `4096` to `8192` tokens (for claude-3-5-sonnet only). | `tools-2024-04-04`
|====
@@ -149,7 +149,7 @@ The prefix `spring.ai.anthropic.chat` is the property prefix that lets you confi
| spring.ai.anthropic.chat.enabled (Removed and no longer valid) | Enable Anthropic chat model. | true
| spring.ai.model.chat | Enable Anthropic chat model. | anthropic
| spring.ai.anthropic.chat.options.model | This is the Anthropic Chat model to use. Supports: `claude-3-7-sonnet-latest`, `claude-3-5-sonnet-latest`, `claude-3-opus-20240229`, `claude-3-sonnet-20240229`, `claude-3-haiku-20240307` | `claude-3-7-sonnet-latest`
| spring.ai.anthropic.chat.options.model | This is the Anthropic Chat model to use. Supports: `claude-opus-4-0`, `claude-sonnet-4-0`, `claude-3-7-sonnet-latest`, `claude-3-5-sonnet-latest`, `claude-3-opus-20240229`, `claude-3-sonnet-20240229`, `claude-3-haiku-20240307` | `claude-3-7-sonnet-latest`
| spring.ai.anthropic.chat.options.temperature | The sampling temperature to use that controls the apparent creativity of generated completions. Higher values will make output more random while lower values will make results more focused and deterministic. It is not recommended to modify temperature and top_p for the same completions request as the interaction of these two settings is difficult to predict. | 0.8
| spring.ai.anthropic.chat.options.max-tokens | The maximum number of tokens to generate in the chat completion. The total length of input tokens and generated tokens is limited by the model's context length. | 500
| spring.ai.anthropic.chat.options.stop-sequence | Custom text sequences that will cause the model to stop generating. Our models will normally stop when they have naturally completed their turn, which will result in a response stop_reason of "end_turn". If you want the model to stop generating when it encounters custom strings of text, you can use the stop_sequences parameter. If the model encounters one of the custom sequences, the response stop_reason value will be "stop_sequence" and the response stop_sequence value will contain the matched stop sequence. | -
@@ -164,6 +164,8 @@ The prefix `spring.ai.anthropic.chat` is the property prefix that lets you confi
| spring.ai.anthropic.chat.options.http-headers | Optional HTTP headers to be added to the chat completion request. | -
|====
TIP: For the latest list of model aliases and their descriptions, see the link:https://docs.anthropic.com/en/docs/about-claude/models/overview#model-aliases[official Anthropic model aliases documentation].
TIP: All properties prefixed with `spring.ai.anthropic.chat.options` can be overridden at runtime by adding a request specific <<chat-options>> to the `Prompt` call.
== Runtime Options [[chat-options]]
@@ -262,7 +264,7 @@ spring.ai.anthropic.chat.options.temperature=0.7
spring.ai.anthropic.chat.options.max-tokens=450
----
TIP: replace the `api-key` with your Anthropic credentials.
TIP: Replace the `api-key` with your Anthropic credentials.
This will create a `AnthropicChatModel` implementation that you can inject into your class.
Here is an example of a simple `@Controller` class that uses the chat model for text generations.