Skip to content

Commit 8c813f5

Browse files
committed
wip
1 parent 9650d1c commit 8c813f5

File tree

9 files changed

+269
-221
lines changed

9 files changed

+269
-221
lines changed

common/src/test/java/com/box/l10n/mojito/openai/OpenAIClientTest.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,9 @@
1313
import static org.mockito.Mockito.mock;
1414
import static org.mockito.Mockito.when;
1515

16-
import com.box.l10n.mojito.json.ObjectMapper;
1716
import com.box.l10n.mojito.openai.OpenAIClient.ChatCompletionsResponse;
1817
import com.box.l10n.mojito.openai.OpenAIClient.UploadFileRequest;
1918
import com.box.l10n.mojito.openai.OpenAIClient.UploadFileResponse;
20-
import com.fasterxml.jackson.annotation.JsonInclude;
21-
import com.fasterxml.jackson.databind.DeserializationFeature;
22-
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
2319
import java.net.http.HttpClient;
2420
import java.net.http.HttpRequest;
2521
import java.net.http.HttpResponse;

webapp/src/main/java/com/box/l10n/mojito/AsyncConfig.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,15 @@ public AsyncTaskExecutor getPollableTaskExecutor() {
4242

4343
return new DelegatingSecurityContextAsyncTaskExecutor(threadPoolTaskExecutor);
4444
}
45+
46+
@Bean(name = "aiTranslateWSExecutor")
47+
public AsyncTaskExecutor getAiTranslateWSExecutor() {
48+
ThreadPoolTaskExecutor threadPoolTaskExecutor = new ThreadPoolTaskExecutor();
49+
threadPoolTaskExecutor.setBeanName("aiTranslateWSExecutor");
50+
threadPoolTaskExecutor.setCorePoolSize(5);
51+
threadPoolTaskExecutor.setMaxPoolSize(30);
52+
threadPoolTaskExecutor.initialize();
53+
54+
return new DelegatingSecurityContextAsyncTaskExecutor(threadPoolTaskExecutor);
55+
}
4556
}

webapp/src/main/java/com/box/l10n/mojito/rest/textunit/AiReviewConfig.java renamed to webapp/src/main/java/com/box/l10n/mojito/rest/textunit/AiReviewConfigurationProperties.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
@Component
77
@ConfigurationProperties("l10n.ai-review")
8-
public class AiReviewConfig {
8+
public class AiReviewConfigurationProperties {
99
String openaiClientToken;
1010

1111
public String getOpenaiClientToken() {

webapp/src/main/java/com/box/l10n/mojito/rest/textunit/AiReviewWS.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,13 @@ public class AiReviewWS {
2828

2929
TextUnitSearcher textUnitSearcher;
3030

31-
AiReviewConfig aiReviewConfig;
31+
AiReviewConfigurationProperties aiReviewConfigurationProperties;
3232

33-
public AiReviewWS(TextUnitSearcher textUnitSearcher, AiReviewConfig aiReviewConfig) {
33+
public AiReviewWS(
34+
TextUnitSearcher textUnitSearcher,
35+
AiReviewConfigurationProperties aiReviewConfigurationProperties) {
3436
this.textUnitSearcher = textUnitSearcher;
35-
this.aiReviewConfig = aiReviewConfig;
37+
this.aiReviewConfigurationProperties = aiReviewConfigurationProperties;
3638
}
3739

3840
@RequestMapping(method = RequestMethod.GET, value = "/api/proto-ai-review")
@@ -80,7 +82,9 @@ public ProtoAiReviewResponse getTextUnitsWithGet(ProtoAiReviewRequest protoAiRev
8082
logger.info(objectMapper.writeValueAsStringUnchecked(chatCompletionsRequest));
8183

8284
OpenAIClient openAIClient =
83-
OpenAIClient.builder().apiKey(aiReviewConfig.getOpenaiClientToken()).build();
85+
OpenAIClient.builder()
86+
.apiKey(aiReviewConfigurationProperties.getOpenaiClientToken())
87+
.build();
8488

8589
OpenAIClient.ChatCompletionsResponse chatCompletionsResponse =
8690
openAIClient.getChatCompletions(chatCompletionsRequest).join();
Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,33 @@
11
package com.box.l10n.mojito.rest.textunit;
22

3-
import org.springframework.boot.context.properties.ConfigurationProperties;
4-
import org.springframework.stereotype.Component;
3+
import com.box.l10n.mojito.json.ObjectMapper;
4+
import com.box.l10n.mojito.openai.OpenAIClient;
5+
import org.springframework.beans.factory.annotation.Qualifier;
6+
import org.springframework.context.annotation.Bean;
7+
import org.springframework.context.annotation.Configuration;
58

6-
@Component
7-
@ConfigurationProperties("l10n.ai-translate")
9+
@Configuration
810
public class AiTranslateConfig {
9-
String openaiClientToken;
1011

11-
public String getOpenaiClientToken() {
12-
return openaiClientToken;
12+
AiTranslateConfigurationProperties aiTranslateConfigurationProperties;
13+
14+
public AiTranslateConfig(AiTranslateConfigurationProperties aiTranslateConfigurationProperties) {
15+
this.aiTranslateConfigurationProperties = aiTranslateConfigurationProperties;
16+
}
17+
18+
@Bean
19+
@Qualifier("AiTranslateWS")
20+
OpenAIClient openAIClient() {
21+
return new OpenAIClient.Builder()
22+
.apiKey(aiTranslateConfigurationProperties.getOpenaiClientToken())
23+
.build();
1324
}
1425

15-
public void setOpenaiClientToken(String openaiClientToken) {
16-
this.openaiClientToken = openaiClientToken;
26+
@Bean
27+
@Qualifier("AiTranslateWS")
28+
ObjectMapper objectMapper() {
29+
ObjectMapper objectMapper = new ObjectMapper();
30+
AiTranslateWS.configureObjectMapper(objectMapper);
31+
return objectMapper;
1732
}
1833
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.box.l10n.mojito.rest.textunit;
2+
3+
import org.springframework.boot.context.properties.ConfigurationProperties;
4+
import org.springframework.stereotype.Component;
5+
6+
@Component
7+
@ConfigurationProperties("l10n.ai-translate")
8+
public class AiTranslateConfigurationProperties {
9+
String openaiClientToken;
10+
11+
public String getOpenaiClientToken() {
12+
return openaiClientToken;
13+
}
14+
15+
public void setOpenaiClientToken(String openaiClientToken) {
16+
this.openaiClientToken = openaiClientToken;
17+
}
18+
}

0 commit comments

Comments
 (0)