跳到主要内容

Anthropic

Maven依存関係

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-anthropic</artifactId>
<version>1.0.0-beta4</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) {
// このメソッドは新しい部分的な応答が利用可能になったときに呼び出されます。1つまたは複数のトークンで構成されることがあります。
}

@Override
public void onCompleteResponse(ChatResponse completeResponse) {
// このメソッドはモデルが応答を完了したときに呼び出されます
}

@Override
public void onError(Throwable error) {
// このメソッドはエラーが発生したときに呼び出されます
}
});

AnthropicStreamingChatModelのカスタマイズ

AnthropicChatModelと同じです。上記を参照してください。

ツール

Anthropicはストリーミングモードと非ストリーミングモードの両方でツールをサポートしています。

ツールに関するAnthropicのドキュメントはこちらで確認できます。

キャッシング

AnthropicChatModelAnthropicStreamingChatModelはシステムメッセージとツールのキャッシングをサポートしています。 キャッシングはデフォルトで無効になっています。 それぞれcacheSystemMessagescacheToolsパラメータを設定することで有効にできます。

有効にすると、すべてのシステムメッセージとツールにそれぞれcache_controlブロックが追加されます。

キャッシングを使用するには、beta("prompt-caching-2024-07-31")を設定してください。

AnthropicChatModelAnthropicStreamingChatModelは応答でAnthropicTokenUsageを返します。これには cacheCreationInputTokenscacheReadInputTokensが含まれています。

キャッシングに関する詳細はこちらで確認できます。

思考プロセス

AnthropicChatModelAnthropicStreamingChatModel思考プロセス機能の限定的なサポートを提供しています。 thinkingTypethinkingBudgetTokensパラメータを設定することで有効にできます:

ChatModel 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();

現在サポートされていないもの:

  • LC4j APIから思考内容を取得することはできません。ログでのみ表示されます。
  • 複数ターンの会話(メモリを使用)では思考内容は保存されません
  • など

思考プロセスに関する詳細はこちらで確認できます。

Quarkus

詳細はこちらで確認できます。

Spring Boot

Anthropic用のSpring Bootスターターをインポートします:

<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-anthropic-spring-boot-starter</artifactId>
<version>1.0.0-beta4</version>
</dependency>

AnthropicChatModelビーンを設定します:

langchain4j.anthropic.chat-model.api-key = ${ANTHROPIC_API_KEY}

AnthropicStreamingChatModelビーンを設定します:

langchain4j.anthropic.streaming-chat-model.api-key = ${ANTHROPIC_API_KEY}