1
1
package com .example ;
2
2
3
-
4
3
import com .oracle .bmc .ClientConfiguration ;
5
4
import com .oracle .bmc .ConfigFileReader ;
6
5
import com .oracle .bmc .Region ;
9
8
import com .oracle .bmc .auth .StringPrivateKeySupplier ;
10
9
import com .oracle .bmc .auth .SimpleAuthenticationDetailsProvider ;
11
10
import com .oracle .bmc .generativeaiinference .GenerativeAiInferenceClient ;
12
- import com .oracle .bmc .generativeaiinference .model .CohereLlmInferenceRequest ;
11
+ import com .oracle .bmc .generativeaiinference .model .ChatDetails ;
12
+ import com .oracle .bmc .generativeaiinference .model .CohereChatRequest ;
13
+ import com .oracle .bmc .generativeaiinference .model .CohereMessage ;
13
14
import com .oracle .bmc .generativeaiinference .model .DedicatedServingMode ;
14
- import com .oracle .bmc .generativeaiinference .model .GenerateTextDetails ;
15
- import com .oracle .bmc .generativeaiinference .model .LlamaLlmInferenceRequest ;
15
+ import com .oracle .bmc .generativeaiinference .requests .ChatRequest ;
16
+ import com .oracle .bmc .generativeaiinference .responses .ChatResponse ;
17
+ import com .oracle .bmc .generativeaiinference .model .BaseChatRequest .ApiFormat ;
18
+ import com .oracle .bmc .generativeaiinference .model .ChatChoice ;
19
+ import com .oracle .bmc .generativeaiinference .model .ChatContent ;
20
+ import com .oracle .bmc .generativeaiinference .model .ChatContent .Type ;
21
+ import com .oracle .bmc .generativeaiinference .model .ChatResult ;
22
+ import com .oracle .bmc .generativeaiinference .model .Message ;
16
23
import com .oracle .bmc .generativeaiinference .model .OnDemandServingMode ;
17
- import com .oracle .bmc .generativeaiinference .model .SummarizeTextDetails ;
18
- import com .oracle .bmc .generativeaiinference .requests .GenerateTextRequest ;
19
- import com .oracle .bmc .generativeaiinference .requests .SummarizeTextRequest ;
20
- import com .oracle .bmc .generativeaiinference .responses .GenerateTextResponse ;
24
+ import com .oracle .bmc .generativeaiinference .model .ServingMode ;
25
+ import com .oracle .bmc .generativeaiinference .model .TextContent ;
21
26
import com .oracle .bmc .retrier .RetryConfiguration ;
22
27
23
28
import java .io .*;
@@ -28,7 +33,7 @@ public class HelloAIFunction {
28
33
29
34
// FILL IN PROPER VALUES FOR OCI GENAI SERVICE
30
35
private static final String ENDPOINT = "https://inference.generativeai.us-chicago-1.oci.oraclecloud.com" ;
31
- private static final Region REGION = Region .US_CHICAGO_1 ;
36
+ private static final Region REGION = Region .EU_FRANKFURT_1 ;
32
37
33
38
// FILL IN PROPER VALUES FOR IAM USER WHEN NOT USING INSTANCE_PRINCIPAL IN OCI FUNCTION
34
39
private static final String COMPARTMENT_ID = "ocid1.compartment.oc1.." ;
@@ -47,7 +52,6 @@ public String handleRequest(String input) {
47
52
String currentDate = dateFormat . format (date );
48
53
String questionToAI = (input == null || input .isEmpty ()) ? "What happened today " + currentDate + " 100 years ago ?" : input ;
49
54
50
- // OCI FUNCTION CONFIG VAR "AUTH_INSTANCE_PRINCIPAL" FOR INSTANCE_PRINCIPAL AUTH (ANY VALUE)
51
55
if (System .getenv ("AUTH_INSTANCE_PRINCIPAL" ) != null ) {
52
56
System .out .println ("AUTH_INSTANCE_PRINCIPAL" );
53
57
ResourcePrincipalAuthenticationDetailsProvider resourcePrincipalAuthenticationDetailsProvider =
@@ -75,33 +79,31 @@ public String handleRequest(String input) {
75
79
.build (authenticationDetailsProvider );
76
80
}
77
81
78
- CohereLlmInferenceRequest llmInferenceRequest =
79
- CohereLlmInferenceRequest .builder ()
80
- .prompt (questionToAI )
81
- .maxTokens (600 )
82
- .temperature ((double )1 )
83
- .frequencyPenalty ((double )0 )
84
- .topP ((double )0.99 )
85
- .isStream (false )
86
- .isEcho (false )
87
- .build ();
82
+ CohereChatRequest chatRequest = CohereChatRequest .builder ()
83
+ .message (questionToAI )
84
+ .maxTokens (600 )
85
+ .temperature ((double )0 )
86
+ .frequencyPenalty ((double )1 )
87
+ .topP ((double )0.75 )
88
+ .topK ((int )0 )
89
+ .isStream (false )
90
+ .build ();
88
91
89
- GenerateTextDetails generateTextDetails = GenerateTextDetails .builder ()
90
- .servingMode (OnDemandServingMode .builder ()
91
- .modelId ("ocid1.generativeaimodel.oc1.us-chicago-1.amaaaaaask7dceyafhwal37hxwylnpbcncidimbwteff4xha77n5xz4m7p6a" ).build ())
92
+ ChatDetails chatDetails = ChatDetails .builder ()
93
+ .servingMode (OnDemandServingMode .builder ().modelId ("ocid1.generativeaimodel.oc1.eu-frankfurt-1.amaaaaaask7dceyazi3cpmptwa52f7dgwyskloughcxtjgrqre3pngwtig4q" ).build ())
92
94
.compartmentId (COMPARTMENT_ID )
93
- .inferenceRequest ( llmInferenceRequest )
95
+ .chatRequest ( chatRequest )
94
96
.build ();
95
97
96
- GenerateTextRequest generateTextRequest = GenerateTextRequest .builder ()
97
- .generateTextDetails ( generateTextDetails )
98
+ ChatRequest request = ChatRequest .builder ()
99
+ .chatDetails ( chatDetails )
98
100
.build ();
99
101
100
- GenerateTextResponse generateTextResponse = generativeAiInferenceClient .generateText ( generateTextRequest );
101
- String answerAI = generateTextResponse .toString ();
102
- answerAI = answerAI .substring (answerAI .indexOf ("text= " ) + 6 );
103
- if (answerAI .indexOf (", likelihood " ) > 0 ) {
104
- answerAI = answerAI .substring (0 , answerAI .indexOf (", likelihood " ));
102
+ ChatResponse chatResponse = generativeAiInferenceClient .chat ( request );
103
+ String answerAI = chatResponse .toString ();
104
+ answerAI = answerAI .substring (answerAI .indexOf ("text=" ) + 5 );
105
+ if (answerAI .indexOf (", chatHistory= " ) > 0 ) {
106
+ answerAI = answerAI .substring (0 , answerAI .indexOf (", chatHistory= " ));
105
107
}
106
108
answer = questionToAI + "\n \n " + answerAI ;
107
109
0 commit comments