Skip to content

Commit 13ad821

Browse files
committed
[Google] [Gemini] Support chat
1 parent e359d1d commit 13ad821

File tree

64 files changed

+886
-47
lines changed

Some content is hidden

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

64 files changed

+886
-47
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,3 +6,5 @@ pom.xml.versionsBackup
66

77
BaseTest.java
88
site/
9+
10+
application.properties

src/main/java/org/devlive/sdk/openai/DefaultApi.java renamed to src/main/java/org/devlive/sdk/common/DefaultApi.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.devlive.sdk.openai;
1+
package org.devlive.sdk.common;
22

33
import io.reactivex.Single;
44
import okhttp3.MultipartBody;

src/main/java/org/devlive/sdk/openai/DefaultClient.java renamed to src/main/java/org/devlive/sdk/common/DefaultClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.devlive.sdk.openai;
1+
package org.devlive.sdk.common;
22

33
import com.fasterxml.jackson.databind.ObjectMapper;
44
import com.google.common.collect.Lists;
@@ -12,6 +12,7 @@
1212
import okhttp3.sse.EventSourceListener;
1313
import okhttp3.sse.EventSources;
1414
import org.apache.commons.lang3.ObjectUtils;
15+
import org.devlive.sdk.common.exception.RequestException;
1516
import org.devlive.sdk.openai.entity.AudioEntity;
1617
import org.devlive.sdk.openai.entity.ChatEntity;
1718
import org.devlive.sdk.openai.entity.CompletionEntity;
@@ -28,7 +29,6 @@
2829
import org.devlive.sdk.openai.entity.beta.QueryEntity;
2930
import org.devlive.sdk.openai.entity.beta.ThreadEntity;
3031
import org.devlive.sdk.openai.entity.google.MessageEntity;
31-
import org.devlive.sdk.openai.exception.RequestException;
3232
import org.devlive.sdk.openai.mixin.IgnoreUnknownMixin;
3333
import org.devlive.sdk.openai.model.ProviderModel;
3434
import org.devlive.sdk.openai.model.UrlModel;

src/main/java/org/devlive/sdk/openai/exception/AuthorizedException.java renamed to src/main/java/org/devlive/sdk/common/exception/AuthorizedException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.devlive.sdk.openai.exception;
1+
package org.devlive.sdk.common.exception;
22

33
public class AuthorizedException
44
extends DefaultException

src/main/java/org/devlive/sdk/openai/exception/DefaultException.java renamed to src/main/java/org/devlive/sdk/common/exception/DefaultException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.devlive.sdk.openai.exception;
1+
package org.devlive.sdk.common.exception;
22

33
import lombok.Getter;
44

src/main/java/org/devlive/sdk/openai/exception/ParamException.java renamed to src/main/java/org/devlive/sdk/common/exception/ParamException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.devlive.sdk.openai.exception;
1+
package org.devlive.sdk.common.exception;
22

33
public class ParamException
44
extends DefaultException

src/main/java/org/devlive/sdk/openai/exception/RequestException.java renamed to src/main/java/org/devlive/sdk/common/exception/RequestException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.devlive.sdk.openai.exception;
1+
package org.devlive.sdk.common.exception;
22

33
public class RequestException
44
extends DefaultException

src/main/java/org/devlive/sdk/openai/interceptor/DefaultInterceptor.java renamed to src/main/java/org/devlive/sdk/common/interceptor/DefaultInterceptor.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.devlive.sdk.openai.interceptor;
1+
package org.devlive.sdk.common.interceptor;
22

33
import com.google.common.base.Preconditions;
44
import lombok.Getter;
@@ -11,8 +11,8 @@
1111
import okhttp3.ResponseBody;
1212
import okio.Buffer;
1313
import org.apache.commons.lang3.ObjectUtils;
14-
import org.devlive.sdk.openai.exception.AuthorizedException;
15-
import org.devlive.sdk.openai.exception.RequestException;
14+
import org.devlive.sdk.common.exception.AuthorizedException;
15+
import org.devlive.sdk.common.exception.RequestException;
1616
import org.devlive.sdk.openai.response.DefaultResponse;
1717
import org.devlive.sdk.openai.utils.JsonUtils;
1818

