Skip to content

Commit 9328aef

Browse files
committed
init
1 parent 0bef65a commit 9328aef

15 files changed

+103
-460
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ MISSING
1010
https://paulparkinson.github.io/developer/oracle-ai-for-sustainable-dev/workshops/freetier/index.html?lab=oml-healthcare
1111
https://sdgs.un.org/goals
1212
https://huggingface.co/DeepFloyd/IF-I-XL-v1.0
13+
https://docs.oracle.com/en-us/iaas/api/#/en/vision/20220125/
14+
https://docs.public.oneportal.content.oci.oraclecloud.com/en-us/iaas/autonomous-database/doc/dbms_cloud-package-reference.html
15+
1316

1417
## Getting Started
1518
MISSING

src/main/java/oracleai/CallAIFromOracleDatabaseUseJSONAndSQL.java

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

src/main/java/oracleai/ExplainAndAdviseOnHealthTestResults.java

Lines changed: 3 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@
1616
import com.oracle.bmc.generativeai.model.OnDemandServingMode;
1717
import com.oracle.bmc.generativeai.requests.GenerateTextRequest;
1818
import com.oracle.bmc.generativeai.responses.GenerateTextResponse;
19-
import com.theokanning.openai.completion.chat.ChatCompletionChoice;
20-
import com.theokanning.openai.completion.chat.ChatCompletionRequest;
21-
import com.theokanning.openai.completion.chat.ChatMessage;
22-
import com.theokanning.openai.completion.chat.ChatMessageRole;
23-
import com.theokanning.openai.service.OpenAiService;
2419
import lombok.Getter;
2520
import lombok.Setter;
2621
import org.slf4j.Logger;
@@ -29,10 +24,8 @@
2924
import org.springframework.web.bind.annotation.*;
3025
import org.springframework.web.multipart.MultipartFile;
3126

32-
import java.time.Duration;
3327
import java.util.ArrayList;
3428
import java.util.Arrays;
35-
import java.util.HashMap;
3629
import java.util.List;
3730

