|
1 | 1 | package oracleai.services;
|
2 | 2 |
|
| 3 | +import com.oracle.bmc.ClientConfiguration; |
| 4 | +import com.oracle.bmc.ConfigFileReader; |
3 | 5 | import com.oracle.bmc.Region;
|
4 | 6 | import com.oracle.bmc.auth.AuthenticationDetailsProvider;
|
5 |
| -import com.oracle.bmc.generativeai.GenerativeAiClient; |
6 |
| -import com.oracle.bmc.generativeai.model.GenerateTextDetails; |
7 |
| -import com.oracle.bmc.generativeai.model.GenerateTextResult; |
8 |
| -import com.oracle.bmc.generativeai.model.OnDemandServingMode; |
9 |
| -import com.oracle.bmc.generativeai.requests.GenerateTextRequest; |
10 |
| -import com.oracle.bmc.generativeai.responses.GenerateTextResponse; |
| 7 | +import com.oracle.bmc.auth.ConfigFileAuthenticationDetailsProvider; |
| 8 | +import com.oracle.bmc.retrier.RetryConfiguration; |
| 9 | +import com.oracle.bmc.ClientConfiguration; |
| 10 | +import com.oracle.bmc.ConfigFileReader; |
| 11 | +import com.oracle.bmc.Region; |
| 12 | +import com.oracle.bmc.auth.AuthenticationDetailsProvider; |
| 13 | +import com.oracle.bmc.auth.ConfigFileAuthenticationDetailsProvider; |
| 14 | +import com.oracle.bmc.generativeaiinference.GenerativeAiInferenceClient; |
| 15 | +import com.oracle.bmc.generativeaiinference.model.CohereLlmInferenceRequest; |
| 16 | +import com.oracle.bmc.generativeaiinference.model.GenerateTextDetails; |
| 17 | +import com.oracle.bmc.generativeaiinference.model.OnDemandServingMode; |
| 18 | +import com.oracle.bmc.generativeaiinference.requests.GenerateTextRequest; |
| 19 | +import com.oracle.bmc.generativeaiinference.responses.GenerateTextResponse; |
| 20 | +import com.oracle.bmc.generativeaiinference.responses.GenerateTextResponse; |
| 21 | + |
| 22 | + |
11 | 23 | import oracleai.AIApplication;
|
12 | 24 |
|
13 | 25 | import java.util.Arrays;
|
14 | 26 | import java.util.List;
|
15 | 27 |
|
16 | 28 | public class OracleGenAI {
|
17 | 29 |
|
| 30 | +// |
| 31 | +// public static String chat0(String textcontent) throws Exception { |
| 32 | +// AuthenticationDetailsProvider provider = AuthProvider.getAuthenticationDetailsProvider(); |
| 33 | +// //GenAI is only available in US_CHICAGO_1 for current beta, thus the override |
| 34 | +// GenerativeAiClient generativeAiClient = GenerativeAiClient.builder().region(Region.US_CHICAGO_1).build(provider); |
| 35 | +// List<String> prompts = Arrays.asList(textcontent); |
| 36 | +// GenerateTextDetails generateTextDetails = GenerateTextDetails.builder() |
| 37 | +// .servingMode(OnDemandServingMode.builder().modelId("cohere.command").build()) // "cohere.command-light" is also available to use |
| 38 | +// // .servingMode(DedicatedServingMode.builder().endpointId("custom-model-endpoint").build()) // for custom model from Dedicated AI Cluster |
| 39 | +// .compartmentId(AIApplication.COMPARTMENT_ID) |
| 40 | +// .prompts(prompts) |
| 41 | +// .maxTokens(300) |
| 42 | +// .temperature(0.75) |
| 43 | +// .frequencyPenalty(1.0) |
| 44 | +// .topP(0.7) |
| 45 | +// .isStream(false) |
| 46 | +// .isEcho(false) |
| 47 | +// .build(); |
| 48 | +// GenerateTextRequest generateTextRequest = GenerateTextRequest.builder() |
| 49 | +// .generateTextDetails(generateTextDetails) |
| 50 | +// .build(); |
| 51 | +// GenerateTextResponse generateTextResponse = generativeAiClient.generateText(generateTextRequest); |
| 52 | +// GenerateTextResult result = generateTextResponse.getGenerateTextResult(); |
| 53 | +// if(result !=null && result.getGeneratedTexts().size() > 0 ) { |
| 54 | +// String all_results =""; |
| 55 | +// for (List<com.oracle.bmc.generativeai.model.GeneratedText> list : result.getGeneratedTexts()) { |
| 56 | +// for (com.oracle.bmc.generativeai.model.GeneratedText text:list){ |
| 57 | +// all_results = all_results+text.getText(); |
| 58 | +// } |
| 59 | +// } |
| 60 | +// return all_results; |
| 61 | +// } |
| 62 | +// return "We could not find a result for your text. Try a different image."; |
| 63 | +// } |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | + |
18 | 68 |
|
19 | 69 | public static String chat(String textcontent) throws Exception {
|
20 |
| - AuthenticationDetailsProvider provider = AuthProvider.getAuthenticationDetailsProvider(); |
21 |
| - //GenAI is only available in US_CHICAGO_1 for current beta, thus the override |
22 |
| - GenerativeAiClient generativeAiClient = GenerativeAiClient.builder().region(Region.US_CHICAGO_1).build(provider); |
23 |
| - List<String> prompts = Arrays.asList(textcontent); |
| 70 | + return new OracleGenAI().doChat(textcontent); |
| 71 | + } |
| 72 | + public String doChat(String textcontent) throws Exception { |
| 73 | + |
| 74 | + |
| 75 | +// ClientConfiguration clientConfiguration = |
| 76 | +// ClientConfiguration.builder() |
| 77 | +// .readTimeoutMillis(240000) |
| 78 | +// .retryConfiguration(RetryConfiguration.NO_RETRY_CONFIGURATION) |
| 79 | +// .build(); |
| 80 | + |
| 81 | + final GenerativeAiInferenceClient generativeAiInferenceClient = |
| 82 | + new GenerativeAiInferenceClient(AuthProvider.getAuthenticationDetailsProvider()); |
| 83 | + // generativeAiInferenceClient.setEndpoint(ENDPOINT); |
| 84 | + generativeAiInferenceClient.setRegion(Region.US_CHICAGO_1); |
| 85 | + |
| 86 | + |
| 87 | + // Construct the inference request |
| 88 | + CohereLlmInferenceRequest cohereLlmInferenceRequest = |
| 89 | + CohereLlmInferenceRequest.builder() |
| 90 | + .prompt(textcontent) |
| 91 | + .maxTokens(50) |
| 92 | + .temperature(0.75) |
| 93 | + .frequencyPenalty(1.0) |
| 94 | + .topP(0.7) |
| 95 | + .isStream(false) // SDK doesn't support streaming responses, feature is under development |
| 96 | + .isEcho(true) |
| 97 | + .build(); |
| 98 | + |
| 99 | + // Build generate text request, send, and get response |
24 | 100 | GenerateTextDetails generateTextDetails = GenerateTextDetails.builder()
|
25 | 101 | .servingMode(OnDemandServingMode.builder().modelId("cohere.command").build()) // "cohere.command-light" is also available to use
|
26 | 102 | // .servingMode(DedicatedServingMode.builder().endpointId("custom-model-endpoint").build()) // for custom model from Dedicated AI Cluster
|
27 | 103 | .compartmentId(AIApplication.COMPARTMENT_ID)
|
28 |
| - .prompts(prompts) |
29 |
| - .maxTokens(300) |
30 |
| - .temperature(0.75) |
31 |
| - .frequencyPenalty(1.0) |
32 |
| - .topP(0.7) |
33 |
| - .isStream(false) |
34 |
| - .isEcho(false) |
| 104 | + .inferenceRequest(cohereLlmInferenceRequest) |
35 | 105 | .build();
|
| 106 | + |
36 | 107 | GenerateTextRequest generateTextRequest = GenerateTextRequest.builder()
|
37 | 108 | .generateTextDetails(generateTextDetails)
|
38 | 109 | .build();
|
39 |
| - GenerateTextResponse generateTextResponse = generativeAiClient.generateText(generateTextRequest); |
40 |
| - GenerateTextResult result = generateTextResponse.getGenerateTextResult(); |
41 |
| - if(result !=null && result.getGeneratedTexts().size() > 0 ) { |
42 |
| - String all_results =""; |
43 |
| - for (List<com.oracle.bmc.generativeai.model.GeneratedText> list : result.getGeneratedTexts()) { |
44 |
| - for (com.oracle.bmc.generativeai.model.GeneratedText text:list){ |
45 |
| - all_results = all_results+text.getText(); |
46 |
| - } |
47 |
| - } |
48 |
| - return all_results; |
49 |
| - } |
50 |
| - return "We could not find a result for your text. Try a different image."; |
| 110 | + |
| 111 | + GenerateTextResponse generateTextResponse = generativeAiInferenceClient.generateText(generateTextRequest); |
| 112 | + |
| 113 | + System.out.println(generateTextResponse.toString()); |
| 114 | + return generateTextResponse.toString(); |
51 | 115 | }
|
52 | 116 |
|
53 | 117 | }
|
0 commit comments