feat: 兼容多平台模型

This commit is contained in:
ageerle
2025-05-09 16:45:41 +08:00
parent 57b2f833f8
commit 1bddf5df3b
8 changed files with 54 additions and 5 deletions

View File

@@ -10,6 +10,8 @@ public class OpenAIConst {
public final static String OPENAI_HOST = "https://api.openai.com/";
public final static String apiUrl = "v1/chat/completions";
public final static int SUCCEED_CODE = 200;
}

View File

@@ -71,6 +71,11 @@ public class OpenAiStreamClient {
*/
private String apiHost;
/**
* 自定义url 兼容多个平台
*/
private String apiUrl;
/**
* 自定义的okHttpClient
* 如果不自定义 就是用sdk默认的OkHttpClient实例
@@ -112,6 +117,11 @@ public class OpenAiStreamClient {
}
apiHost = builder.apiHost;
if (StrUtil.isBlank(builder.apiUrl)) {
builder.apiUrl = OpenAIConst.apiUrl;
}
apiUrl = builder.apiUrl;
if (Objects.isNull(builder.keyStrategy)) {
builder.keyStrategy = new KeyRandomStrategy();
}
@@ -180,7 +190,7 @@ public class OpenAiStreamClient {
ObjectMapper mapper = new ObjectMapper();
String requestBody = mapper.writeValueAsString(chatCompletion);
Request request = new Request.Builder()
.url(this.apiHost + "v1/chat/completions")
.url(this.apiHost + apiUrl)
.post(RequestBody.create(MediaType.parse(ContentType.JSON.getValue()), requestBody))
.build();
factory.newEventSource(request, eventSourceListener);
@@ -611,6 +621,8 @@ public class OpenAiStreamClient {
*/
private String apiHost;
private String apiUrl;
/**
* 自定义OkhttpClient
*/
@@ -645,6 +657,16 @@ public class OpenAiStreamClient {
return this;
}
/**
* @param val 自定义请求后缀
* @return Builder
* @see OpenAIConst
*/
public Builder apiUrl(String val) {
apiUrl = val;
return this;
}
public Builder keyStrategy(KeyStrategyFunction val) {
keyStrategy = val;
return this;