Cohere 埋め込み

Bedrock Cohere 埋め込みモデルを提供します。ビジネス成果を向上させる重要なアプリとワークフローに生成 AI 機能を統合します。

AWS Bedrock Cohere モデルページ [Amazon] および Amazon Bedrock ユーザーガイド には、AWS ホストモデルの使用方法に関する詳細情報が含まれています。

前提条件

API アクセスの設定については、Spring Amazon Bedrock に関する AI ドキュメントを参照してください。

リポジトリと BOM の追加

Spring AI アーティファクトは、Spring マイルストーンおよびスナップショットリポジトリで公開されます。これらのリポジトリをビルドシステムに追加するには、リポジトリセクションを参照してください。

依存関係の管理を支援するために、Spring AI は BOM (部品表) を提供し、一貫したバージョンの Spring AI がプロジェクト全体で使用されるようにします。Spring AI BOM をビルドシステムに追加するには、"依存関係管理" セクションを参照してください。

自動構成

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
regionsaccess-keysecret-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 インターフェースと構成要素を示しています。

bedrock cohere embedding low level api

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