Skip to content

Commit 852b919

Browse files
committed
fix: MiniMax embedding model autoconfiguration & context isolation in embedding unit test
1 parent d96d0b5 commit 852b919

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

models/spring-ai-minimax/src/main/java/org/springframework/ai/minimax/MiniMaxEmbeddingModel.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,4 +205,8 @@ else if (defaultOptions.getModel() != null) {
205205
return optionBuilder.build();
206206
}
207207

208+
public void setObservationConvention(EmbeddingModelObservationConvention observationConvention) {
209+
this.observationConvention = observationConvention;
210+
}
211+
208212
}

models/spring-ai-minimax/src/test/java/org/springframework/ai/minimax/embedding/EmbeddingIT.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
2020
import org.springframework.ai.embedding.EmbeddingResponse;
2121
import org.springframework.ai.minimax.MiniMaxEmbeddingModel;
22+
import org.springframework.ai.minimax.MiniMaxTestConfiguration;
2223
import org.springframework.beans.factory.annotation.Autowired;
2324
import org.springframework.boot.test.context.SpringBootTest;
2425

@@ -29,7 +30,7 @@
2930
/**
3031
* @author Geng Rong
3132
*/
32-
@SpringBootTest
33+
@SpringBootTest(classes = MiniMaxTestConfiguration.class)
3334
@EnabledIfEnvironmentVariable(named = "MINIMAX_API_KEY", matches = ".+")
3435
class EmbeddingIT {
3536

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/minimax/MiniMaxAutoConfiguration.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import io.micrometer.observation.ObservationRegistry;
1919
import org.springframework.ai.autoconfigure.retry.SpringAiRetryAutoConfiguration;
2020
import org.springframework.ai.chat.observation.ChatModelObservationConvention;
21+
import org.springframework.ai.embedding.observation.EmbeddingModelObservationConvention;
2122
import org.springframework.ai.minimax.MiniMaxChatModel;
2223
import org.springframework.ai.minimax.MiniMaxEmbeddingModel;
2324
import org.springframework.ai.minimax.api.MiniMaxApi;
@@ -80,13 +81,20 @@ public MiniMaxChatModel miniMaxChatModel(MiniMaxConnectionProperties commonPrope
8081
matchIfMissing = true)
8182
public MiniMaxEmbeddingModel miniMaxEmbeddingModel(MiniMaxConnectionProperties commonProperties,
8283
MiniMaxEmbeddingProperties embeddingProperties, RestClient.Builder restClientBuilder,
83-
RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler) {
84+
RetryTemplate retryTemplate, ResponseErrorHandler responseErrorHandler,
85+
ObjectProvider<ObservationRegistry> observationRegistry,
86+
ObjectProvider<EmbeddingModelObservationConvention> observationConvention) {
8487

8588
var miniMaxApi = miniMaxApi(embeddingProperties.getBaseUrl(), commonProperties.getBaseUrl(),
8689
embeddingProperties.getApiKey(), commonProperties.getApiKey(), restClientBuilder, responseErrorHandler);
8790

88-
return new MiniMaxEmbeddingModel(miniMaxApi, embeddingProperties.getMetadataMode(),
89-
embeddingProperties.getOptions(), retryTemplate);
91+
var embeddingModel = new MiniMaxEmbeddingModel(miniMaxApi, embeddingProperties.getMetadataMode(),
92+
embeddingProperties.getOptions(), retryTemplate,
93+
observationRegistry.getIfUnique(() -> ObservationRegistry.NOOP));
94+
95+
observationConvention.ifAvailable(embeddingModel::setObservationConvention);
96+
97+
return embeddingModel;
9098
}
9199

92100
private MiniMaxApi miniMaxApi(String baseUrl, String commonBaseUrl, String apiKey, String commonApiKey,

0 commit comments

Comments
 (0)