Skip to content

Commit 21c13b1

Browse files
authored
feat: support glm-5.2 and update jackson (#89)
1 parent 8a74bd4 commit 21c13b1

79 files changed

Lines changed: 2991 additions & 2872 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Add the following dependency to your `pom.xml`:
3030
<dependency>
3131
<groupId>ai.z.openapi</groupId>
3232
<artifactId>zai-sdk</artifactId>
33-
<version>0.3.3</version>
33+
<version>0.3.5</version>
3434
</dependency>
3535
```
3636

@@ -39,7 +39,7 @@ Add the following dependency to your `build.gradle` (for Groovy DSL):
3939

4040
```groovy
4141
dependencies {
42-
implementation 'ai.z.openapi:zai-sdk:0.3.3'
42+
implementation 'ai.z.openapi:zai-sdk:0.3.5'
4343
}
4444
```
4545

@@ -126,7 +126,7 @@ ZaiClient client = ZaiClient.builder()
126126

127127
// Create chat request
128128
ChatCompletionCreateParams request = ChatCompletionCreateParams.builder()
129-
.model("glm-5.1")
129+
.model("glm-5.2")
130130
.messages(Arrays.asList(
131131
ChatMessage.builder()
132132
.role(ChatMessageRole.USER.value())
@@ -154,7 +154,7 @@ if (response.isSuccess()) {
154154
```java
155155
// Create streaming request
156156
ChatCompletionCreateParams streamRequest = ChatCompletionCreateParams.builder()
157-
.model("glm-5.1")
157+
.model("glm-5.2")
158158
.messages(Arrays.asList(
159159
ChatMessage.builder()
160160
.role(ChatMessageRole.USER.value())
@@ -284,7 +284,7 @@ public class AIController {
284284
@PostMapping("/chat")
285285
public ResponseEntity<String> chat(@RequestBody ChatRequest request) {
286286
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
287-
.model("glm-5.1")
287+
.model("glm-5.2")
288288
.messages(Arrays.asList(
289289
ChatMessage.builder()
290290
.role(ChatMessageRole.USER.value())

README_CN.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Z.ai AI 平台官方 Java SDK,提供统一接口访问强大的AI能力,包
3030
<dependency>
3131
<groupId>ai.z.openapi</groupId>
3232
<artifactId>zai-sdk</artifactId>
33-
<version>0.3.3</version>
33+
<version>0.3.5</version>
3434
</dependency>
3535
```
3636

@@ -39,7 +39,7 @@ Z.ai AI 平台官方 Java SDK,提供统一接口访问强大的AI能力,包
3939

4040
```groovy
4141
dependencies {
42-
implementation 'ai.z.openapi:zai-sdk:0.3.3'
42+
implementation 'ai.z.openapi:zai-sdk:0.3.5'
4343
}
4444
```
4545

@@ -125,7 +125,7 @@ ZaiClient client = ZaiClient.builder()
125125

126126
// 创建对话请求
127127
ChatCompletionCreateParams request = ChatCompletionCreateParams.builder()
128-
.model("glm-5.1")
128+
.model("glm-5.2")
129129
.messages(Arrays.asList(
130130
ChatMessage.builder()
131131
.role(ChatMessageRole.USER.value())
@@ -153,7 +153,7 @@ if (response.isSuccess()) {
153153
```java
154154
// 创建流式请求
155155
ChatCompletionCreateParams streamRequest = ChatCompletionCreateParams.builder()
156-
.model("glm-5.1")
156+
.model("glm-5.2")
157157
.messages(Arrays.asList(
158158
ChatMessage.builder()
159159
.role(ChatMessageRole.USER.value())
@@ -285,7 +285,7 @@ public class AIController {
285285
@PostMapping("/chat")
286286
public ResponseEntity<String> chat(@RequestBody ChatRequest request) {
287287
ChatCompletionCreateParams params = ChatCompletionCreateParams.builder()
288-
.model("glm-5.1")
288+
.model("glm-5.2")
289289
.messages(Arrays.asList(
290290
ChatMessage.builder()
291291
.role(ChatMessageRole.USER.value())

core/src/main/java/ai/z/openapi/core/Constants.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ private Constants() {
3434
// Text Generation Models
3535
// =============================================================================
3636

37+
/**
38+
* GLM-5.2 model code
39+
*/
40+
public static final String ModelGLM5_2 = "glm-5.2";
41+
3742
/**
3843
* GLM-5.1 model code
3944
*/

core/src/main/java/ai/z/openapi/core/config/ZaiConfig.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import lombok.AllArgsConstructor;
44
import lombok.Builder;
5-
import lombok.NoArgsConstructor;
65
import lombok.Setter;
76

87
import java.util.Map;
@@ -17,7 +16,6 @@
1716
*/
1817
@Setter
1918
@Builder
20-
@NoArgsConstructor
2119
@AllArgsConstructor
2220
public class ZaiConfig {
2321

@@ -128,12 +126,30 @@ public class ZaiConfig {
128126
@Builder.Default
129127
private String source_channel = "java-sdk";
130128

129+
/**
130+
* No-arg constructor that mirrors all {@link Builder.Default} field values. Lombok's
131+
* {@code @NoArgsConstructor} does not apply {@code @Builder.Default} values, so we
132+
* write this constructor explicitly to ensure every field starts with the same
133+
* defaults as the builder.
134+
*/
135+
public ZaiConfig() {
136+
this.expireMillis = 30 * 60 * 1000;
137+
this.alg = "HS256";
138+
this.disableTokenCache = true;
139+
this.connectionPoolMaxIdleConnections = 5;
140+
this.connectionPoolKeepAliveDuration = 10;
141+
this.connectionPoolTimeUnit = TimeUnit.SECONDS;
142+
this.timeOutTimeUnit = TimeUnit.SECONDS;
143+
this.source_channel = "java-sdk";
144+
}
145+
131146
/**
132147
* Constructor with combined API secret key.
133148
* @param apiKey combined secret key in format {apiKey}.{apiSecret}
134149
* @throws RuntimeException if apiSecretKey format is invalid
135150
*/
136151
public ZaiConfig(String apiKey) {
152+
this();
137153
this.apiKey = apiKey;
138154
String[] arrStr = apiKey.split("\\.");
139155
if (arrStr.length != 2) {
@@ -251,7 +267,7 @@ public int getConnectionPoolMaxIdleConnections() {
251267
* variable fallback.
252268
*/
253269
public long getConnectionPoolKeepAliveDuration() {
254-
if (connectionPoolKeepAliveDuration != 1) { // If not default value
270+
if (connectionPoolKeepAliveDuration != 10) { // If not default value
255271
return connectionPoolKeepAliveDuration;
256272
}
257273
String propValue = System.getProperty(ENV_CONNECTION_POOL_KEEP_ALIVE);

core/src/main/java/ai/z/openapi/core/token/HttpRequestInterceptor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public Response intercept(Chain chain) throws IOException {
4040
.newBuilder()
4141
.header("Authorization", "Bearer " + accessToken)
4242
.header("x-source-channel", source_channel)
43-
.header("Zai-SDK-Ver", "0.3.3");
43+
.header("Zai-SDK-Ver", "0.3.5");
4444
if (Objects.nonNull(config.getCustomHeaders())) {
4545
for (Map.Entry<String, String> entry : config.getCustomHeaders().entrySet()) {
4646
request.addHeader(entry.getKey(), entry.getValue());

core/src/main/java/ai/z/openapi/service/deserialize/MessageDeserializeFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import com.fasterxml.jackson.annotation.JsonInclude;
44
import com.fasterxml.jackson.databind.DeserializationFeature;
55
import com.fasterxml.jackson.databind.ObjectMapper;
6-
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
6+
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
77
import com.fasterxml.jackson.databind.module.SimpleModule;
88
import ai.z.openapi.service.assistant.AssistantChoice;
99
import ai.z.openapi.service.deserialize.assistant.AssistantChoiceDeserializer;
@@ -14,7 +14,7 @@ public static ObjectMapper defaultObjectMapper() {
1414
ObjectMapper mapper = new ObjectMapper();
1515
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
1616
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
17-
mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
17+
mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);
1818
SimpleModule module = new SimpleModule();
1919

2020
module.addDeserializer(AssistantChoice.class, new AssistantChoiceDeserializer());

core/src/main/java/ai/z/openapi/service/model/ChatCompletionCreateParams.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,4 +127,11 @@ public class ChatCompletionCreateParams extends CommonRequest implements ClientR
127127
@JsonProperty("watermark_enabled")
128128
private Boolean watermarkEnabled;
129129

130+
/**
131+
* Reasoning effort level, supported values: none, minimal, low, medium, high, xhigh,
132+
* max. Defaults to max when not specified. Effective for glm-5.2 and above models.
133+
*/
134+
@JsonProperty("reasoning_effort")
135+
private String reasoningEffort;
136+
130137
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
</scm>
4646

4747
<properties>
48-
<revision>0.3.4</revision>
48+
<revision>0.3.5</revision>
4949
<java.version>8</java.version>
5050
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
5151
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

samples/pom.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,17 @@
1717
<version>${revision}</version>
1818
</dependency>
1919
</dependencies>
20+
21+
<build>
22+
<plugins>
23+
<plugin>
24+
<groupId>org.codehaus.mojo</groupId>
25+
<artifactId>exec-maven-plugin</artifactId>
26+
<version>3.1.0</version>
27+
<configuration>
28+
<classpathScope>compile</classpathScope>
29+
</configuration>
30+
</plugin>
31+
</plugins>
32+
</build>
2033
</project>

samples/src/main/ai.z.openapi.samples/AgentExample.java

Lines changed: 0 additions & 75 deletions
This file was deleted.

0 commit comments

Comments
 (0)