From 72a7555ac6bb0594266b6544319dc5a148244773 Mon Sep 17 00:00:00 2001 From: Mahesh Kommareddi Date: Tue, 16 Jul 2024 20:32:00 -0400 Subject: [PATCH] Working bedrock generate queries --- src/main/java/com/ioa/IoASystem.java | 2 +- .../com/ioa/model/BedrockLanguageModel.java | 25 +++++++++++------- target/classes/com/ioa/IoASystem.class | Bin 5378 -> 5400 bytes .../com/ioa/model/BedrockLanguageModel.class | Bin 4371 -> 4794 bytes 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/ioa/IoASystem.java b/src/main/java/com/ioa/IoASystem.java index f4abdd0..746501a 100644 --- a/src/main/java/com/ioa/IoASystem.java +++ b/src/main/java/com/ioa/IoASystem.java @@ -42,7 +42,7 @@ public class IoASystem { @Bean public BedrockLanguageModel bedrockLanguageModel() { - return new BedrockLanguageModel("anthropic.claude-v2"); + return new BedrockLanguageModel("anthropic.claude-3-5-sonnet-20240620-v1:0"); } @Bean diff --git a/src/main/java/com/ioa/model/BedrockLanguageModel.java b/src/main/java/com/ioa/model/BedrockLanguageModel.java index bb530cd..3b42c71 100644 --- a/src/main/java/com/ioa/model/BedrockLanguageModel.java +++ b/src/main/java/com/ioa/model/BedrockLanguageModel.java @@ -7,9 +7,8 @@ import software.amazon.awssdk.services.bedrockruntime.model.InvokeModelRequest; import software.amazon.awssdk.services.bedrockruntime.model.InvokeModelResponse; import software.amazon.awssdk.core.SdkBytes; import com.fasterxml.jackson.databind.ObjectMapper; - -import java.util.Map; -import java.util.HashMap; +import com.fasterxml.jackson.databind.node.ObjectNode; +import com.fasterxml.jackson.databind.node.ArrayNode; import org.springframework.stereotype.Component; @@ -30,26 +29,32 @@ public class BedrockLanguageModel { public String generate(String prompt) { try { - Map requestBody = new HashMap<>(); - requestBody.put("prompt", prompt); - requestBody.put("max_tokens_to_sample", 500); + ObjectNode requestBody = objectMapper.createObjectNode(); + requestBody.put("anthropic_version", "bedrock-2023-05-31"); + ArrayNode messages = requestBody.putArray("messages"); + ObjectNode message = messages.addObject(); + message.put("role", "user"); + message.put("content", prompt); + + requestBody.put("max_tokens", 500); requestBody.put("temperature", 0.7); requestBody.put("top_p", 0.9); String jsonPayload = objectMapper.writeValueAsString(requestBody); - InvokeModelRequest invokeModelRequest = InvokeModelRequest.builder() + InvokeModelRequest invokeRequest = InvokeModelRequest.builder() .modelId(modelId) .contentType("application/json") .accept("application/json") .body(SdkBytes.fromUtf8String(jsonPayload)) .build(); - InvokeModelResponse response = bedrockClient.invokeModel(invokeModelRequest); + InvokeModelResponse response = bedrockClient.invokeModel(invokeRequest); String responseBody = response.body().asUtf8String(); - Map responseMap = objectMapper.readValue(responseBody, Map.class); - return (String) responseMap.get("completion"); + ObjectNode responseJson = (ObjectNode) objectMapper.readTree(responseBody); + return responseJson.path("content").asText(); + } catch (Exception e) { throw new RuntimeException("Error generating text with Bedrock", e); } diff --git a/target/classes/com/ioa/IoASystem.class b/target/classes/com/ioa/IoASystem.class index a9a54ae6a19bb57ac3c31f8712169ae490ef207e..31d543851ad51b0711374bb32e37b97c04c4d824 100644 GIT binary patch delta 55 zcmZqDnxVBpo=HnHF|Q<}D8C>xSuZ&!u{0%B*I3t7w>Up9FSSJ1$iT?Nz|6=%x6IJW KV6!pPc_9G%ZxKNN delta 33 ocmbQC)ugpSo=HSFF|Q<}D8C>xSuZ&!u{0%Bx6Ej>C)0T$0Kb0=e*gdg diff --git a/target/classes/com/ioa/model/BedrockLanguageModel.class b/target/classes/com/ioa/model/BedrockLanguageModel.class index e1f94525818b88b689d8197cd917f3a64235f2bb..60774605dee3768a984af60abf5e1a5e5d53fec2 100644 GIT binary patch delta 1582 zcmZuw`%@cL6#i}+vYX9@kx*Nr4j`oi1wsO}&<1P47HMgDXlW_cmM+N-udusp76i4W zJ}SOni`uGvXnj;gY_%@sVT)3A#?cx72gl$1(HVbpJU5`Vh0JX3x%Zy)o%4O?Tsv=O zz4X)HGgkrB;>SzUtUFIa2wP-CQO$5$%v2RiZSL$#t`UK6;uSNQ*MIVrf5R};~yme7bM0nIX6xC$X&T>s5J3|=K3U*s?1K?b*} zCsYxwWDO=&Q^bA-A*O4Vs#ziqFi8E%aEGP$samSOgPi$840S6MwJSw3b2-UF_C#7R zw-yQy?p!%|M=H2-s)}{J?OQAo|^Oo`UPk*e9#%{?K0O| z`&T()PkIjc24D(E%BX~8X9#o6Lo^$TVI+EDibY)x_a=4ChXD-B7y-4+x5T`4#8CP9 zV=^A+=N=^%Qw>YPF^md0F5?M2$&jDQbzJn@HDZf6fTv}gz%%wq@q~W>`96qvPR8?i z!7lP%NPh`03wVWlyvne1smfwIPpS});dL1{#_dB=QQ@01-oi;502<+VtEtlLZe2m^ zlv+g%RR2=zYw@;>cX*`RP^@kVr*THWSsCXr&QQQ-A@r|1CzNbehb;l`Gi2VFuDW4P zlavwgf!*ZGVISF=uRuJH3o_F1iGAAlJB#plw5-VtVSXODdE96Ug{A2xak<(p%1A<2 zsHgrOZHT7Io|NbOvZ*EwT}!IGKzqoaEqDx5?>8*_H~;mtPr>k+J(0e9bb{V{9?1&a z4mZ|N$JZhgS;$5Z8*m3U;!bSAUHF_l*1$#oQB2|sTDet;Dneqoh)Wz1V6%iG(cMDP zWkeioZY&Ah6S&twOKH6-YhT%eBa2k&+E|0npq`RZjc*=!oj4{k35%rL3LC`ae zXI+R2LBYX`4ql6j94;t2qj+N;wNY=-8`$UIl!JFKHqPRFd*H*8DSUj5NC6I}@E%ry zOLdS$0CGvNyOBY{Wnmpjm5)NKM;QuGO;#NV*NkGc)0;YiQgk5<4G|2I$5E7Hj6@yB zCY&MhNdL_QAH@|46nQtvBh=rk!SnWKvsS z!74uSffwITP!vQ31loqKrTy?nm-6keYpGu@zg){dmuJ!^^D+0_bI;!Ao_)@}u|<@+ zfBNsncL46j%oX=sE|<{6uy%xx^V*aZ(`!3;ayZ0IHyV*6qnW{FCX6xDQqY1{3At8?H-!E=#MW2cX@sKzx?e_NLVF?2& z6g3ydMT30U8$ndUpo)4Bc{uC-T~36DC^HB#pR&2x2Nm>_{bQ zP-$_iXVTPczpi4;_PcmAs+pD>222UZR3wmOC==Tq8^le;BYw>5mLo{17{{Zc#C^gO zL74&>kEwVZPl&7T^WLYBmT=sTc$%SuZnQ^SRCdS)o>B2EPKZC1s`byScmXdm%K@iktT8JedrxmT0+sFEhBKG!D9Emt@bxD=J>aYcv2unk8nW(x$~&38!um z|B#i4#fKyahIK0~**9UAN>mcw6gSm7*xTZ7wOl@pcU3s?o+$GCQJ=ri>g;sVtOZFq zTgq-esT+Kd!552<(=>&QK}|oX9ZP9Rn#4}=8`~(3E7c+`JH@Zw5miZONz;fYHR2HA z{Nl>OE+fkIUY>|?8VkD%J+{HH^VWpTqQp~_w^&w7P+0jtINt}u2V&Qn1L+UxEtQh` zKp}Fmfo5YP*1?Zr+=fbQLLF{L6N>OrHo`&w06xYiwAxlZ8iyE^n)@VOz~K4&OVABV^ZQ zz#Z@%&0u(88FgUmEaDkh4rDOFFpvH~E=896b2FH9AmH>nr}5-8rUEXT%m(vxO9w s$XY;NBIIQ{lfnMQ1&PYb!4+UL1$>LEbl{@OuVpC#H`x)YXxf$cKk|cFi2wiq