Anthropic
Maven 依赖
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-anthropic</artifactId>
<version>1.0.0-beta3</version>
</dependency>
AnthropicChatModel
AnthropicChatModel model = AnthropicChatModel.builder()
.apiKey(System.getenv("ANTHROPIC_API_KEY"))
.modelName(CLAUDE_3_5_SONNET_20240620)
.build();
String answer = model.chat("Say 'Hello World'");
System.out.println(answer);
自定义 AnthropicChatModel
AnthropicChatModel model = AnthropicChatModel.builder()
.baseUrl(...)
.apiKey(...)
.version(...)
.beta(...)
.modelName(...)
.temperature(...)
.topP(...)
.topK(...)
.maxTokens(...)
.stopSequences(...)
.cacheSystemMessages(...)
.cacheTools(...)
.thinkingType(...)
.thinkingBudgetTokens(...)
.timeout(...)
.maxRetries(...)
.logRequests(...)
.logResponses(...)
.build();
上述部分参数的描述可以在这里找到。
AnthropicStreamingChatModel
AnthropicStreamingChatModel model = AnthropicStreamingChatModel.builder()
.apiKey(System.getenv("ANTHROPIC_API_KEY"))
.modelName(CLAUDE_3_5_SONNET_20240620)
.build();
model.chat("Say 'Hello World'", new StreamingChatResponseHandler() {
@Override
public void onPartialResponse(String partialResponse) {
// 当有新的部分响应可用时调用此方法。它可以由一个或多个令牌组成。
}
@Override
public void onCompleteResponse(ChatResponse completeResponse) {
// 当模型完成响应时调用此方法
}
@Override
public void onError(Throwable error) {
// 当发生错误时调用此方法
}
});
自定义 AnthropicStreamingChatModel
与 AnthropicChatModel
相同,请参见上文。
工具
Anthropic 在流式和非流式模式下都支持工具。
Anthropic 关于工具的文档可以在这里找到。
缓存
AnthropicChatModel
和 AnthropicStreamingChatModel
支持系统消息和工具的缓存。
默认情况下,缓存是禁用的。
可以通过分别设置 cacheSystemMessages
和 cacheTools
参数来启用它。
启用后,cache_control
块将分别添加到所有系统消息和工具中。
要使用缓存,请设置 beta("prompt-caching-2024-07-31")
。
AnthropicChatModel
和 AnthropicStreamingChatModel
在响应中返回 AnthropicTokenUsage
,
其中包含 cacheCreationInputTokens
和 cacheReadInputTokens
。
有关缓存的更多信息可以在这里找到。
思考
AnthropicChatModel
和 AnthropicStreamingChatModel
对思考功能有有限的支持。
可以通过设置 thinkingType
和 thinkingBudgetTokens
参数来启用它:
ChatLanguageModel model = AnthropicChatModel.builder()
.apiKey(System.getenv("ANTHROPIC_API_KEY"))
.modelName(CLAUDE_3_7_SONNET_20250219)
.thinkingType("enabled")
.thinkingBudgetTokens(1024)
.maxTokens(1024 + 100)
.logRequests(true)
.logResponses(true)
.build();
当前不支持的内容:
有关思考的更多信息可以在这里找到。
Quarkus
更多详情请参见这里。
Spring Boot
导入 Anthropic 的 Spring Boot 启动器:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-anthropic-spring-boot-starter</artifactId>
<version>1.0.0-beta3</version>
</dependency>
配置 AnthropicChatModel
bean:
langchain4j.anthropic.chat-model.api-key = ${ANTHROPIC_API_KEY}
配置 AnthropicStreamingChatModel
bean:
langchain4j.anthropic.streaming-chat-model.api-key = ${ANTHROPIC_API_KEY}