From 3666157d14201d39a0e61588582fee97fac95ad1 Mon Sep 17 00:00:00 2001 From: Albert <janzhou123@users.noreply.github.com> Date: 星期二, 13 五月 2025 09:59:36 +0800 Subject: [PATCH] Merge pull request #1 from ageerle/main --- ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java | 39 ++++++++++++++++++++++++++++++--------- 1 files changed, 30 insertions(+), 9 deletions(-) diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java index ef03cb2..e02dde1 100644 --- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java +++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/openai/OpenAiStreamClient.java @@ -53,7 +53,7 @@ import java.util.concurrent.TimeUnit; /** - * 鎻忚堪锛� open ai 瀹㈡埛绔� + * open ai 瀹㈡埛绔� * * @author https:www.unfbx.com * 2023-02-28 @@ -70,6 +70,11 @@ * 鑷畾涔塧pi host浣跨敤builder鐨勬柟寮忔瀯閫燾lient */ private String apiHost; + + /** + * 鑷畾涔塽rl 鍏煎澶氫釜骞冲彴 + */ + private String apiUrl; /** * 鑷畾涔夌殑okHttpClient @@ -112,6 +117,11 @@ } apiHost = builder.apiHost; + if (StrUtil.isBlank(builder.apiUrl)) { + builder.apiUrl = OpenAIConst.apiUrl; + } + apiUrl = builder.apiUrl; + if (Objects.isNull(builder.keyStrategy)) { builder.keyStrategy = new KeyRandomStrategy(); } @@ -136,12 +146,12 @@ } okHttpClient = builder.okHttpClient; - this.openAiApi = new Retrofit.Builder() - .baseUrl(apiHost) - .client(okHttpClient) - .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) - .addConverterFactory(JacksonConverterFactory.create()) - .build().create(OpenAiApi.class); +// this.openAiApi = new Retrofit.Builder() +// .baseUrl(apiHost) +// .client(okHttpClient) +// .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) +// .addConverterFactory(JacksonConverterFactory.create()) +// .build().create(OpenAiApi.class); } /** @@ -180,7 +190,7 @@ ObjectMapper mapper = new ObjectMapper(); String requestBody = mapper.writeValueAsString(chatCompletion); Request request = new Request.Builder() - .url(this.apiHost + "v1/chat/completions") + .url(this.apiHost) .post(RequestBody.create(MediaType.parse(ContentType.JSON.getValue()), requestBody)) .build(); factory.newEventSource(request, eventSourceListener); @@ -334,7 +344,6 @@ BillingUsage billingUsage = billingUsage(start.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), end.toInstant().atZone(ZoneId.systemDefault()).toLocalDate()); double totalUsage = billingUsage.getTotalUsage().doubleValue() / 100; - System.out.println(totalUsage); Subscription subscription = subscription(); KeyInfo keyInfo = new KeyInfo(); String start_key = key.substring(0, 6); @@ -611,6 +620,8 @@ */ private String apiHost; + private String apiUrl; + /** * 鑷畾涔塐khttpClient */ @@ -645,6 +656,16 @@ 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; -- Gitblit v1.9.3