Cohere 埋め込み
Bedrock Cohere 埋め込みモデルを提供します。ビジネス成果を向上させる重要なアプリとワークフローに生成 AI 機能を統合します。
AWS Bedrock Cohere モデルページ [Amazon] および Amazon Bedrock ユーザーガイド には、AWS ホストモデルの使用方法に関する詳細情報が含まれています。
前提条件
API アクセスの設定については、Spring Amazon Bedrock に関する AI ドキュメントを参照してください。
自動構成
spring-ai-bedrock-ai-spring-boot-starter
依存関係をプロジェクトの Maven pom.xml
ファイルに追加します。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bedrock-ai-spring-boot-starter</artifactId>
</dependency>
または、Gradle build.gradle
ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-bedrock-ai-spring-boot-starter'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。 |
Cohere 埋め込みサポートを有効にする
デフォルトでは、Cohere モデルは無効になっています。これを有効にするには、spring.ai.bedrock.cohere.embedding.enabled
プロパティを true
に設定します。環境変数のエクスポートは、この構成プロパティを設定する 1 つの方法です。
export SPRING_AI_BEDROCK_COHERE_EMBEDDING_ENABLED=true
埋め込みプロパティ
プレフィックス spring.ai.bedrock.aws
は、AWS Bedrock への接続を設定するためのプロパティプレフィックスです。
プロパティ | 説明 | デフォルト |
---|---|---|
spring.ai.bedrock.aws.region | 使用する AWS リージョン。 | 米国東部 -1 |
spring.ai.bedrock.aws.access-key | AWS アクセスキー。 | - |
spring.ai.bedrock.aws.secret-key | AWS の秘密鍵。 | - |
プレフィックス spring.ai.bedrock.cohere.embedding
( BedrockCohereEmbeddingProperties
で定義) は、Cohere の埋め込みモデルの実装を構成するプロパティプレフィックスです。
プロパティ | 説明 | デフォルト |
spring.ai.bedrock.cohere.embedding.enabled | Cohere のサポートを有効または無効にする | false |
spring.ai.bedrock.cohere.embedding.model | 使用するモデル ID。対応モデルについては CohereEmbeddingModel [GitHub] (英語) を参照してください。 | cohere.embed-multilingual-v3 |
spring.ai.bedrock.cohere.embedding.options.input-type | 各型を区別するために、特別なトークンを先頭に付加します。検索と取得のために型を混在させる場合を除き、異なる型を混在させないでください。この場合、search_document 型を使用してコーパスを埋め込み、search_query 型を使用してクエリを埋め込みます。 | SEARCH_DOCUMENT |
spring.ai.bedrock.cohere.embedding.options.truncate | API が最大トークン長を超える入力を処理する方法を指定します。LEFT または RIGHT を指定した場合、モデルは残りの入力がモデルの最大入力トークン長に正確になるまで入力を破棄します。 | NONE |
他のモデル ID については、CohereEmbeddingModel [GitHub] (英語) を参照してください。サポートされている値は、cohere.embed-multilingual-v3
および cohere.embed-english-v3
です。モデル ID 値は基本モデル ID に関する AWS Bedrock ドキュメント [Amazon] にもあります。
spring.ai.bedrock.cohere.embedding.options というプレフィックスが付いたすべてのプロパティは、リクエスト固有のランタイムオプションを EmbeddingRequest 呼び出しに追加することで実行時にオーバーライドできます。 |
ランタイムオプション
BedrockCohereEmbeddingOptions.java [GitHub] (英語) は、input-type
または truncate
などのモデル構成を提供します。
起動時に、BedrockCohereEmbeddingModel(api, options)
コンストラクターまたは spring.ai.bedrock.cohere.embedding.options.*
プロパティを使用してデフォルトのオプションを構成できます。
実行時に、新しいリクエスト固有のオプションを EmbeddingRequest
呼び出しに追加することで、デフォルトのオプションをオーバーライドできます。たとえば、特定のリクエストのデフォルトの温度をオーバーライドするには、次のようにします。
EmbeddingResponse embeddingResponse = embeddingModel.call(
new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"),
BedrockCohereEmbeddingOptions.builder()
.withInputType(InputType.SEARCH_DOCUMENT)
.build()));
サンプルコントローラー
新しい Spring Boot プロジェクトを作成し、spring-ai-bedrock-ai-spring-boot-starter
を pom (または gradle) の依存関係に追加します。
src/main/resources
ディレクトリに application.properties
ファイルを追加して、Cohere 埋め込みモデルを有効にして構成します。
spring.ai.bedrock.aws.region=eu-central-1
spring.ai.bedrock.aws.access-key=${AWS_ACCESS_KEY_ID}
spring.ai.bedrock.aws.secret-key=${AWS_SECRET_ACCESS_KEY}
spring.ai.bedrock.cohere.embedding.enabled=true
spring.ai.bedrock.cohere.embedding.options.input-type=search-document
regions 、access-key 、secret-key を AWS 認証情報に置き換えます。 |
これにより、クラスに挿入できる BedrockCohereEmbeddingModel
実装が作成されます。以下は、テキスト生成にチャットモデルを使用する単純な @Controller
クラスの例です。
@RestController
public class EmbeddingController {
private final EmbeddingModel embeddingModel;
@Autowired
public EmbeddingController(EmbeddingModel embeddingModel) {
this.embeddingModel = embeddingModel;
}
@GetMapping("/ai/embedding")
public Map embed(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
EmbeddingResponse embeddingResponse = this.embeddingModel.embedForResponse(List.of(message));
return Map.of("embedding", embeddingResponse);
}
}
手動構成
BedrockCohereEmbeddingModel [GitHub] (英語) は EmbeddingModel
を実装し、低レベル CohereEmbeddingBedrockApi クライアントを使用して Bedrock Cohere サービスに接続します。
spring-ai-bedrock
依存関係をプロジェクトの Maven pom.xml
ファイルに追加します。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bedrock</artifactId>
</dependency>
または、Gradle build.gradle
ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-bedrock'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。 |
次に、BedrockCohereEmbeddingModel [GitHub] (英語) を作成し、テキストの埋め込みに使用します。
var cohereEmbeddingApi =new CohereEmbeddingBedrockApi(
CohereEmbeddingModel.COHERE_EMBED_MULTILINGUAL_V1.id(),
EnvironmentVariableCredentialsProvider.create(), Region.US_EAST_1.id(), new ObjectMapper());
var embeddingModel = new BedrockCohereEmbeddingModel(cohereEmbeddingApi);
EmbeddingResponse embeddingResponse = embeddingModel
.embedForResponse(List.of("Hello World", "World is big and salvation is near"));
低レベル CohereEmbeddingBedrockApi クライアント
CohereEmbeddingBedrockApi [GitHub] (英語) は、AWS Bedrock Cohere コマンドモデル [Amazon] 上にある軽量の Java クライアントを提供します。
次のクラス図は、CohereEmbeddingBedrockApi インターフェースと構成要素を示しています。
CohereEmbeddingBedrockApi は、単一およびバッチの埋め込み計算用に cohere.embed-english-v3
および cohere.embed-multilingual-v3
モデルをサポートします。
API をプログラムで使用する方法の簡単なスニペットを次に示します。
CohereEmbeddingBedrockApi api = new CohereEmbeddingBedrockApi(
CohereEmbeddingModel.COHERE_EMBED_MULTILINGUAL_V1.id(),
EnvironmentVariableCredentialsProvider.create(),
Region.US_EAST_1.id(), new ObjectMapper());
CohereEmbeddingRequest request = new CohereEmbeddingRequest(
List.of("I like to eat apples", "I like to eat oranges"),
CohereEmbeddingRequest.InputType.search_document,
CohereEmbeddingRequest.Truncate.NONE);
CohereEmbeddingResponse response = api.embedding(request);