@@ -44,7 +44,7 @@ public Response intercept(Chain chain)
4444
if (ObjectUtils.isNotEmpty(requestBody)) {
4545
Buffer buffer = new Buffer();
4646
requestBody.writeTo(buffer);
47-
log.debug("Request body {}", buffer.readUtf8());
47+
log.info("Request body {}", buffer.readUtf8());
4848
}
4949

5050
Response response = chain.proceed(request);

src/main/java/org/devlive/sdk/openai/utils/HttpUrlUtils.java renamed to src/main/java/org/devlive/sdk/common/utils/HttpUrlUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.devlive.sdk.openai.utils;
1+
package org.devlive.sdk.common.utils;
22

33
import okhttp3.HttpUrl;
44

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package org.devlive.sdk.common.utils;
2+
3+
import org.apache.commons.lang3.StringUtils;
4+
import org.devlive.sdk.common.exception.ParamException;
5+
6+
public class ValidateUtils
7+
{
8+
private ValidateUtils()
9+
{
10+
}
11+
12+
/**
13+
* Validate host
14+
*
15+
* @param host Original host
16+
* @param defaultHost Default host
17+
* @return host
18+
*/
19+
public static String validateHost(String host, String defaultHost)
20+
{
21+
if (StringUtils.isEmpty(host)) {
22+
return defaultHost;
23+
}
24+
else {
25+
boolean flag = host.startsWith("http") || host.startsWith("https");
26+
if (!flag) {
27+
throw new ParamException(String.format("Invalid apiHost <%s> must start with http or https", host));
28+
}
29+
}
30+
return host;
31+
}
32+
}

src/main/java/org/devlive/sdk/openai/OpenAiClient.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@
88
import okhttp3.sse.EventSourceListener;
99
import org.apache.commons.lang3.ObjectUtils;
1010
import org.apache.commons.lang3.StringUtils;
11-
import org.devlive.sdk.openai.exception.ParamException;
11+
import org.devlive.sdk.common.DefaultApi;
12+
import org.devlive.sdk.common.DefaultClient;
13+
import org.devlive.sdk.common.exception.ParamException;
14+
import org.devlive.sdk.common.interceptor.DefaultInterceptor;
1215
import org.devlive.sdk.openai.interceptor.AzureInterceptor;
1316
import org.devlive.sdk.openai.interceptor.ClaudeInterceptor;
14-
import org.devlive.sdk.openai.interceptor.DefaultInterceptor;
1517
import org.devlive.sdk.openai.interceptor.GooglePaLMInterceptor;
1618
import org.devlive.sdk.openai.interceptor.OpenAiInterceptor;
1719
import org.devlive.sdk.openai.model.CompletionModel;

src/main/java/org/devlive/sdk/openai/entity/AudioEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.apache.commons.lang3.EnumUtils;
1313
import org.apache.commons.lang3.ObjectUtils;
1414
import org.apache.commons.lang3.StringUtils;
15-
import org.devlive.sdk.openai.exception.ParamException;
15+
import org.devlive.sdk.common.exception.ParamException;
1616
import org.devlive.sdk.openai.model.AudioFormatModel;
1717
import org.devlive.sdk.openai.model.AudioModel;
1818
import org.devlive.sdk.openai.utils.FileUtils;

src/main/java/org/devlive/sdk/openai/entity/ChatEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import lombok.NoArgsConstructor;
99
import lombok.ToString;
1010
import org.apache.commons.lang3.ObjectUtils;
11-
import org.devlive.sdk.openai.exception.ParamException;
11+
import org.devlive.sdk.common.exception.ParamException;
1212
import org.devlive.sdk.openai.model.CompletionModel;
1313
import org.devlive.sdk.openai.utils.EnumsUtils;
1414

src/main/java/org/devlive/sdk/openai/entity/CompletionEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import lombok.ToString;
1010
import org.apache.commons.lang3.ObjectUtils;
1111
import org.apache.commons.lang3.StringUtils;
12-
import org.devlive.sdk.openai.exception.ParamException;
12+
import org.devlive.sdk.common.exception.ParamException;
1313
import org.devlive.sdk.openai.model.CompletionModel;
1414
import org.devlive.sdk.openai.utils.EnumsUtils;
1515

