2121import org .skyscreamer .jsonassert .JSONCompareMode ;
2222
2323import org .springframework .ai .model .ModelOptionsUtils ;
24- import org .springframework .ai .retry .autoconfigure .SpringAiRetryAutoConfiguration ;
2524import org .springframework .ai .zhipuai .ZhiPuAiChatModel ;
2625import org .springframework .ai .zhipuai .ZhiPuAiEmbeddingModel ;
2726import org .springframework .ai .zhipuai .ZhiPuAiImageModel ;
2827import org .springframework .ai .zhipuai .api .ZhiPuAiApi ;
29- import org .springframework .boot .autoconfigure .AutoConfigurations ;
30- import org .springframework .boot .autoconfigure .web .client .RestClientAutoConfiguration ;
3128import org .springframework .boot .test .context .runner .ApplicationContextRunner ;
3229
3330import static org .assertj .core .api .Assertions .assertThat ;
@@ -51,8 +48,7 @@ public void chatProperties() {
5148 "spring.ai.zhipuai.chat.options.model=MODEL_XYZ" ,
5249 "spring.ai.zhipuai.chat.options.temperature=0.55" )
5350 // @formatter:on
54- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
55- RestClientAutoConfiguration .class , ZhiPuAiChatAutoConfiguration .class ))
51+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiToolAutoConfig (ZhiPuAiChatAutoConfiguration .class ))
5652 .run (context -> {
5753 var chatProperties = context .getBean (ZhiPuAiChatProperties .class );
5854 var connectionProperties = context .getBean (ZhiPuAiConnectionProperties .class );
@@ -80,8 +76,7 @@ public void chatOverrideConnectionProperties() {
8076 "spring.ai.zhipuai.chat.options.model=MODEL_XYZ" ,
8177 "spring.ai.zhipuai.chat.options.temperature=0.55" )
8278 // @formatter:on
83- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
84- RestClientAutoConfiguration .class , ZhiPuAiChatAutoConfiguration .class ))
79+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiToolAutoConfig (ZhiPuAiChatAutoConfiguration .class ))
8580 .run (context -> {
8681 var chatProperties = context .getBean (ZhiPuAiChatProperties .class );
8782 var connectionProperties = context .getBean (ZhiPuAiConnectionProperties .class );
@@ -106,8 +101,7 @@ public void embeddingProperties() {
106101 "spring.ai.zhipuai.api-key=abc123" ,
107102 "spring.ai.zhipuai.embedding.options.model=MODEL_XYZ" )
108103 // @formatter:on
109- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
110- RestClientAutoConfiguration .class , ZhiPuAiEmbeddingAutoConfiguration .class ))
104+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiEmbeddingAutoConfiguration .class ))
111105 .run (context -> {
112106 var embeddingProperties = context .getBean (ZhiPuAiEmbeddingProperties .class );
113107 var connectionProperties = context .getBean (ZhiPuAiConnectionProperties .class );
@@ -133,8 +127,7 @@ public void embeddingOverrideConnectionProperties() {
133127 "spring.ai.zhipuai.embedding.api-key=456" ,
134128 "spring.ai.zhipuai.embedding.options.model=MODEL_XYZ" )
135129 // @formatter:on
136- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
137- RestClientAutoConfiguration .class , ZhiPuAiEmbeddingAutoConfiguration .class ))
130+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiEmbeddingAutoConfiguration .class ))
138131 .run (context -> {
139132 var embeddingProperties = context .getBean (ZhiPuAiEmbeddingProperties .class );
140133 var connectionProperties = context .getBean (ZhiPuAiConnectionProperties .class );
@@ -157,8 +150,7 @@ public void imageProperties() {
157150 "spring.ai.zhipuai.api-key=abc123" ,
158151 "spring.ai.zhipuai.image.options.model=MODEL_XYZ" )
159152 // @formatter:on
160- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
161- RestClientAutoConfiguration .class , ZhiPuAiImageAutoConfiguration .class ))
153+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiImageAutoConfiguration .class ))
162154 .run (context -> {
163155 var imageProperties = context .getBean (ZhiPuAiImageProperties .class );
164156 var connectionProperties = context .getBean (ZhiPuAiConnectionProperties .class );
@@ -183,8 +175,7 @@ public void imageOverrideConnectionProperties() {
183175 "spring.ai.zhipuai.image.api-key=456" ,
184176 "spring.ai.zhipuai.image.options.model=MODEL_XYZ" )
185177 // @formatter:on
186- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
187- RestClientAutoConfiguration .class , ZhiPuAiImageAutoConfiguration .class ))
178+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiImageAutoConfiguration .class ))
188179 .run (context -> {
189180 var imageProperties = context .getBean (ZhiPuAiImageProperties .class );
190181 var connectionProperties = context .getBean (ZhiPuAiConnectionProperties .class );
@@ -249,8 +240,7 @@ public void chatOptionsTest() {
249240 "spring.ai.zhipuai.chat.options.thinking.type=disabled"
250241 )
251242 // @formatter:on
252- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
253- RestClientAutoConfiguration .class , ZhiPuAiChatAutoConfiguration .class ))
243+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiToolAutoConfig (ZhiPuAiChatAutoConfiguration .class ))
254244 .run (context -> {
255245 var chatProperties = context .getBean (ZhiPuAiChatProperties .class );
256246 var connectionProperties = context .getBean (ZhiPuAiConnectionProperties .class );
@@ -296,8 +286,7 @@ public void embeddingOptionsTest() {
296286 "spring.ai.zhipuai.embedding.options.user=userXYZ"
297287 )
298288 // @formatter:on
299- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
300- RestClientAutoConfiguration .class , ZhiPuAiEmbeddingAutoConfiguration .class ))
289+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiEmbeddingAutoConfiguration .class ))
301290 .run (context -> {
302291 var connectionProperties = context .getBean (ZhiPuAiConnectionProperties .class );
303292 var embeddingProperties = context .getBean (ZhiPuAiEmbeddingProperties .class );
@@ -319,8 +308,7 @@ public void imageOptionsTest() {
319308 "spring.ai.zhipuai.image.options.user=userXYZ"
320309 )
321310 // @formatter:on
322- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
323- RestClientAutoConfiguration .class , ZhiPuAiImageAutoConfiguration .class ))
311+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiImageAutoConfiguration .class ))
324312 .run (context -> {
325313 var imageProperties = context .getBean (ZhiPuAiImageProperties .class );
326314 var connectionProperties = context .getBean (ZhiPuAiConnectionProperties .class );
@@ -338,17 +326,15 @@ void embeddingActivation() {
338326 new ApplicationContextRunner ()
339327 .withPropertyValues ("spring.ai.zhipuai.api-key=API_KEY" , "spring.ai.zhipuai.base-url=TEST_BASE_URL" ,
340328 "spring.ai.model.embedding=none" )
341- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
342- RestClientAutoConfiguration .class , ZhiPuAiEmbeddingAutoConfiguration .class ))
329+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiEmbeddingAutoConfiguration .class ))
343330 .run (context -> {
344331 assertThat (context .getBeansOfType (ZhiPuAiEmbeddingProperties .class )).isEmpty ();
345332 assertThat (context .getBeansOfType (ZhiPuAiEmbeddingModel .class )).isEmpty ();
346333 });
347334
348335 new ApplicationContextRunner ()
349336 .withPropertyValues ("spring.ai.zhipuai.api-key=API_KEY" , "spring.ai.zhipuai.base-url=TEST_BASE_URL" )
350- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
351- RestClientAutoConfiguration .class , ZhiPuAiEmbeddingAutoConfiguration .class ))
337+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiEmbeddingAutoConfiguration .class ))
352338 .run (context -> {
353339 assertThat (context .getBeansOfType (ZhiPuAiEmbeddingProperties .class )).isNotEmpty ();
354340 assertThat (context .getBeansOfType (ZhiPuAiEmbeddingModel .class )).isNotEmpty ();
@@ -357,8 +343,7 @@ void embeddingActivation() {
357343 new ApplicationContextRunner ()
358344 .withPropertyValues ("spring.ai.zhipuai.api-key=API_KEY" , "spring.ai.zhipuai.base-url=TEST_BASE_URL" ,
359345 "spring.ai.model.embedding=zhipuai" )
360- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
361- RestClientAutoConfiguration .class , ZhiPuAiEmbeddingAutoConfiguration .class ))
346+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiEmbeddingAutoConfiguration .class ))
362347 .run (context -> {
363348 assertThat (context .getBeansOfType (ZhiPuAiEmbeddingProperties .class )).isNotEmpty ();
364349 assertThat (context .getBeansOfType (ZhiPuAiEmbeddingModel .class )).isNotEmpty ();
@@ -370,17 +355,15 @@ void chatActivation() {
370355 new ApplicationContextRunner ()
371356 .withPropertyValues ("spring.ai.zhipuai.api-key=API_KEY" , "spring.ai.zhipuai.base-url=TEST_BASE_URL" ,
372357 "spring.ai.model.chat=none" )
373- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
374- RestClientAutoConfiguration .class , ZhiPuAiChatAutoConfiguration .class ))
358+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiToolAutoConfig (ZhiPuAiChatAutoConfiguration .class ))
375359 .run (context -> {
376360 assertThat (context .getBeansOfType (ZhiPuAiChatProperties .class )).isEmpty ();
377361 assertThat (context .getBeansOfType (ZhiPuAiChatModel .class )).isEmpty ();
378362 });
379363
380364 new ApplicationContextRunner ()
381365 .withPropertyValues ("spring.ai.zhipuai.api-key=API_KEY" , "spring.ai.zhipuai.base-url=TEST_BASE_URL" )
382- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
383- RestClientAutoConfiguration .class , ZhiPuAiChatAutoConfiguration .class ))
366+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiToolAutoConfig (ZhiPuAiChatAutoConfiguration .class ))
384367 .run (context -> {
385368 assertThat (context .getBeansOfType (ZhiPuAiChatProperties .class )).isNotEmpty ();
386369 assertThat (context .getBeansOfType (ZhiPuAiChatModel .class )).isNotEmpty ();
@@ -389,8 +372,7 @@ void chatActivation() {
389372 new ApplicationContextRunner ()
390373 .withPropertyValues ("spring.ai.zhipuai.api-key=API_KEY" , "spring.ai.zhipuai.base-url=TEST_BASE_URL" ,
391374 "spring.ai.model.chat=zhipuai" )
392- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
393- RestClientAutoConfiguration .class , ZhiPuAiChatAutoConfiguration .class ))
375+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiToolAutoConfig (ZhiPuAiChatAutoConfiguration .class ))
394376 .run (context -> {
395377 assertThat (context .getBeansOfType (ZhiPuAiChatProperties .class )).isNotEmpty ();
396378 assertThat (context .getBeansOfType (ZhiPuAiChatModel .class )).isNotEmpty ();
@@ -403,17 +385,15 @@ void imageActivation() {
403385 new ApplicationContextRunner ()
404386 .withPropertyValues ("spring.ai.zhipuai.api-key=API_KEY" , "spring.ai.zhipuai.base-url=TEST_BASE_URL" ,
405387 "spring.ai.model.image=none" )
406- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
407- RestClientAutoConfiguration .class , ZhiPuAiImageAutoConfiguration .class ))
388+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiImageAutoConfiguration .class ))
408389 .run (context -> {
409390 assertThat (context .getBeansOfType (ZhiPuAiImageProperties .class )).isEmpty ();
410391 assertThat (context .getBeansOfType (ZhiPuAiImageModel .class )).isEmpty ();
411392 });
412393
413394 new ApplicationContextRunner ()
414395 .withPropertyValues ("spring.ai.zhipuai.api-key=API_KEY" , "spring.ai.zhipuai.base-url=TEST_BASE_URL" )
415- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
416- RestClientAutoConfiguration .class , ZhiPuAiImageAutoConfiguration .class ))
396+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiImageAutoConfiguration .class ))
417397 .run (context -> {
418398 assertThat (context .getBeansOfType (ZhiPuAiImageProperties .class )).isNotEmpty ();
419399 assertThat (context .getBeansOfType (ZhiPuAiImageModel .class )).isNotEmpty ();
@@ -422,8 +402,7 @@ void imageActivation() {
422402 new ApplicationContextRunner ()
423403 .withPropertyValues ("spring.ai.zhipuai.api-key=API_KEY" , "spring.ai.zhipuai.base-url=TEST_BASE_URL" ,
424404 "spring.ai.model.image=zhipuai" )
425- .withConfiguration (AutoConfigurations .of (SpringAiRetryAutoConfiguration .class ,
426- RestClientAutoConfiguration .class , ZhiPuAiImageAutoConfiguration .class ))
405+ .withConfiguration (ZhiPuAiITUtil .zhiPuAiAutoConfig (ZhiPuAiImageAutoConfiguration .class ))
427406 .run (context -> {
428407 assertThat (context .getBeansOfType (ZhiPuAiImageProperties .class )).isNotEmpty ();
429408 assertThat (context .getBeansOfType (ZhiPuAiImageModel .class )).isNotEmpty ();
0 commit comments