spring.ai.anthropic.api-key
的配置属性,你应该将其设置为从 anthropic.com 获取的 API 密钥
的值。
你可以在 application.properties
文件中设置此配置属性:
pom.xml
或 Gradle build.gradle
文件中:
spring.ai.retry
用作属性前缀,允许你配置 Anthropic 聊天模型的重试机制。
属性 | 描述 | 默认值 |
---|---|---|
spring.ai.retry.max-attempts | 最大重试次数。 | 10 |
spring.ai.retry.backoff.initial-interval | 指数退避策略的初始休眠持续时间。 | 2 秒 |
spring.ai.retry.backoff.multiplier | 退避间隔乘数。 | 5 |
spring.ai.retry.backoff.max-interval | 最大退避持续时间。 | 3 分钟 |
spring.ai.retry.on-client-errors | 如果为 false,则抛出 NonTransientAiException,并且不尝试对 4xx 客户端错误代码进行重试 | false |
spring.ai.retry.exclude-on-http-codes | 不应触发重试的 HTTP 状态代码列表(例如,抛出 NonTransientAiException)。 | 空 |
spring.ai.retry.on-http-codes | 应触发重试的 HTTP 状态代码列表(例如,抛出 TransientAiException)。 | 空 |
spring.ai.anthropic
用作属性前缀,允许你连接到 Anthropic。
属性 | 描述 | 默认值 |
---|---|---|
spring.ai.anthropic.base-url | 要连接的 URL | https://api.anthropic.com |
spring.ai.anthropic.completions-path | 要附加到基本 URL 的路径。 | /v1/chat/completions |
spring.ai.anthropic.version | Anthropic API 版本 | 2023-06-01 |
spring.ai.anthropic.api-key | API 密钥 | - |
spring.ai.anthropic.beta-version | 启用新的/实验性功能。如果设置为 max-tokens-3-5-sonnet-2024-07-15 \n输出令牌限制从 4096 增加到 8192 个令牌(仅适用于 claude-3-5-sonnet)。 | tools-2024-04-04 |
spring.ai.model.chat
的顶级属性进行配置。要启用,spring.ai.model.chat=anthropic
(默认启用)要禁用,spring.ai.model.chat=none
(或任何与 anthropic 不匹配的值)此更改是为了允许配置多个模型。spring.ai.anthropic.chat
是属性前缀,允许你配置 Anthropic 的聊天模型实现。
属性 | 描述 | 默认值 |
---|---|---|
spring.ai.anthropic.chat.enabled (已移除) | 启用 Anthropic 聊天模型。 | true |
spring.ai.model.chat | 启用 Anthropic 聊天模型。 | anthropic |
spring.ai.anthropic.chat.options.model | 这是要使用的 Anthropic 聊天模型。支持: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 | 用于控制生成补全的明显创造性的采样温度。较高的值会使输出更随机,而较低的值会使结果更集中和确定。不建议为同一补全请求修改温度和 top_p,因为这两个设置的相互作用很难预测。 | 0.8 |
spring.ai.anthropic.chat.options.max-tokens | 在聊天补全中生成的最大标记数。输入标记和生成标记的总长度受模型上下文长度的限制。 | 500 |
spring.ai.anthropic.chat.options.stop-sequence | 模型将停止生成的自定义文本序列。我们的模型通常会在自然完成其回合时停止,这将导致响应 stop_reason 为”end_turn”。如果你希望模型在遇到自定义文本字符串时停止生成,则可以使用 stop_sequences 参数。如果模型遇到自定义序列之一,则响应 stop_reason 值将为”stop_sequence”,响应 stop_sequence 值将包含匹配的停止序列。 | - |
spring.ai.anthropic.chat.options.top-p | 使用核采样。在核采样中,我们计算后续每个标记的所有选项的累积分布(按概率降序排列),并在达到 top_p 指定的特定概率时将其截断。你应该更改温度或 top_p,但不能同时更改两者。建议仅用于高级用例。通常只需要使用温度。 | - |
spring.ai.anthropic.chat.options.top-k | 仅从后续每个标记的前 K 个选项中采样。用于删除”长尾”低概率响应。在此处了解更多技术细节。建议仅用于高级用例。通常只需要使用温度。 | - |
spring.ai.anthropic.chat.options.toolNames | 在单个提示请求中启用工具调用的工具列表(按其名称标识)。具有这些名称的工具必须存在于 toolCallbacks 注册表中。 | - |
spring.ai.anthropic.chat.options.toolCallbacks | 要注册到 ChatModel 的工具回调。 | - |
spring.ai.anthropic.chat.options.internal-tool-execution-enabled | 如果为 false,Spring AI 将不会在内部处理工具调用,而是将它们代理到客户端。然后由客户端负责处理工具调用,将它们分派到适当的函数,并返回结果。如果为 true(默认值),Spring AI 将在内部处理函数调用。仅适用于具有函数调用支持的聊天模型 | true |
(已弃用) spring.ai.anthropic.chat.options.functions | 在单个提示请求中启用函数调用的函数列表(按其名称标识)。具有这些名称的函数必须存在于 functionCallbacks 注册表中。 | - |
(已弃用) spring.ai.anthropic.chat.options.functionCallbacks | 要注册到 ChatModel 的工具函数回调。 | - |
(已弃用) spring.ai.anthropic.chat.options.proxy-tool-calls | 如果为 true,Spring AI 将不会在内部处理函数调用,而是将它们代理到客户端。然后由客户端负责处理函数调用,将它们分派到适当的函数,并返回结果。如果为 false(默认值),Spring AI 将在内部处理函数调用。仅适用于具有函数调用支持的聊天模型 | false |
spring.ai.anthropic.chat.options.http-headers | 要添加到聊天补全请求的可选 HTTP 标头。 | - |
spring.ai.anthropic.chat.options
为前缀的属性都可以在运行时通过向 Prompt
调用添加特定于请求的运行时选项来覆盖。AnthropicChatModel(api, options)
构造函数或 spring.ai.anthropic.chat.options.*
属性配置默认选项。
在运行时,你可以通过向 Prompt
调用添加新的、特定于请求的选项来覆盖默认选项。
例如,要为特定请求覆盖默认模型和温度:
AnthropicChatModel
注册自定义 Java 工具,并让 Anthropic Claude 模型智能地选择输出一个 JSON 对象,其中包含调用一个或多个已注册函数的参数。
这是将 LLM 功能与外部工具和 API 连接起来的强大技术。
阅读有关工具调用的更多信息。
base64
源类型的 图像
,以及 image/jpeg
、image/png
、image/gif
和 image/webp
媒体类型。
有关更多信息,请查看视觉指南。
Anthropic Claude 3.5 Sonnet 还支持 application/pdf
文件的 pdf
源类型。
Spring AI 的 Message
接口通过引入 Media 类型来支持多模态 AI 模型。
此类型包含有关消息中媒体附件的数据和信息,使用 Spring 的 org.springframework.util.MimeType
和 java.lang.Object
来获取原始媒体数据。
以下是从 AnthropicChatModelIT.java 中提取的简单代码示例,演示了用户文本与图像的组合。
multimodal.test.png
图像作为输入:
多模态测试图像
application/pdf
媒体类型将 PDF 文件附加到消息:
spring-ai-starter-model-anthropic
添加到你的 pom (或 gradle) 依赖项中。
在 src/main/resources
目录下添加一个 application.properties
文件,以启用和配置 Anthropic 聊天模型:
api-key
替换为你的 Anthropic 凭据。AnthropicChatModel
实现,你可以将其注入到你的类中。
以下是一个简单的 @Controller
类的示例,该类使用聊天模型进行文本生成。
ChatModel
和 StreamingChatModel
,并使用低级 AnthropicApi 客户端连接到 Anthropic 服务。
将 spring-ai-anthropic
依赖项添加到项目的 Maven pom.xml
文件中:
build.gradle
构建文件中。
AnthropicChatModel
并将其用于文本生成:
AnthropicChatOptions
为聊天请求提供配置信息。
AnthropicChatOptions.Builder
是流畅的选项构建器。
AnthropicApi
聊天接口和构建块:
AnthropicApi 聊天 API 图
AnthropicApi 事件模型