Skip to content

Commit eaf6cdc

Browse files
committed
update 0.0.3, update openai sdk
1 parent 65477a0 commit eaf6cdc

File tree

11 files changed

+76
-34
lines changed

11 files changed

+76
-34
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ Chat
5151

5252
GeminiAccount account = GeminiAccount.builder().apiKey(apiKey).baseUrl(baseUrl).build();
5353

54-
GenerationConfig generationConfig = GenerationConfig.builder().temperature(0.3).build();
54+
GeminiGenerationConfig generationConfig = GeminiGenerationConfig.builder().temperature(0.3).build();
5555

5656
GeminiClient client = new GeminiClient(account);
5757
GeminiTextResponse chatResponse1 = client.chat("Do you know something about Yao Ming", generationConfig);
@@ -68,7 +68,7 @@ Multi-turn Chat
6868

6969
GeminiAccount account = GeminiAccount.builder().apiKey(apiKey).baseUrl(baseUrl).build();
7070

71-
GenerationConfig generationConfig = GenerationConfig.builder().temperature(0.3).build();
71+
GeminiGenerationConfig generationConfig = GeminiGenerationConfig.builder().temperature(0.3).build();
7272

7373
GeminiClient client = new GeminiClient(account);
7474
GeminiTextResponse chatResponse1 = client.chat("Do you know something about Yao Ming", generationConfig);
@@ -90,7 +90,7 @@ Multimodal (with context)
9090

9191
GeminiAccount account = GeminiAccount.builder().apiKey(apiKey).baseUrl(baseUrl).build();
9292

93-
GenerationConfig generationConfig = GenerationConfig.builder().temperature(0.3).build();
93+
GeminiGenerationConfig generationConfig = GeminiGenerationConfig.builder().temperature(0.3).build();
9494

9595
GeminiClient client = new GeminiClient(GeminiModelEnum.GEMINI_PRO.getName(), account);
9696

README_CN.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public GeminiClient(String modelName, GeminiAccount geminiAccount)
5151

5252
GeminiAccount account = GeminiAccount.builder().apiKey(apiKey).baseUrl(baseUrl).build();
5353

54-
GenerationConfig generationConfig = GenerationConfig.builder().temperature(0.3).build();
54+
GeminiGenerationConfig generationConfig = GeminiGenerationConfig.builder().temperature(0.3).build();
5555

5656
GeminiClient client = new GeminiClient(account);
5757
GeminiTextResponse chatResponse1 = client.chat("Do you know something about Yao Ming", generationConfig);
@@ -68,10 +68,10 @@ public GeminiClient(String modelName, GeminiAccount geminiAccount)
6868

6969
GeminiAccount account = GeminiAccount.builder().apiKey(apiKey).baseUrl(baseUrl).build();
7070

71-
GenerationConfig generationConfig = GenerationConfig.builder().temperature(0.3).build();
71+
GeminiGenerationConfig generationConfig = GeminiGenerationConfig.builder().temperature(0.3).build();
7272

7373
GeminiClient client = new GeminiClient(account);
74-
GeminiTextResponse chatResponse1 = client.chat("Do you know something about Yao Ming", generationConfig);
74+
GeminiTextResponse chatResponse1 = client.chat("Do you know something about Yao Ming", geminiGenerationConfig);
7575
System.out.println(chatResponse1);
7676

7777
GeminiTextResponse chatResponse2 = client.chat("who is his wife");
@@ -90,7 +90,7 @@ public GeminiClient(String modelName, GeminiAccount geminiAccount)
9090

9191
GeminiAccount account = GeminiAccount.builder().apiKey(apiKey).baseUrl(baseUrl).build();
9292

93-
GenerationConfig generationConfig = GenerationConfig.builder().temperature(0.3).build();
93+
GeminiGenerationConfig generationConfig = GeminiGenerationConfig.builder().temperature(0.3).build();
9494

9595
GeminiClient client = new GeminiClient(GeminiModelEnum.GEMINI_PRO.getName(), account);
9696

