Skip to content

Commit 53f8f17

Browse files
authored
fix: ZhiPuAiEmbedding supports custom dimensions (#3668)
Auto-cherry-pick to 1.0.x Fixes #3668 Signed-off-by: YunKui Lu <luyunkui95@gmail.com>
1 parent 64cf88a commit 53f8f17

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

models/spring-ai-zhipuai/src/main/java/org/springframework/ai/zhipuai/ZhiPuAiEmbeddingOptions.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package org.springframework.ai.zhipuai;
1818

19-
import com.fasterxml.jackson.annotation.JsonIgnore;
2019
import com.fasterxml.jackson.annotation.JsonInclude;
2120
import com.fasterxml.jackson.annotation.JsonInclude.Include;
2221
import com.fasterxml.jackson.annotation.JsonProperty;
@@ -63,9 +62,8 @@ public void setDimensions(Integer dimensions) {
6362
}
6463

6564
@Override
66-
@JsonIgnore
6765
public Integer getDimensions() {
68-
return null;
66+
return this.dimensions;
6967
}
7068

7169
public static class Builder {

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

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,12 @@
2121
import org.junit.jupiter.api.Test;
2222
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
2323

24+
import org.springframework.ai.embedding.EmbeddingRequest;
2425
import org.springframework.ai.embedding.EmbeddingResponse;
2526
import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingModel;
27+
import org.springframework.ai.zhipuai.ZhiPuAiEmbeddingOptions;
2628
import org.springframework.ai.zhipuai.ZhiPuAiTestConfiguration;
29+
import org.springframework.ai.zhipuai.api.ZhiPuAiApi;
2730
import org.springframework.beans.factory.annotation.Autowired;
2831
import org.springframework.boot.test.context.SpringBootTest;
2932

@@ -53,6 +56,31 @@ void defaultEmbedding() {
5356
assertThat(this.embeddingModel.dimensions()).isEqualTo(1024);
5457
}
5558

59+
@Test
60+
void embeddingV3WithDefault() {
61+
EmbeddingResponse embeddingResponse = this.embeddingModel.call(new EmbeddingRequest(List.of("Hello World"),
62+
ZhiPuAiEmbeddingOptions.builder().model(ZhiPuAiApi.EmbeddingModel.Embedding_3.getValue()).build()));
63+
64+
assertThat(embeddingResponse.getResults()).hasSize(1);
65+
66+
assertThat(embeddingResponse.getResults().get(0)).isNotNull();
67+
assertThat(embeddingResponse.getResults().get(0).getOutput()).hasSize(2048);
68+
}
69+
70+
@Test
71+
void embeddingV3WithCustomDimension() {
72+
EmbeddingResponse embeddingResponse = this.embeddingModel.call(new EmbeddingRequest(List.of("Hello World"),
73+
ZhiPuAiEmbeddingOptions.builder()
74+
.model(ZhiPuAiApi.EmbeddingModel.Embedding_3.getValue())
75+
.dimensions(512)
76+
.build()));
77+
78+
assertThat(embeddingResponse.getResults()).hasSize(1);
79+
80+
assertThat(embeddingResponse.getResults().get(0)).isNotNull();
81+
assertThat(embeddingResponse.getResults().get(0).getOutput()).hasSize(512);
82+
}
83+
5684
@Test
5785
void batchEmbedding() {
5886
assertThat(this.embeddingModel).isNotNull();

0 commit comments

Comments
 (0)