src/main/java/org/devlive/sdk/openai/entity/EditEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import lombok.ToString;
1010
import org.apache.commons.lang3.ObjectUtils;
1111
import org.apache.commons.lang3.StringUtils;
12-
import org.devlive.sdk.openai.exception.ParamException;
12+
import org.devlive.sdk.common.exception.ParamException;
1313
import org.devlive.sdk.openai.model.EditModel;
1414

1515
import java.util.Arrays;

src/main/java/org/devlive/sdk/openai/entity/EmbeddingEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import lombok.NoArgsConstructor;
99
import lombok.ToString;
1010
import org.apache.commons.lang3.StringUtils;
11-
import org.devlive.sdk.openai.exception.ParamException;
11+
import org.devlive.sdk.common.exception.ParamException;
1212

1313
import java.util.List;
1414

src/main/java/org/devlive/sdk/openai/entity/FileEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import lombok.ToString;
1212
import okhttp3.RequestBody;
1313
import org.apache.commons.lang3.ObjectUtils;
14-
import org.devlive.sdk.openai.exception.ParamException;
14+
import org.devlive.sdk.common.exception.ParamException;
1515
import org.devlive.sdk.openai.model.PurposeModel;
1616
import org.devlive.sdk.openai.utils.MultipartBodyUtils;
1717

src/main/java/org/devlive/sdk/openai/entity/FineTuningEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import lombok.Data;
99
import lombok.NoArgsConstructor;
1010
import lombok.ToString;
11-
import org.devlive.sdk.openai.exception.ParamException;
11+
import org.devlive.sdk.common.exception.ParamException;
1212
import org.devlive.sdk.openai.model.CompletionModel;
1313

1414
@Data

src/main/java/org/devlive/sdk/openai/entity/ImageEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
import org.apache.commons.lang3.EnumUtils;
1313
import org.apache.commons.lang3.ObjectUtils;
1414
import org.apache.commons.lang3.StringUtils;
15-
import org.devlive.sdk.openai.exception.ParamException;
15+
import org.devlive.sdk.common.exception.ParamException;
1616
import org.devlive.sdk.openai.model.ImageFormatModel;
1717
import org.devlive.sdk.openai.model.ImageSizeModel;
1818
import org.devlive.sdk.openai.utils.MultipartBodyUtils;

src/main/java/org/devlive/sdk/openai/entity/MessageEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import lombok.ToString;
1010
import org.apache.commons.lang3.ObjectUtils;
1111
import org.apache.commons.lang3.StringUtils;
12-
import org.devlive.sdk.openai.exception.ParamException;
12+
import org.devlive.sdk.common.exception.ParamException;
1313
import org.devlive.sdk.openai.model.MessageModel;
1414
import org.devlive.sdk.openai.utils.EnumsUtils;
1515

src/main/java/org/devlive/sdk/openai/entity/ModerationEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import lombok.ToString;
1010
import org.apache.commons.lang3.ObjectUtils;
1111
import org.apache.commons.lang3.StringUtils;
12-
import org.devlive.sdk.openai.exception.ParamException;
12+
import org.devlive.sdk.common.exception.ParamException;
1313
import org.devlive.sdk.openai.model.ModerationModel;
1414

1515
import java.util.List;

src/main/java/org/devlive/sdk/openai/entity/beta/AssistantsEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import lombok.Data;
99
import lombok.NoArgsConstructor;
1010
import lombok.ToString;
11-
import org.devlive.sdk.openai.exception.ParamException;
11+
import org.devlive.sdk.common.exception.ParamException;
1212
import org.devlive.sdk.openai.model.CompletionModel;
1313

1414
import java.util.Map;

src/main/java/org/devlive/sdk/openai/interceptor/AzureInterceptor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
import okhttp3.HttpUrl;
55
import okhttp3.Request;
66
import org.apache.commons.lang3.StringUtils;
7-
import org.devlive.sdk.openai.exception.ParamException;
7+
import org.devlive.sdk.common.exception.ParamException;
8+
import org.devlive.sdk.common.interceptor.DefaultInterceptor;
89

