Skip to content

Commit 8c705c3

Browse files
committed
refact
1 parent 611cc70 commit 8c705c3

File tree

6 files changed

+133
-506
lines changed

6 files changed

+133
-506
lines changed

src/main/java/com/plexpt/chatgpt/Audio.java

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

src/main/java/com/plexpt/chatgpt/ChatGPT.java

Lines changed: 100 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,42 @@
11
package com.plexpt.chatgpt;
22

3-
import com.plexpt.chatgpt.util.fastjson.JSON;
3+
import cn.hutool.core.date.DateTime;
4+
import cn.hutool.core.date.DateUtil;
5+
import cn.hutool.core.util.RandomUtil;
6+
import cn.hutool.http.ContentType;
7+
import cn.hutool.http.Header;
48
import com.plexpt.chatgpt.api.Api;
59
import com.plexpt.chatgpt.entity.BaseResponse;
10+
import com.plexpt.chatgpt.entity.audio.AudioResponse;
11+
import com.plexpt.chatgpt.entity.audio.Transcriptions;
612
import com.plexpt.chatgpt.entity.billing.CreditGrantsResponse;
713
import com.plexpt.chatgpt.entity.billing.SubscriptionData;
814
import com.plexpt.chatgpt.entity.billing.UseageResponse;
915
import com.plexpt.chatgpt.entity.chat.ChatCompletion;
1016
import com.plexpt.chatgpt.entity.chat.ChatCompletionResponse;
1117
import com.plexpt.chatgpt.entity.chat.Message;
18+
import com.plexpt.chatgpt.entity.embedding.EmbeddingRequest;
19+
import com.plexpt.chatgpt.entity.embedding.EmbeddingResult;
20+
import com.plexpt.chatgpt.entity.images.Edits;
21+
import com.plexpt.chatgpt.entity.images.Generations;
22+
import com.plexpt.chatgpt.entity.images.ImagesRensponse;
23+
import com.plexpt.chatgpt.entity.images.Variations;
1224
import com.plexpt.chatgpt.exception.ChatException;
13-
14-
import java.math.BigDecimal;
15-
import java.net.Proxy;
16-
import java.text.SimpleDateFormat;
17-
import java.util.Arrays;
18-
import java.util.Date;
19-
import java.util.List;
20-
import java.util.Locale;
21-
import java.util.Objects;
22-
import java.util.concurrent.TimeUnit;
23-
24-
import cn.hutool.core.date.DateTime;
25-
import cn.hutool.core.date.DateUtil;
26-
import cn.hutool.core.util.RandomUtil;
27-
import cn.hutool.http.ContentType;
28-
import cn.hutool.http.Header;
25+
import com.plexpt.chatgpt.util.fastjson.JSON;
2926
import io.reactivex.Single;
30-
import lombok.AllArgsConstructor;
31-
import lombok.Builder;
32-
import lombok.Getter;
33-
import lombok.NoArgsConstructor;
34-
import lombok.Setter;
27+
import lombok.*;
3528
import lombok.extern.slf4j.Slf4j;
36-
import okhttp3.OkHttpClient;
37-
import okhttp3.Request;
38-
import okhttp3.Response;
29+
import okhttp3.*;
3930
import retrofit2.Retrofit;
4031
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
4132
import retrofit2.converter.jackson.JacksonConverterFactory;
4233

34+
import java.io.File;
35+
import java.math.BigDecimal;
36+
import java.net.Proxy;
37+
import java.util.*;
38+
import java.util.concurrent.TimeUnit;
39+
4340
import static com.plexpt.chatgpt.util.FormatDateUtil.formatDate;
4441

4542

