16
16
import com .oracle .bmc .generativeai .model .OnDemandServingMode ;
17
17
import com .oracle .bmc .generativeai .requests .GenerateTextRequest ;
18
18
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 ;
24
19
import lombok .Getter ;
25
20
import lombok .Setter ;
26
21
import org .slf4j .Logger ;
29
24
import org .springframework .web .bind .annotation .*;
30
25
import org .springframework .web .multipart .MultipartFile ;
31
26
32
- import java .time .Duration ;
33
27
import java .util .ArrayList ;
34
28
import java .util .Arrays ;
35
- import java .util .HashMap ;
36
29
import java .util .List ;
37
30
38
31
import org .springframework .ui .Model ;
@@ -54,7 +47,7 @@ public String analyzedoc(@RequestParam("file") MultipartFile file, Model model)
54
47
String concatenatedText = concatenateText (imageData );
55
48
System .out .println (concatenatedText );
56
49
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, " +
58
51
"and tell me what should I do to get better results: \" " + concatenatedText + "\" " );
59
52
System .out .println ("ExplainAndAdviseOnHealthTestResults.analyzedoc explanationOfResults:" + explanationOfResults );
60
53
model .addAttribute ("results" , explanationOfResults );
@@ -70,74 +63,6 @@ private static String concatenateText(ImageData imageData) {
70
63
return sb .toString ().trim ();
71
64
}
72
65
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
- }
141
66
142
67
String processImage (byte [] bytes , boolean isConfigFileAuth ) throws Exception {
143
68
AIServiceVisionClient aiServiceVisionClient ;
@@ -179,8 +104,8 @@ String processImage(byte[] bytes, boolean isConfigFileAuth) throws Exception {
179
104
mapper .setFilterProvider (new SimpleFilterProvider ().setFailOnUnknownId (false ));
180
105
181
106
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);
184
109
return json ;
185
110
}
186
111
0 commit comments