watsonx.ai 埋め込み
Watsonx.ai (英語) を使用すると、さまざまな大規模言語モデル (LLM) を実行し、そこから埋め込みを生成できます。Spring AI は、WatsonxAiEmbeddingModel
を使用した Watsonx.ai テキスト埋め込みをサポートしています。
埋め込みは、浮動小数点数のベクトル (リスト) です。2 つのベクトル間の距離によって、それらの関連性が測定されます。距離が小さい場合は関連性が高いことを示し、距離が大きい場合は関連性が低いことを示します。
前提条件
まず、watsonx.ai の SaaS インスタンス (および IBM Cloud アカウント) が必要です。
watsonx.ai をフリーで試すには、フリートライアル (英語) を参照してください。
詳細はこちら (英語) を参照してください |
自動構成
Spring AI は、Watsonx.ai 埋め込みモデル用の Spring Boot 自動構成を提供します。これを有効にするには、Maven pom.xml
ファイルに次の依存関係を追加します。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-watsonx-ai-spring-boot-starter</artifactId>
</dependency>
または、Gradle build.gradle
ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-watsonx-ai-spring-boot-starter'
}
Spring AI BOM をビルドファイルに追加するには、"依存関係管理" セクションを参照してください。 |
spring.ai.watsonx.embedding.options.*
プロパティは、すべての埋め込みリクエストに使用されるデフォルトオプションを構成するために使用されます。
埋め込みプロパティ
プレフィックス spring.ai.watsonx.ai
は、watsonx.ai に接続するためのプロパティプレフィックスとして使用されます。
プロパティ | 説明 | デフォルト |
---|---|---|
spring.ai.watsonx.ai.base-url | 接続先の URL | |
spring.ai.watsonx.ai.embedding-endpoint | テキストエンドポイント | ml/v1/ テキスト / 埋め込み ? バージョン =2023-05-29 |
spring.ai.watsonx.ai.project-id | プロジェクト ID | - |
spring.ai.watsonx.ai.iam-token | IBM Cloud アカウントの IAM トークン | - |
プレフィックス spring.ai.watsonx.embedding.options
は、Watsonx.ai の EmbeddingModel
実装を構成するプロパティプレフィックスです。
プロパティ | 説明 | デフォルト |
---|---|---|
spring.ai.watsonx.ai.embedding.enabled | Watsonx.ai 埋め込みモデルを有効にする | true |
spring.ai.watsonx.ai.embedding.options.model | 使用する埋め込みモデル | ibm/slate-30m- 英語 -rtrvr |
ランタイムオプション
WatsonxAiEmbeddingOptions.java [GitHub] (英語) は、使用するモデルなどの Watsonx.ai 構成を提供します。
デフォルトのオプションは、spring.ai.watsonx.embedding.options
プロパティを使用して構成することもできます。
EmbeddingResponse embeddingResponse = embeddingModel.call(
new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"),
WatsonxAiEmbeddingOptions.create()
.withModel("Different-Embedding-Model-Deployment-Name"))
);
サンプルコントローラー
これにより、クラスに挿入できる EmbeddingModel
実装が作成されます。以下は、EmbeddingModel
実装を使用する単純な @Controller
クラスの例です。
@RestController
public class EmbeddingController {
private final EmbeddingModel embeddingModel;
@Autowired
public EmbeddingController(EmbeddingModel embeddingModel) {
this.embeddingModel = embeddingModel;
}
@GetMapping("/ai/embedding")
public ResponseEntity<Embedding> embedding(@RequestParam String text) {
EmbeddingResponse response = this.embeddingModel.embedForResponse(List.of(text));
return ResponseEntity.ok(response.getResult());
}
}