@@ -122,9 +119,7 @@ public ChatGPT init() {
122119
if (Objects.nonNull(proxy)) {
123120
client.proxy(proxy);
124121
}
125-
OkHttpClient httpClient = client.build();
126-
this.okHttpClient = httpClient;
127-
122+
this.okHttpClient = client.build();
128123

129124
this.apiClient = new Retrofit.Builder()
130125
.baseUrl(this.apiHost)
@@ -153,7 +148,7 @@ public ChatCompletionResponse chatCompletion(ChatCompletion chatCompletion) {
153148
/**
154149
* 支持多个问答参数来与服务端进行对话
155150
*
156-
* @param messages 问答参数,即咨询的内容
151+
* @param messages 问答参数,即咨询的内容
157152
* @return 服务端的问答响应
158153
*/
159154
public ChatCompletionResponse chatCompletion(List<Message> messages) {
@@ -163,6 +158,7 @@ public ChatCompletionResponse chatCompletion(List<Message> messages) {
163158

164159
/**
165160
* 与服务端进行对话
161+
*
166162
* @param message 问答参数,即咨询的内容
167163
* @return 服务端的问答响应
168164
*/
@@ -174,22 +170,79 @@ public String chat(String message) {
174170
return response.getChoices().get(0).getMessage().getContent();
175171
}
176172

173+
177174
/**
178-
* 余额查询
179-
*
180-
* @return 余额总金额及明细
175+
* 生成向量
181176
*/
182-
public CreditGrantsResponse creditGrants() {
183-
Single<CreditGrantsResponse> creditGrants = this.apiClient.creditGrants();
184-
return creditGrants.blockingGet();
177+
public EmbeddingResult createEmbeddings(EmbeddingRequest request) {
178+
Single<EmbeddingResult> embeddingResultSingle = this.apiClient.createEmbeddings(request);
179+
return embeddingResultSingle.blockingGet();
185180
}
186181

187182

183+
/**
184+
* 生成向量
185+
*/
186+
public EmbeddingResult createEmbeddings(String input, String user) {
187+
EmbeddingRequest request = EmbeddingRequest.builder()
188+
.input(Collections.singletonList(input))
189+
.model(EmbeddingRequest.EmbeddingModelEnum.TEXT_EMBEDDING_ADA_002.getModelName())
190+
.user(user)
191+
.build();
192+
Single<EmbeddingResult> embeddingResultSingle = this.apiClient.createEmbeddings(request);
193+
return embeddingResultSingle.blockingGet();
194+
}
195+
196+
197+
public ImagesRensponse imageGeneration(Generations generations) {
198+
Single<ImagesRensponse> imagesRensponse =
199+
this.apiClient.imageGenerations(generations);
200+
return imagesRensponse.blockingGet();
201+
}
202+
203+
public ImagesRensponse imageEdit(File image, File mask, Edits edits) {
204+
RequestBody i = RequestBody.create(MediaType.parse("multipart/form-data;charset=UTF-8"), image);
205+
MultipartBody.Part iPart = MultipartBody.Part.createFormData("image", image.getName(), i);
206+
207+
RequestBody m = RequestBody.create(MediaType.parse("multipart/form-data;charset=UTF-8"), mask);
208+
MultipartBody.Part mPart = MultipartBody.Part.createFormData("mask", mask.getName(), m);
209+
210+
Single<ImagesRensponse> imagesRensponse =
211+
this.apiClient.imageEdits(iPart, mPart, edits);
212+
return imagesRensponse.blockingGet();
213+
}
214+
215+
public ImagesRensponse imageVariation(File image, Variations variations) {
216+
RequestBody i = RequestBody.create(MediaType.parse("multipart/form-data;charset=UTF-8"), image);
217+
MultipartBody.Part iPart = MultipartBody.Part.createFormData("image", image.getName(), i);
218+
Single<ImagesRensponse> imagesRensponse =
219+
this.apiClient.imageVariations(iPart, variations);
220+
return imagesRensponse.blockingGet();
221+
}
222+
223+
224+
public AudioResponse audioTranscription(File audio, Transcriptions transcriptions) {
225+
RequestBody a = RequestBody.create(MediaType.parse("multipart/form-data;charset=UTF-8"), audio);
226+
MultipartBody.Part aPart = MultipartBody.Part.createFormData("image", audio.getName(), a);
227+
Single<AudioResponse> audioResponse =
228+
this.apiClient.audioTranscriptions(aPart, transcriptions);
229+
return audioResponse.blockingGet();
230+
}
231+
232+
public AudioResponse audioTranslation(File audio, Transcriptions transcriptions) {
233+
RequestBody a = RequestBody.create(MediaType.parse("multipart/form-data;charset=UTF-8"), audio);
234+
MultipartBody.Part aPart = MultipartBody.Part.createFormData("image", audio.getName(), a);
235+
Single<AudioResponse> audioResponse =
236+
this.apiClient.audioTranslations(aPart, transcriptions);
237+
return audioResponse.blockingGet();
238+
}
239+
188240
/**
189241
* 余额查询
190242
*
191243
* @return 余额总金额
192244
*/
245+
@Deprecated
193246
public BigDecimal balance() {
194247
Single<SubscriptionData> subscription = apiClient.subscription();
195248
SubscriptionData subscriptionData = subscription.blockingGet();
@@ -209,6 +262,7 @@ public BigDecimal balance() {
209262
*
210263
* @return 余额总金额
211264
*/
265+
@Deprecated
212266
public static BigDecimal balance(String key) {
213267
ChatGPT chatGPT = ChatGPT.builder()
214268
.apiKey(key)
@@ -217,4 +271,15 @@ public static BigDecimal balance(String key) {
217271

218272
return chatGPT.balance();
219273
}
274+
275+
/**
276+
* 余额查询
277+
*
278+
* @return 余额总金额及明细
279+
*/
280+
@Deprecated
281+
public CreditGrantsResponse creditGrants() {
282+
Single<CreditGrantsResponse> creditGrants = this.apiClient.creditGrants();
283+
return creditGrants.blockingGet();
284+
}
220285
}

0 commit comments

Comments
 (0)