910
import java.util.List;
1011

src/main/java/org/devlive/sdk/openai/interceptor/ClaudeInterceptor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import lombok.extern.slf4j.Slf4j;
44
import okhttp3.Request;
55
import org.apache.commons.lang3.StringUtils;
6-
import org.devlive.sdk.openai.exception.ParamException;
6+
import org.devlive.sdk.common.exception.ParamException;
7+
import org.devlive.sdk.common.interceptor.DefaultInterceptor;
78

89
@Slf4j
910
public class ClaudeInterceptor

src/main/java/org/devlive/sdk/openai/interceptor/GooglePaLMInterceptor.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,18 @@
55
import okhttp3.HttpUrl;
66
import okhttp3.Request;
77
import org.apache.commons.lang3.StringUtils;
8-
import org.devlive.sdk.openai.exception.ParamException;
8+
import org.devlive.sdk.common.exception.ParamException;
9+
import org.devlive.sdk.common.interceptor.DefaultInterceptor;
910
import org.devlive.sdk.openai.model.CompletionModel;
1011
import org.devlive.sdk.openai.utils.EnumsUtils;
11-
import org.devlive.sdk.openai.utils.HttpUrlUtils;
12+
import org.devlive.sdk.common.utils.HttpUrlUtils;
1213

1314
import java.util.List;
1415

16+
/**
17+
* Officially obsolete and not recommended for use
18+
*/
19+
@Deprecated
1520
@Slf4j
1621
public class GooglePaLMInterceptor
1722
extends DefaultInterceptor

src/main/java/org/devlive/sdk/openai/interceptor/OpenAiInterceptor.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
import lombok.extern.slf4j.Slf4j;
44
import okhttp3.Request;
55
import org.apache.commons.lang3.StringUtils;
6-
import org.devlive.sdk.openai.exception.ParamException;
6+
import org.devlive.sdk.common.exception.ParamException;
7+
import org.devlive.sdk.common.interceptor.DefaultInterceptor;
78

89
@Slf4j
910
public class OpenAiInterceptor

src/main/java/org/devlive/sdk/openai/listener/HttpServletEventSourceListener.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import okhttp3.sse.EventSource;
1010
import okhttp3.sse.EventSourceListener;
1111
import org.apache.commons.lang3.ObjectUtils;
12-
import org.devlive.sdk.openai.exception.ParamException;
12+
import org.devlive.sdk.common.exception.ParamException;
1313
import org.devlive.sdk.openai.response.CompleteResponse;
1414
import org.devlive.sdk.openai.utils.JsonUtils;
1515

src/main/java/org/devlive/sdk/openai/model/ProviderModel.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,7 @@ public enum ProviderModel
2121
* Google PaLM
2222
* https://makersuite.google.com
2323
*/
24-
GOOGLE_PALM
24+
@Deprecated
25+
GOOGLE_PALM,
26+
GOOGLE_GEMINI
2527
}

src/main/java/org/devlive/sdk/openai/utils/ProviderUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.devlive.sdk.openai.utils;
22

3-
import org.devlive.sdk.openai.exception.RequestException;
3+
import org.devlive.sdk.common.exception.RequestException;
44
import org.devlive.sdk.openai.model.ProviderModel;
55
import org.devlive.sdk.openai.model.UrlModel;
66

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.devlive.sdk.platform.google;
2+
3+
import io.reactivex.Single;
4+
import org.devlive.sdk.common.DefaultApi;
5+
import org.devlive.sdk.platform.google.entity.ChatEntity;
6+
import org.devlive.sdk.platform.google.response.ChatResponse;
7+
import retrofit2.http.Body;
8+
import retrofit2.http.POST;
9+
import retrofit2.http.Url;
10+
11+
public interface GoogleApi
12+
extends DefaultApi
13+
{
14+
@POST
15+
Single<ChatResponse> fetchChatCompletions(@Url String url,
16+
@Body ChatEntity configure);
17+
}

0 commit comments

Comments
 (0)