@@ -110,7 +110,7 @@ public GeminiClient(String modelName, GeminiAccount geminiAccount)
110110
GeminiTextResponse chatResponse1 = client.chat(message, inlineData, generationConfig);
111111
System.out.println(chatResponse1);
112112

113-
GeminiTextResponse chatResponse2 = client.chat("How many flowers are there", generationConfig);
113+
GeminiTextResponse chatResponse2 = client.chat("How many flowers are there", geminiGenerationConfig);
114114
System.out.println(chatResponse2);
115115
}
116116
```

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>org.liurb.ai.sdk</groupId>
88
<artifactId>java-ai-sdk</artifactId>
9-
<version>0.0.2</version>
9+
<version>0.0.3</version>
1010

1111
<name>java-ai-sdk</name>
1212
<description>

src/main/java/org/liurb/ai/sdk/gemini/GeminiClient.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,12 @@ public GeminiTextResponse chat(String message) throws IOException {
6161
return this.chat(message, null, null);
6262
}
6363

64-
public GeminiTextResponse chat(String message, GenerationConfig generationConfig) throws IOException {
64+
public GeminiTextResponse chat(String message, GeminiGenerationConfig geminiGenerationConfig) throws IOException {
6565

66-
return this.chat(message, null, generationConfig);
66+
return this.chat(message, null, geminiGenerationConfig);
6767
}
6868

69-
public GeminiTextResponse chat(String message, MultiPartInlineData inlineData, GenerationConfig generationConfig) throws IOException {
69+
public GeminiTextResponse chat(String message, MultiPartInlineData inlineData, GeminiGenerationConfig geminiGenerationConfig) throws IOException {
7070

7171
if (this.geminiAccount == null || this.geminiAccount.getApiKey() == null || this.geminiAccount.getApiKey().isEmpty()) {
7272
throw new RuntimeException("gemini api key is empty");
@@ -79,8 +79,8 @@ public GeminiTextResponse chat(String message, MultiPartInlineData inlineData, G
7979
//build gemini request body
8080
GeminiTextRequest questParams = this.buildGeminiTextRequest(message, inlineData, this.history);
8181

82-
if (generationConfig != null) {
83-
questParams.setGenerationConfig(generationConfig);
82+
if (geminiGenerationConfig != null) {
83+
questParams.setGeminiGenerationConfig(geminiGenerationConfig);
8484
}
8585

8686
MediaType json = MediaType.parse("application/json; charset=utf-8");
@@ -110,7 +110,7 @@ public GeminiTextResponse chat(String message, MultiPartInlineData inlineData, G
110110
return null;
111111
}
112112

113-
public void stream(String message, MultiPartInlineData inlineData, GenerationConfig generationConfig, GeminiStreamResponseListener responseListener) throws IOException {
113+
public void stream(String message, MultiPartInlineData inlineData, GeminiGenerationConfig geminiGenerationConfig, GeminiStreamResponseListener responseListener) throws IOException {
114114

115115
if (this.geminiAccount == null || this.geminiAccount.getApiKey() == null || this.geminiAccount.getApiKey().isEmpty()) {
116116
throw new RuntimeException("gemini api key is empty");
@@ -123,8 +123,8 @@ public void stream(String message, MultiPartInlineData inlineData, GenerationCon
123123
//build gemini request body
124124
GeminiTextRequest questParams = this.buildGeminiTextRequest(message, inlineData, this.history);
125125

126-
if (generationConfig != null) {
127-
questParams.setGenerationConfig(generationConfig);
126+
if (geminiGenerationConfig != null) {
127+
questParams.setGeminiGenerationConfig(geminiGenerationConfig);
128128
}
129129

130130
MediaType json = MediaType.parse("application/json; charset=utf-8");

src/main/java/org/liurb/ai/sdk/gemini/bean/GenerationConfig.java renamed to src/main/java/org/liurb/ai/sdk/gemini/bean/GeminiGenerationConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
@Builder
99
@Data
10-
public class GenerationConfig {
10+
public class GeminiGenerationConfig {
1111

1212

1313
private List<String> stopSequences;

src/main/java/org/liurb/ai/sdk/gemini/dto/GeminiTextRequest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import lombok.Builder;
44
import lombok.Data;
55
import org.liurb.ai.sdk.gemini.bean.ChatTextMessage;
6-
import org.liurb.ai.sdk.gemini.bean.GenerationConfig;
6+
import org.liurb.ai.sdk.gemini.bean.GeminiGenerationConfig;
77
import org.liurb.ai.sdk.gemini.bean.SafetySetting;
88

99
import java.util.List;
@@ -14,7 +14,7 @@ public class GeminiTextRequest {
1414

1515
private List<ChatTextMessage> contents;
1616

17-
private GenerationConfig generationConfig;
17+
private GeminiGenerationConfig geminiGenerationConfig;
1818

1919
private List<SafetySetting> safetySettings;
2020
}

src/main/java/org/liurb/ai/sdk/openai/OpenAiClient.java

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,23 @@ public OpenAiClient(String modelName, OpenAiAccount openaiAccount, OkHttpClient
5656
this.history = new ArrayList<>();
5757
}
5858

59-
6059
public OpenAiTextResponse chat(String message) throws IOException {
6160

62-
return this.chat(message, null);
61+
return this.chat(message, null, null);
62+
}
63+
64+
public OpenAiTextResponse chat(String message, OpenAiGenerationConfig generationConfig) throws IOException {
65+
66+
return this.chat(message, null, generationConfig);
6367
}
6468

6569
public OpenAiTextResponse chat(String message, MaterialData materialData) throws IOException {
6670

71+
return this.chat(message, materialData, null);
72+
}
73+
74+
public OpenAiTextResponse chat(String message, MaterialData materialData, OpenAiGenerationConfig generationConfig) throws IOException {
75+
6776
if (this.openaiAccount == null || this.openaiAccount.getApiKey() == null || this.openaiAccount.getApiKey().isEmpty()) {
6877
throw new RuntimeException("gemini api key is empty");
6978
}
@@ -72,9 +81,16 @@ public OpenAiTextResponse chat(String message, MaterialData materialData) throws
7281
this.BASE_URL = this.openaiAccount.getBaseUrl();
7382
}
7483

75-
7684
OpenAiTextRequest questParams = this.buildOpenAiTextRequest(message, materialData, history);
7785

86+
if (generationConfig != null) {
87+
questParams.setTemperature(generationConfig.getTemperature());
88+
questParams.setMaxTokens(generationConfig.getMaxTokens());
89+
questParams.setTopP(generationConfig.getTopP());
90+
questParams.setN(generationConfig.getN());
91+
questParams.setStop(generationConfig.getStop());
92+
}
93+
7894
MediaType json = MediaType.parse("application/json; charset=utf-8");
7995
RequestBody requestBody = RequestBody.create(json, JSON.toJSONString(questParams));
8096

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.liurb.ai.sdk.openai.bean;
2+
3+
import com.alibaba.fastjson2.annotation.JSONField;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
7+
@Builder
8+
@Data
9+
public class OpenAiGenerationConfig {
10+
11+
@JSONField(name = "max_tokens")
12+
private Integer maxTokens;
13+
14+
private Integer n;
15+
16+
private String stop;
17+
18+
private Double temperature;
19+
20+
@JSONField(name = "top_p")
21+
private Double topP;
22+
23+
}

src/test/java/org/liurb/ai/sdk/GeminiChatTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
import org.junit.Test;
55
import org.liurb.ai.sdk.gemini.GeminiClient;
6-
import org.liurb.ai.sdk.gemini.bean.GenerationConfig;
6+
import org.liurb.ai.sdk.gemini.bean.GeminiGenerationConfig;
77
import org.liurb.ai.sdk.gemini.bean.MultiPartInlineData;
88
import org.liurb.ai.sdk.gemini.dto.GeminiTextResponse;
99
import org.liurb.ai.sdk.gemini.enums.GeminiModelEnum;
@@ -26,16 +26,16 @@ public void chatTest() throws IOException {
2626

2727
GeminiAccount account = GeminiAccount.builder().apiKey(apiKey).baseUrl(baseUrl).build();
2828

29-
GenerationConfig generationConfig = GenerationConfig.builder().temperature(0.3).build();
29+
GeminiGenerationConfig geminiGenerationConfig = GeminiGenerationConfig.builder().temperature(0.3).build();
3030

3131
GeminiClient client = new GeminiClient(account);
32-
GeminiTextResponse chatResponse1 = client.chat("Do you know something about Yao Ming", generationConfig);
32+
GeminiTextResponse chatResponse1 = client.chat("Do you know something about Yao Ming", geminiGenerationConfig);
3333
System.out.println(chatResponse1);
3434

3535
GeminiTextResponse chatResponse2 = client.chat("who is his wife");
3636
System.out.println(chatResponse2);
3737

38-
GeminiTextResponse chatResponse3 = client.chat("who is his daughter", generationConfig);
38+
GeminiTextResponse chatResponse3 = client.chat("who is his daughter", geminiGenerationConfig);
3939
System.out.println(chatResponse3);
4040
}
4141

@@ -44,7 +44,7 @@ public void chatMultiModalTest() throws IOException {
4444

4545
GeminiAccount account = GeminiAccount.builder().apiKey(apiKey).baseUrl(baseUrl).build();
4646

47-
GenerationConfig generationConfig = GenerationConfig.builder().temperature(0.3).build();
47+
GeminiGenerationConfig geminiGenerationConfig = GeminiGenerationConfig.builder().temperature(0.3).build();
4848

4949
GeminiClient client = new GeminiClient(GeminiModelEnum.GEMINI_PRO.getName(), account);
5050

@@ -61,10 +61,10 @@ public void chatMultiModalTest() throws IOException {
6161

6262
String message = "What is this picture";
6363

64-
GeminiTextResponse chatResponse1 = client.chat(message, inlineData, generationConfig);
64+
GeminiTextResponse chatResponse1 = client.chat(message, inlineData, geminiGenerationConfig);
6565
System.out.println(chatResponse1);
6666

67-
GeminiTextResponse chatResponse2 = client.chat("How many flowers are there", generationConfig);
67+
GeminiTextResponse chatResponse2 = client.chat("How many flowers are there", geminiGenerationConfig);
6868
System.out.println(chatResponse2);
6969
}
7070

src/test/java/org/liurb/ai/sdk/GeminiStreamTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package org.liurb.ai.sdk;
22

33
import org.liurb.ai.sdk.gemini.bean.Content;
4-
import org.liurb.ai.sdk.gemini.bean.GenerationConfig;
4+
import org.liurb.ai.sdk.gemini.bean.GeminiGenerationConfig;
55
import org.liurb.ai.sdk.gemini.GeminiClient;
66
import org.liurb.ai.sdk.gemini.bean.MultiPartInlineData;
77
import org.liurb.ai.sdk.gemini.conf.GeminiAccount;
@@ -19,7 +19,7 @@ public static void main(String[] args) throws IOException, InterruptedException
1919

2020
GeminiAccount account = GeminiAccount.builder().apiKey(apiKey).baseUrl(baseUrl).build();
2121

22-
GenerationConfig generationConfig = GenerationConfig.builder().temperature(0.3).build();
22+
GeminiGenerationConfig geminiGenerationConfig = GeminiGenerationConfig.builder().temperature(0.3).build();
2323

2424
GeminiClient client = new GeminiClient(account);
2525

@@ -53,7 +53,7 @@ public static void main(String[] args) throws IOException, InterruptedException
5353

5454
MultiPartInlineData inlineData = MultiPartInlineData.builder().mimeType("image/jpeg").data(base64).build();
5555

56-
client.stream("What is this picture", inlineData, generationConfig, new GeminiStreamResponseListener() {
56+
client.stream("What is this picture", inlineData, geminiGenerationConfig, new GeminiStreamResponseListener() {
5757

5858
@Override
5959
public void accept(Content content) {

0 commit comments

Comments
 (0)