3831
import org.springframework.ui.Model;
@@ -54,7 +47,7 @@ public String analyzedoc(@RequestParam("file") MultipartFile file, Model model)
5447
String concatenatedText = concatenateText(imageData);
5548
System.out.println(concatenatedText);
5649
log.info("fullText = " + concatenatedText);
57-
String explanationOfResults = chat("explain these test results in simple terms, in less than 100 words, " +
50+
String explanationOfResults = OracleGenAI.chat("explain these test results in simple terms, in less than 100 words, " +
5851
"and tell me what should I do to get better results: \"" + concatenatedText + "\"");
5952
System.out.println("ExplainAndAdviseOnHealthTestResults.analyzedoc explanationOfResults:" + explanationOfResults);
6053
model.addAttribute("results", explanationOfResults);
@@ -70,74 +63,6 @@ private static String concatenateText(ImageData imageData) {
7063
return sb.toString().trim();
7164
}
7265

73-
String chat(String textcontent) throws Exception {
74-
boolean isConfigFileAuth = true;
75-
GenerativeAiClient generativeAiClient;
76-
AuthenticationDetailsProvider provider;
77-
if (isConfigFileAuth) {
78-
provider = new ConfigFileAuthenticationDetailsProvider(
79-
System.getenv("OCICONFIG_FILE"),System.getenv("OCICONFIG_PROFILE"));
80-
generativeAiClient = GenerativeAiClient.builder().build(provider);
81-
} else {
82-
generativeAiClient = new GenerativeAiClient(InstancePrincipalsAuthenticationDetailsProvider.builder().build());
83-
}
84-
List<String> prompts = Arrays.asList(textcontent);
85-
GenerateTextDetails generateTextDetails = GenerateTextDetails.builder()
86-
.servingMode(OnDemandServingMode.builder().modelId("cohere.command").build()) // "cohere.command-light" is also available to use
87-
// .servingMode(DedicatedServingMode.builder().endpointId("custom-model-endpoint").build()) // for custom model from Dedicated AI Cluster
88-
.compartmentId(AIApplication.COMPARTMENT_ID)
89-
.prompts(prompts)
90-
.maxTokens(300)
91-
.temperature(0.75)
92-
.frequencyPenalty(1.0)
93-
.topP(0.7)
94-
.isStream(false)
95-
.isEcho(false)
96-
.build();
97-
98-
GenerateTextRequest generateTextRequest = GenerateTextRequest.builder()
99-
.generateTextDetails(generateTextDetails)
100-
.build();
101-
102-
GenerateTextResponse generateTextResponse = generativeAiClient.generateText(generateTextRequest);
103-
GenerateTextResult result = generateTextResponse.getGenerateTextResult();
104-
if(result !=null && result.getGeneratedTexts().size() > 0 ) {
105-
String all_results ="";
106-
for (List<com.oracle.bmc.generativeai.model.GeneratedText> list : result.getGeneratedTexts()) {
107-
for (com.oracle.bmc.generativeai.model.GeneratedText text:list){
108-
all_results = all_results+text.getText();
109-
}
110-
}
111-
return all_results;
112-
}
113-
return "We could not find a result for your text. Try a different image.";
114-
}
115-
116-
117-
String chatOpenAI(String textcontent) throws Exception {
118-
OpenAiService service =
119-
new OpenAiService(System.getenv("OPENAI_KEY"), Duration.ofSeconds(60));
120-
System.out.println("Streaming chat completion... textcontent:" + textcontent);
121-
final List<ChatMessage> messages = new ArrayList<>();
122-
final ChatMessage systemMessage = new ChatMessage(ChatMessageRole.SYSTEM.value(), textcontent);
123-
messages.add(systemMessage);
124-
ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest
125-
.builder()
126-
.model("gpt-3.5-turbo")
127-
.messages(messages)
128-
.n(1)
129-
.maxTokens(300) //was 50
130-
.logitBias(new HashMap<>())
131-
.build();
132-
String replyString = "";
133-
String content;
134-
for (ChatCompletionChoice choice : service.createChatCompletion(chatCompletionRequest).getChoices()) {
135-
content = choice.getMessage().getContent();
136-
replyString += (content == null?" ": content);
137-
}
138-
service.shutdownExecutor();
139-
return replyString;
140-
}
14166

14267
String processImage(byte[] bytes, boolean isConfigFileAuth) throws Exception {
14368
AIServiceVisionClient aiServiceVisionClient;
@@ -179,8 +104,8 @@ String processImage(byte[] bytes, boolean isConfigFileAuth) throws Exception {
179104
mapper.setFilterProvider(new SimpleFilterProvider().setFailOnUnknownId(false));
180105

181106
String json = mapper.writeValueAsString(response.getAnalyzeImageResult());
182-
System.out.println("AnalyzeImage Result");
183-
System.out.println(json);
107+
// System.out.println("AnalyzeImage Result");
108+
// System.out.println(json);
184109
return json;
185110
}
186111

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package oracleai;
2+
3+
public class FaceRecognition {
4+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package oracleai;
2+
3+
import com.oracle.bmc.auth.AuthenticationDetailsProvider;
4+
import com.oracle.bmc.auth.ConfigFileAuthenticationDetailsProvider;
5+
import com.oracle.bmc.auth.InstancePrincipalsAuthenticationDetailsProvider;
6+
import com.oracle.bmc.generativeai.GenerativeAiClient;
7+
import com.oracle.bmc.generativeai.model.GenerateTextDetails;
8+
import com.oracle.bmc.generativeai.model.GenerateTextResult;
9+
import com.oracle.bmc.generativeai.model.OnDemandServingMode;
10+
import com.oracle.bmc.generativeai.requests.GenerateTextRequest;
11+
import com.oracle.bmc.generativeai.responses.GenerateTextResponse;
12+
13+
import java.util.Arrays;
14+
import java.util.List;
15+
16+
public class OracleGenAI {
17+
18+
19+
static String chat(String textcontent) throws Exception {
20+
boolean isConfigFileAuth = true;
21+
GenerativeAiClient generativeAiClient;
22+
AuthenticationDetailsProvider provider;
23+
if (isConfigFileAuth) {
24+
provider = new ConfigFileAuthenticationDetailsProvider(
25+
System.getenv("OCICONFIG_FILE"),System.getenv("OCICONFIG_PROFILE"));
26+
generativeAiClient = GenerativeAiClient.builder().build(provider);
27+
} else {
28+
generativeAiClient = new GenerativeAiClient(InstancePrincipalsAuthenticationDetailsProvider.builder().build());
29+
}
30+
List<String> prompts = Arrays.asList(textcontent);
31+
GenerateTextDetails generateTextDetails = GenerateTextDetails.builder()
32+
.servingMode(OnDemandServingMode.builder().modelId("cohere.command").build()) // "cohere.command-light" is also available to use
33+
// .servingMode(DedicatedServingMode.builder().endpointId("custom-model-endpoint").build()) // for custom model from Dedicated AI Cluster
34+
.compartmentId(AIApplication.COMPARTMENT_ID)
35+
.prompts(prompts)
36+
.maxTokens(300)
37+
.temperature(0.75)
38+
.frequencyPenalty(1.0)
39+
.topP(0.7)
40+
.isStream(false)
41+
.isEcho(false)
42+
.build();
43+
44+
GenerateTextRequest generateTextRequest = GenerateTextRequest.builder()
45+
.generateTextDetails(generateTextDetails)
46+
.build();
47+
48+
GenerateTextResponse generateTextResponse = generativeAiClient.generateText(generateTextRequest);
49+
GenerateTextResult result = generateTextResponse.getGenerateTextResult();
50+
if(result !=null && result.getGeneratedTexts().size() > 0 ) {
51+
String all_results ="";
52+
for (List<com.oracle.bmc.generativeai.model.GeneratedText> list : result.getGeneratedTexts()) {
53+
for (com.oracle.bmc.generativeai.model.GeneratedText text:list){
54+
all_results = all_results+text.getText();
55+
}
56+
}
57+
return all_results;
58+
}
59+
return "We could not find a result for your text. Try a different image.";
60+
}
61+
62+
}

0 commit comments

Comments
 (0)