Skip to content

Commit d9cfe70

Browse files
author
guorutao
committed
feature 1.0.12 tokens计算优化、删除模型接口修改、语音接口更新
1 parent f6626d6 commit d9cfe70

4 files changed

Lines changed: 68 additions & 29 deletions

File tree

src/main/java/com/unfbx/chatgpt/OpenAiClient.java

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -661,12 +661,21 @@ public WhisperResponse speechToTextTranscriptions(java.io.File file, Transcripti
661661
MultipartBody.Part multipartBody = MultipartBody.Part.createFormData("file", file.getName(), fileBody);
662662
//自定义参数
663663
Map<String,RequestBody> requestBodyMap = new HashMap<>();
664-
requestBodyMap.put(Transcriptions.Fields.language, RequestBody.create(MediaType.parse("multipart/form-data"), transcriptions.getLanguage()));
665-
requestBodyMap.put(Transcriptions.Fields.model, RequestBody.create(MediaType.parse("multipart/form-data"), transcriptions.getModel()));
666-
requestBodyMap.put(Transcriptions.Fields.prompt, RequestBody.create(MediaType.parse("multipart/form-data"), transcriptions.getPrompt()));
667-
requestBodyMap.put(Transcriptions.Fields.responseFormat, RequestBody.create(MediaType.parse("multipart/form-data"), transcriptions.getResponseFormat()));
668-
requestBodyMap.put(Transcriptions.Fields.temperature, RequestBody.create(MediaType.parse("multipart/form-data"), String.valueOf(transcriptions.getTemperature())));
669-
664+
if (StrUtil.isNotBlank(transcriptions.getLanguage())) {
665+
requestBodyMap.put(Transcriptions.Fields.language, RequestBody.create(MediaType.parse("multipart/form-data"), transcriptions.getLanguage()));
666+
}
667+
if (StrUtil.isNotBlank(transcriptions.getModel())) {
668+
requestBodyMap.put(Transcriptions.Fields.model, RequestBody.create(MediaType.parse("multipart/form-data"), transcriptions.getModel()));
669+
}
670+
if (StrUtil.isNotBlank(transcriptions.getPrompt())) {
671+
requestBodyMap.put(Transcriptions.Fields.prompt, RequestBody.create(MediaType.parse("multipart/form-data"), transcriptions.getPrompt()));
672+
}
673+
if (StrUtil.isNotBlank(transcriptions.getResponseFormat())) {
674+
requestBodyMap.put(Transcriptions.Fields.responseFormat, RequestBody.create(MediaType.parse("multipart/form-data"), transcriptions.getResponseFormat()));
675+
}
676+
if (Objects.nonNull(transcriptions.getTemperature())) {
677+
requestBodyMap.put(Transcriptions.Fields.temperature, RequestBody.create(MediaType.parse("multipart/form-data"), String.valueOf(transcriptions.getTemperature())));
678+
}
670679
Single<WhisperResponse> whisperResponse = this.openAiApi.speechToTextTranscriptions(multipartBody, requestBodyMap);
671680
return whisperResponse.blockingGet();
672681
}
@@ -697,11 +706,19 @@ public WhisperResponse speechToTextTranslations(java.io.File file, Translations
697706
MultipartBody.Part multipartBody = MultipartBody.Part.createFormData("file", file.getName(), fileBody);
698707
//自定义参数
699708
Map<String,RequestBody> requestBodyMap = new HashMap<>();
700-
requestBodyMap.put(Translations.Fields.model, RequestBody.create(MediaType.parse("multipart/form-data"), translations.getModel()));
701-
requestBodyMap.put(Translations.Fields.prompt, RequestBody.create(MediaType.parse("multipart/form-data"), translations.getPrompt()));
702-
requestBodyMap.put(Translations.Fields.responseFormat, RequestBody.create(MediaType.parse("multipart/form-data"), translations.getResponseFormat()));
703-
requestBodyMap.put(Translations.Fields.temperature, RequestBody.create(MediaType.parse("multipart/form-data"), String.valueOf(translations.getTemperature())));
704709

710+
if (StrUtil.isNotBlank(translations.getModel())) {
711+
requestBodyMap.put(Translations.Fields.model, RequestBody.create(MediaType.parse("multipart/form-data"), translations.getModel()));
712+
}
713+
if (StrUtil.isNotBlank(translations.getPrompt())) {
714+
requestBodyMap.put(Translations.Fields.prompt, RequestBody.create(MediaType.parse("multipart/form-data"), translations.getPrompt()));
715+
}
716+
if (StrUtil.isNotBlank(translations.getResponseFormat())) {
717+
requestBodyMap.put(Translations.Fields.responseFormat, RequestBody.create(MediaType.parse("multipart/form-data"), translations.getResponseFormat()));
718+
}
719+
if (Objects.nonNull(translations.getTemperature())) {
720+
requestBodyMap.put(Translations.Fields.temperature, RequestBody.create(MediaType.parse("multipart/form-data"), String.valueOf(translations.getTemperature())));
721+
}
705722
Single<WhisperResponse> whisperResponse = this.openAiApi.speechToTextTranslations(multipartBody, requestBodyMap);
706723
return whisperResponse.blockingGet();
707724
}

