最新の安定バージョンについては、Spring AI 2.0.2 を使用してください! |
MiniMax チャット
Spring AI は、MiniMax の様々な AI 言語モデルをサポートしています。MiniMax の言語モデルと対話したり、MiniMax のモデルに基づいて多言語対応の対話型アシスタントを作成したりすることも可能です。
前提条件
MiniMax 言語モデルにアクセスするには、MiniMax を使用して API を作成する必要があります。
MiniMax 登録ページ (英語) でアカウントを作成し、API キーページ (英語) でトークンを生成します。
Spring AI プロジェクトでは、API キーページから取得した API Key の値に設定される spring.ai.minimax.api-key という名前の構成プロパティが定義されています。
この構成プロパティは、application.properties ファイルで設定できます。
spring.ai.minimax.api-key=<your-minimax-api-key>API キーなどの機密情報を扱う際のセキュリティを強化するために、Spring 式言語 (SpEL) を使用して環境変数を参照できます。
# In application.yml
spring:
ai:
minimax:
api-key: ${MINIMAX_API_KEY}# In your environment or .env file
export MINIMAX_API_KEY=<your-minimax-api-key>この構成をアプリケーションコード内でプログラム的に設定することもできます。
// Retrieve API key from a secure source or environment variable
String apiKey = System.getenv("MINIMAX_API_KEY");リポジトリと BOM の追加
Spring AI の成果物は、Maven Central リポジトリと Spring Snapshot リポジトリに公開されています。これらのリポジトリをビルドシステムに追加するには、アーティファクトリポジトリのセクションを参照してください。
依存関係の管理を容易にするため、Spring AI には部品表(BOM)が用意されており、プロジェクト全体で一貫したバージョンの Spring AI が使用されるようになっています。Spring AI の部品表をビルドシステムに追加するには、依存関係管理のセクションを参照してください。
自動構成
Spring AI の自動構成およびスターターモジュールのアーティファクト名に大幅な変更がありました。詳細については、アップグレードノートを参照してください。 |
Spring AI は、Azure MiniMax 埋め込みモデル用の Spring Boot 自動構成機能を提供します。これを有効にするには、プロジェクトの Maven pom.xml ファイルに以下の依存関係を追加してください。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-minimax</artifactId>
</dependency> または、Gradle build.gradle ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-starter-model-minimax'
}| 依存関係管理のセクションを参照して、Spring AI の部品表をビルドファイルに追加してください。 |
埋め込みプロパティ
再試行プロパティ
プレフィックス spring.ai.retry は、MiniMax 埋め込みモデルの再試行メカニズムを構成できるプロパティプレフィックスとして使用されます。
| プロパティ | 説明 | デフォルト |
|---|---|---|
spring.ai.retry.max-attempts | 再試行の最大回数。 | 10 |
spring.ai.retry.backoff.initial-interval | 指数関数的バックオフポリシーの初期スリープ期間。 | 2 秒 |
spring.ai.retry.backoff.multiplier | バックオフ間隔の乗数。 | 5 |
spring.ai.retry.backoff.max-interval | 最大バックオフ期間。 | 3 分 |
spring.ai.retry.on-client-errors | false の場合、NonTransientAiException をスローし、 | false |
spring.ai.retry.exclude-on-http-codes | 再試行をトリガーすべきではない HTTP ステータスコードのリスト (NonTransientAiException をスローするなど)。 | 空 |
spring.ai.retry.on-http-codes | 再試行をトリガーする必要がある HTTP ステータスコードのリスト (例: TransientAiException をスローする)。 | 空 |
接続プロパティ
接頭辞 spring.ai.minimax は、MiniMax への接続を可能にするプロパティ接頭辞として使用されます。
| プロパティ | 説明 | デフォルト |
|---|---|---|
spring.ai.minimax.base-url | 接続先の URL | |
spring.ai.minimax.api-key | API キー | - |
プロパティの構成
埋め込み自動構成の有効化と無効化は、プレフィックス 有効にするには、spring.ai.model.embedding=minimax (デフォルトで有効になっています) 無効にするには、spring.ai.model.embedding=none (または、ミニマックスと一致しない値) この変更は、複数のモデルの構成を可能にするために行われます。 |
プレフィックス spring.ai.minimax.embedding は、MiniMax の EmbeddingModel 実装を構成するプロパティプレフィックスです。
| プロパティ | 説明 | デフォルト |
|---|---|---|
spring.ai.minimax.embedding.enabled (削除され、無効になりました) | MiniMax 埋め込みモデルを有効にします。 | true |
spring.ai.model.embedding | MiniMax 埋め込みモデルを有効にします。 | ミニマックス |
spring.ai.minimax.embedding.base-url | オプションで spring.ai.minimax.base-url をオーバーライドして、埋め込み固有の URL を提供します | - |
spring.ai.minimax.embedding.api-key | オプションで spring.ai.minimax.api-key をオーバーライドして、埋め込み固有の API キーを提供します | - |
spring.ai.minimax.embedding.options.model | 使用するモデル | embo-01 |
ChatModel および EmbeddingModel 実装の共通の spring.ai.minimax.base-url および spring.ai.minimax.api-key をオーバーライドできます。spring.ai.minimax.embedding.base-url および spring.ai.minimax.embedding.api-key プロパティが設定されている場合は、共通のプロパティよりも優先されます。同様に、spring.ai.minimax.chat.base-url および spring.ai.minimax.chat.api-key プロパティが設定されている場合は、共通のプロパティよりも優先されます。これは、異なるモデルおよび異なるモデルエンドポイントに異なる MiniMax アカウントを使用する場合に便利です。 |
spring.ai.minimax.embedding.options というプレフィックスが付いたすべてのプロパティは、リクエスト固有のランタイムオプションを EmbeddingRequest 呼び出しに追加することで実行時にオーバーライドできます。 |
ランタイムオプション
MiniMaxEmbeddingOptions.java [GitHub] (英語) は、使用するモデルなどの MiniMax 構成を提供します。
デフォルトのオプションは、spring.ai.minimax.embedding.options プロパティを使用して構成することもできます。
開始時に、MiniMaxEmbeddingModel コンストラクターを使用して、すべての埋め込みリクエストに使用されるデフォルトのオプションを設定します。実行時に、MiniMaxEmbeddingOptions インスタンスを EmbeddingRequest の一部として使用して、デフォルトのオプションをオーバーライドできます。
たとえば、特定のリクエストのデフォルトのモデル名をオーバーライドするには、次のようにします。
EmbeddingResponse embeddingResponse = embeddingModel.call(
new EmbeddingRequest(List.of("Hello World", "World is big and salvation is near"),
MiniMaxEmbeddingOptions.builder()
.model("Different-Embedding-Model-Deployment-Name")
.build()));サンプルコントローラー
これにより、クラスに注入できる EmbeddingModel 実装が作成されます。以下は、EmbeddingC 実装を使用する単純な @Controller クラスの例です。
spring.ai.minimax.api-key=YOUR_API_KEY
spring.ai.minimax.embedding.options.model=embo-01@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);
}
}手動構成
Spring Boot を使用していない場合は、MiniMax 埋め込みモデルを手動で構成できます。これを行うには、プロジェクトの Maven pom.xml ファイルに spring-ai-minimax 依存関係を追加します。
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-minimax</artifactId>
</dependency> または、Gradle build.gradle ビルドファイルに保存します。
dependencies {
implementation 'org.springframework.ai:spring-ai-minimax'
}| 依存関係管理のセクションを参照して、Spring AI の部品表をビルドファイルに追加してください。 |
spring-ai-minimax 依存関係は、MiniMaxChatModel へのアクセスも提供します。` MiniMaxChatModel の詳細については、MiniMax チャットクライアントセクションを参照してください。 |
次に、MiniMaxEmbeddingModel インスタンスを作成し、それを使用して 2 つの入力テキスト間の類似性を計算します。
var miniMaxApi = new MiniMaxApi(System.getenv("MINIMAX_API_KEY"));
var embeddingModel = new MiniMaxEmbeddingModel(minimaxApi, MetadataMode.EMBED,
MiniMaxEmbeddingOptions.builder().model("embo-01").build());
EmbeddingResponse embeddingResponse = this.embeddingModel
.embedForResponse(List.of("Hello World", "World is big and salvation is near"));MiniMaxEmbeddingOptions は、埋め込みリクエストの構成情報を提供します。オプションクラスは、オプションを簡単に作成できる builder() を提供します。