Skip to content

Commit 945a851

Browse files
authored
Merge pull request #19 from oracle-devrel/fix-summarization
Fix summarization
2 parents 7bc583d + 82d2136 commit 945a851

28 files changed

+354
-291
lines changed

K8S.md

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ npx zx scripts/kustom.mjs
115115
### Kubernetes Deployment
116116

117117
```bash
118-
export KUBECONFIG="deploy/terraform/generated/kubeconfig"
118+
export KUBECONFIG="$(pwd)/deploy/terraform/generated/kubeconfig"
119119
```
120120

121121
```bash
@@ -129,28 +129,39 @@ kubectl apply -k deploy/k8s/overlays/prod
129129
Run `get deploy` a few times:
130130

131131
```bash
132-
kubectl get deploy
132+
kubectl get deploy -n backend
133133
```
134134

135135
Wait for all deployments to be `Ready` and `Available`.
136136

137137
```
138-
NAME READY UP-TO-DATE AVAILABLE AGE
139-
backend 1/1 1 1 3m28s
140-
web 1/1 1 1 3m21s
138+
NAME READY UP-TO-DATE AVAILABLE AGE
139+
backend 1/1 1 1 3m28s
140+
ingress-nginx-controller 1/1 1 1 3m17s
141+
web 1/1 1 1 3m21s
141142
```
142143

143144
Access your application:
144145

145146
```bash
146147
echo $(kubectl get service \
147-
-n ingress-nginx \
148+
-n backend \
148149
-o jsonpath='{.items[?(@.spec.type=="LoadBalancer")].status.loadBalancer.ingress[0].ip}')
149150
```
150151

151-
> This command will list the services on the `ingress-nginx` namespace and filter for the Load Balancer. If the response is an empty string, wait a bit and execute the command again. The Load Balancer takes a bit of time to create the Public IP address.
152+
> This command will list the Load Balancer services on the `backend` namespace. If the response is an empty string, wait a bit and execute the command again. The Load Balancer takes a bit of time to create the Public IP address.
152153
153-
Take the Public IP to your browser.
154+
Paste the Public IP address on your browser and test your new Generative AI website deployed in Kubernetes.
155+
156+
Remember to visit SQL Developer Web on the OCI Console for your Oracle Database and run some queries to investigate the historical of prompts.
157+
158+
```sql
159+
SELECT * FROM interactions;
160+
```
161+
162+
```bash
163+
cd ../..
164+
```
154165

155166
## Clean up
156167

backend/build.gradle

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

77
group = 'dev.victormartin.oci.genai.backend'
8-
version = '0.0.3'
8+
version = '0.0.5'
99

1010
java {
1111
sourceCompatibility = '17'

backend/src/main/java/dev/victormartin/oci/genai/backend/backend/config/ClientConfigurationBean.java

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

backend/src/main/java/dev/victormartin/oci/genai/backend/backend/config/GenerativeAiClientConfig.java

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

backend/src/main/java/dev/victormartin/oci/genai/backend/backend/config/GenerativeAiInferenceClientConfig.java

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

backend/src/main/java/dev/victormartin/oci/genai/backend/backend/controller/GenAIController.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.oracle.bmc.generativeai.requests.ListModelsRequest;
66
import com.oracle.bmc.generativeai.responses.ListModelsResponse;
77
import dev.victormartin.oci.genai.backend.backend.dao.GenAiModel;
8+
import dev.victormartin.oci.genai.backend.backend.service.GenerativeAiClientService;
89
import org.slf4j.Logger;
910
import org.slf4j.LoggerFactory;
1011
import org.springframework.beans.factory.annotation.Autowired;
@@ -23,17 +24,14 @@ public class GenAIController {
2324
private String COMPARTMENT_ID;
2425

2526
@Autowired
26-
private GenerativeAiClient generativeAiClient;
27-
28-
// repository
29-
30-
// constructor
27+
private GenerativeAiClientService generativeAiClientService;
3128

3229
@GetMapping("/api/genai/models")
3330
public List<GenAiModel> getModels() {
3431
logger.info("getModels()");
3532
ListModelsRequest listModelsRequest = ListModelsRequest.builder().compartmentId(COMPARTMENT_ID).build();
36-
ListModelsResponse response = generativeAiClient.listModels(listModelsRequest);
33+
GenerativeAiClient client = generativeAiClientService.getClient();
34+
ListModelsResponse response = client.listModels(listModelsRequest);
3735
return response.getModelCollection().getItems().stream().map(m -> {
3836
List<String> capabilities = m.getCapabilities().stream().map(ModelCapability::getValue).collect(Collectors.toList());
3937
GenAiModel model = new GenAiModel(m.getId(),m.getDisplayName(), m.getVendor(), m.getVersion(),

backend/src/main/java/dev/victormartin/oci/genai/backend/backend/controller/PDFConvertorController.java

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package dev.victormartin.oci.genai.backend.backend.controller;
22

33

4+
import com.oracle.bmc.model.BmcException;
5+
import dev.victormartin.oci.genai.backend.backend.dao.Answer;
46
import dev.victormartin.oci.genai.backend.backend.service.OCIGenAIService;
57
import dev.victormartin.oci.genai.backend.backend.service.PDFConvertorService;
68
import org.slf4j.Logger;
@@ -32,11 +34,8 @@ public class PDFConvertorController {
3234
@Autowired
3335
PDFConvertorService pdfConvertorService;
3436

35-
@Autowired
36-
SummaryController summaryController;
37-
3837
@PostMapping("/api/upload")
39-
public String fileUploading(@RequestParam("file") MultipartFile multipartFile) {
38+
public Answer fileUploading(@RequestParam("file") MultipartFile multipartFile) {
4039
String filename = StringUtils.cleanPath(multipartFile.getOriginalFilename());
4140
log.info("File uploaded {} {} bytes ({})", filename, multipartFile.getSize(), multipartFile.getContentType());
4241
try {
@@ -53,14 +52,27 @@ public String fileUploading(@RequestParam("file") MultipartFile multipartFile) {
5352
String convertedText = pdfConvertorService.convert(file.getAbsolutePath());
5453
String summaryText = ociGenAIService.summaryText(convertedText, summarizationModelId);
5554
log.info("Summary text: {}(...)", summaryText.substring(0, 40));
56-
summaryController.handleSummary(summaryText);
57-
return summaryText;
55+
Answer answer = new Answer(summaryText, "");
56+
return answer;
5857
} catch (MaxUploadSizeExceededException maxUploadSizeExceededException) {
5958
log.error(maxUploadSizeExceededException.getMessage());
6059
throw new RuntimeException(maxUploadSizeExceededException);
60+
} catch (BmcException exception) {
61+
log.error("Message: {}", exception.getMessage());
62+
log.error("Original Message: {}", exception.getOriginalMessage());
63+
log.error("Unmodified Message: {}", exception.getUnmodifiedMessage());
64+
log.error("Service Details: {}", exception.getServiceDetails());
65+
log.error("Status Code: {}", exception.getStatusCode());
66+
String unmodifiedMessage = exception.getUnmodifiedMessage();
67+
int statusCode = exception.getStatusCode();
68+
String errorMessage = statusCode + " " + unmodifiedMessage;
69+
log.error(errorMessage);
70+
Answer answer = new Answer("", errorMessage);
71+
return answer;
6172
} catch (Exception e) {
6273
log.error(e.getMessage());
63-
throw new RuntimeException(e);
74+
Answer answer = new Answer("", e.getMessage());
75+
return answer;
6476
}
6577
}
6678
}

backend/src/main/java/dev/victormartin/oci/genai/backend/backend/controller/PromptController.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ public class PromptController {
2626
@Value("${genai.chat_model_id}")
2727
private String hardcodedChatModelId;
2828

29-
@Value("${genai.summarization_model_id}")
30-
private String hardcodedSummarizationModelId;
31-
3229
@Autowired
3330
private final InteractionRepository interactionRepository;
3431

@@ -53,19 +50,23 @@ public Answer handlePrompt(Prompt prompt) {
5350
interaction.setRequest(promptEscaped);
5451
Interaction saved = interactionRepository.save(interaction);
5552
try {
56-
if (prompt.content() == null || prompt.content().length() < 1) {
53+
if (prompt.content().isEmpty()) {
5754
throw new InvalidPromptRequest();
5855
}
5956
// if (prompt.modelId() == null ||
6057
// !prompt.modelId().startsWith("ocid1.generativeaimodel.")) { throw new
6158
// InvalidPromptRequest(); }
62-
String responseFromGenAI = genAI.request(promptEscaped, hardcodedChatModelId);
59+
String responseFromGenAI = genAI.resolvePrompt(promptEscaped, hardcodedChatModelId);
6360
saved.setDatetimeResponse(new Date());
6461
saved.setResponse(responseFromGenAI);
6562
interactionRepository.save(saved);
6663
return new Answer(responseFromGenAI, "");
6764
} catch (BmcException exception) {
68-
logger.error(exception.getOriginalMessage());
65+
logger.error("Message: {}", exception.getMessage());
66+
logger.error("Original Message: {}", exception.getOriginalMessage());
67+
logger.error("Unmodified Message: {}", exception.getUnmodifiedMessage());
68+
logger.error("Service Details: {}", exception.getServiceDetails());
69+
logger.error("Status Code: {}", exception.getStatusCode());
6970
String unmodifiedMessage = exception.getUnmodifiedMessage();
7071
int statusCode = exception.getStatusCode();
7172
String errorMessage = statusCode + " " + unmodifiedMessage;

0 commit comments

Comments
 (0)