src/main/java/com/unfbx/chatgpt/entity/whisper/Transcriptions.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ public class Transcriptions extends Whisper {
3333
* 默认值:0
3434
*/
3535
@Builder.Default
36-
private double temperature = 0;
36+
private Double temperature = 0d;
3737
/**
3838
* 输入音频的语言,以 ISO-639-1 格式提供输入语言将提高准确性和延迟。
39-
* 参考:<a href=https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes>ISO-639-1</a>
39+
* 参考:<a href=https://baike.baidu.com/item/ISO%20639-1/8292914>ISO-639-1</a>
4040
*/
4141
private String language;
4242

src/test/java/com/unfbx/chatgpt/OpenAiClientTest.java

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -150,19 +150,44 @@ public void creditGrants() {
150150
log.info("账户总使用金额(美元):{}", creditGrantsResponse.getTotalUsed());
151151
log.info("账户总剩余金额(美元):{}", creditGrantsResponse.getTotalAvailable());
152152
}
153+
154+
155+
@Test
156+
public void chat() {
157+
//聊天模型:gpt-3.5
158+
Message message = Message.builder().role(Message.Role.USER).content("你好啊我的伙伴!").build();
159+
ChatCompletion chatCompletion = ChatCompletion
160+
.builder()
161+
.messages(Arrays.asList(message))
162+
.model(ChatCompletion.Model.GPT_3_5_TURBO.getName())
163+
.build();
164+
ChatCompletionResponse chatCompletionResponse = v2.chatCompletion(chatCompletion);
165+
chatCompletionResponse.getChoices().forEach(e -> {
166+
System.out.println(e.getMessage());
167+
});
168+
}
169+
153170
@Test
154171
public void speechToTextTranscriptions() {
155172
Transcriptions transcriptions = Transcriptions.builder()
156173
.model(Whisper.Model.WHISPER_1.getName())
157-
// .prompt("提示语")
158-
// .language("")
174+
.prompt("提示语")
175+
.language("zh")
159176
.temperature(0.2)
160-
.responseFormat(Whisper.ResponseFormat.JSON.getName())
177+
.responseFormat(Whisper.ResponseFormat.VTT.getName())
161178
.build();
162179

163180
//语音转文字
164181
WhisperResponse whisperResponse =
165-
v2.speechToTextTranscriptions(new java.io.File("C:\\Users\\FLJS188\\Desktop\\1.m4a") , transcriptions);
182+
v2.speechToTextTranscriptions(new java.io.File("C:\\Users\\grt\\Desktop\\1.m4a") , transcriptions);
183+
System.out.println(whisperResponse.getText());
184+
}
185+
186+
@Test
187+
public void speechToTextTranscriptionsV2() {
188+
//语音转文字
189+
WhisperResponse whisperResponse =
190+
v2.speechToTextTranscriptions(new java.io.File("C:\\Users\\grt\\Desktop\\1.m4a"));
166191
System.out.println(whisperResponse.getText());
167192
}
168193

@@ -174,22 +199,18 @@ public void speechToTextTranslations() {
174199
.temperature(0.2)
175200
.responseFormat(Whisper.ResponseFormat.JSON.getName())
176201
.build();
177-
//语音转文字
202+
//语音转文字+翻译
178203
WhisperResponse whisperResponse =
179-
v2.speechToTextTranslations(new java.io.File("C:\\Users\\FLJS188\\Desktop\\1.m4a")
180-
, translations);
204+
v2.speechToTextTranslations(new java.io.File("C:\\Users\\**\\Desktop\\1.m4a"), translations);
181205
System.out.println(whisperResponse.getText());
182206
}
183207

184208
@Test
185-
public void chat() {
186-
//聊天模型:gpt-3.5
187-
Message message = Message.builder().role(Message.Role.USER).content("你好啊我的伙伴!").build();
188-
ChatCompletion chatCompletion = ChatCompletion.builder().messages(Arrays.asList(message)).model(ChatCompletion.Model.GPT_4.getName()).build();
189-
ChatCompletionResponse chatCompletionResponse = v2.chatCompletion(chatCompletion);
190-
chatCompletionResponse.getChoices().forEach(e -> {
191-
System.out.println(e.getMessage());
192-
});
209+
public void speechToTextTranslationsV2() {
210+
//语音转文字+翻译
211+
WhisperResponse whisperResponse =
212+
v2.speechToTextTranslations(new java.io.File("C:\\Users\\**\\Desktop\\1.m4a"));
213+
System.out.println(whisperResponse.getText());
193214
}
194215

195216
@Test
@@ -244,7 +265,8 @@ public void completionsV3() {
244265
public void completionsV2() {
245266
Completion q = Completion.builder()
246267
.prompt("三体人是什么?")
247-
.model("ada:ft-org-DL6GzliwY20i7Lxr5pUAoKUH:2023-02-16-05-42-02")
268+
.n(2)
269+
.bestOf(3)
248270
.build();
249271
CompletionResponse completions = v2.completions(q);
250272
System.out.println(completions);

src/test/java/com/unfbx/chatgpt/OpenAiStreamClientTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public void chatCompletions() {
9191
.builder()
9292
.model(ChatCompletion.Model.GPT_3_5_TURBO.getName())
9393
.temperature(0.2)
94-
.maxTokens(4000)
94+
.maxTokens(2048)
9595
.messages(Arrays.asList(message))
9696
.stream(true)
9797
.build();

0 commit comments

Comments
 (0)