Skip to content

Commit e9ea58a

Browse files
authored
When using the GenerateEmbedding method, errors were not being recorded in the messages parameter (#1007)
Issue: 206012
1 parent 6c7fdca commit e9ea58a

File tree

2 files changed

+22
-8
lines changed

2 files changed

+22
-8
lines changed

java/src/main/java/com/genexus/db/GXEmbedding.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,31 +60,44 @@ public Float[] getFloatArray() {
6060
return embedding.toArray(new Float[0]);
6161
}
6262

63-
public static GXEmbedding generateEmbedding(GXEmbedding embeddingInfo, String text, GXBaseCollection<SdtMessages_Message> Messages) {
63+
public static GXEmbedding generateEmbedding(GXEmbedding embeddingInfo, String text, GXBaseCollection<SdtMessages_Message> messages) {
6464
try {
65-
List<Float> embedding = getEmbedding(embeddingInfo.getModel(), embeddingInfo.getDimensions(), text);
65+
List<Float> embedding = getEmbedding(embeddingInfo.getModel(), embeddingInfo.getDimensions(), text, messages);
6666
embeddingInfo.setEmbedding(embedding);
6767
}
6868
catch (Exception ex) {
69-
CommonUtil.ErrorToMessages("GenerateEmbedding Error", ex.getMessage(), Messages);
69+
CommonUtil.ErrorToMessages("GenerateEmbedding Error", ex.getMessage(), messages);
7070
}
7171
return embeddingInfo;
7272
}
7373

74-
public static List<Float> getEmbedding(String model, int dimensions, String input) {
74+
public static List<Float> getEmbedding(String model, int dimensions, String input, GXBaseCollection<SdtMessages_Message> messages) {
7575
if (input.isEmpty())
7676
return new ArrayList<>();
7777
ArrayList<String> inputList = new ArrayList<>();
7878
inputList.add(input);
79-
return getEmbedding(model, dimensions, inputList);
79+
return getEmbedding(model, dimensions, inputList, messages);
8080
}
8181

82-
public static List<Float> getEmbedding(String model, int dimensions, ArrayList<String> inputList) {
82+
public static List<Float> getEmbedding(String model, int dimensions, ArrayList<String> inputList, GXBaseCollection<SdtMessages_Message> messages) {
8383
OpenAIRequest aiRequest = new OpenAIRequest();
8484
aiRequest.setModel(model);
8585
aiRequest.setInput(inputList);
8686
aiRequest.setDimension(dimensions);
87-
OpenAIResponse aiResponse = SaiaService.call(aiRequest, true, new CallResult());
87+
CallResult callResult = new CallResult();
88+
OpenAIResponse aiResponse = SaiaService.call(aiRequest, true, callResult);
89+
90+
int i = 0 ;
91+
while ( i < callResult.getMessages().size() )
92+
{
93+
SdtMessages_Message message = new SdtMessages_Message();
94+
message.setgxTv_SdtMessages_Message_Id(callResult.getMessages().elementAt(i).getgxTv_SdtMessages_Message_Id());
95+
message.setgxTv_SdtMessages_Message_Type(callResult.getMessages().elementAt(i).getgxTv_SdtMessages_Message_Type());
96+
message.setgxTv_SdtMessages_Message_Description(callResult.getMessages().elementAt(i).getgxTv_SdtMessages_Message_Description());
97+
messages.add(message);
98+
i++ ;
99+
}
100+
88101
if (aiResponse != null)
89102
return aiResponse.getData().get(0).getEmbedding().stream()
90103
.map(Double::floatValue)

java/src/test/java/com/genexus/embedding/GXEmbeddingTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ public void EmbeddingTest(){
1919
Connect.init();
2020
LogManager.initialize(".");
2121
Application.init(GXcfg.class);
22-
List<Float> embedding = GXEmbedding.getEmbedding("openai/text-embedding-3-small", 512, "Hello World");
22+
GXBaseCollection<SdtMessages_Message> AV7Messages = new GXBaseCollection<>();
23+
List<Float> embedding = GXEmbedding.getEmbedding("openai/text-embedding-3-small", 512, "Hello World", AV7Messages);
2324
String result = embedding.stream()
2425
.map(String::valueOf)
2526
.collect(Collectors.joining(","));

0 commit comments

Comments
 (0)