@@ -388,7 +388,7 @@ private Generation buildGeneration(ChatCompletion.Choice choice, Map<String, Obj
388388 .map (toolCall -> {
389389 return new AssistantMessage .ToolCall (toolCall .function ().get ().id (), "function" , toolCall .function ().get ().function ().name (),
390390 toolCall .function ().get ().function ().arguments ());
391- }).toList ()).get ( );
391+ }).toList ()).orElse ( List . of () );
392392
393393 var generationMetadataBuilder = ChatGenerationMetadata .builder ()
394394 .finishReason (choice .finishReason ().value ().name ());
@@ -566,8 +566,7 @@ else if (mimeType.startsWith("audio/")) {
566566 else {
567567 builder .role (JsonValue .from (MessageType .SYSTEM ));
568568 }
569- Object refusal = message .getMetadata ().get ("refusal" );
570- builder .refusal (refusal != null ? JsonValue .from (refusal .toString ()) : JsonValue .from ("" ));
569+ builder .refusal (JsonValue .from (Optional .ofNullable (message .getMetadata ().get ("refusal" )).map (Object ::toString ).orElse ("" )));
571570 return List .of (builder .build ());
572571 }
573572 else if (message .getMessageType () == MessageType .ASSISTANT ) {
@@ -576,8 +575,12 @@ else if (message.getMessageType() == MessageType.ASSISTANT) {
576575 .role (JsonValue .from (MessageType .ASSISTANT ));
577576
578577 if (assistantMessage .getText () != null ) {
579- builder .content (ChatCompletionMessage .builder ().content (assistantMessage .getText ()).build ().content ());
578+ builder .content (ChatCompletionMessage .builder ()
579+ .content (assistantMessage .getText ())
580+ .refusal (JsonValue .from (Optional .ofNullable (message .getMetadata ().get ("refusal" )).map (Object ::toString ).orElse ("" )))
581+ .build ().content ());
580582 }
583+ builder .refusal (JsonValue .from (Optional .ofNullable (message .getMetadata ().get ("refusal" )).map (Object ::toString ).orElse ("" )));
581584
582585 if (!CollectionUtils .isEmpty (assistantMessage .getToolCalls ())) {
583586 List <ChatCompletionMessageToolCall > toolCalls = assistantMessage .getToolCalls ()
@@ -604,6 +607,7 @@ else if (message.getMessageType() == MessageType.TOOL) {
604607 .map (toolResponse -> ChatCompletionMessage .builder ()
605608 .role (JsonValue .from (MessageType .TOOL ))
606609 .content (ChatCompletionMessage .builder ().content (toolResponse .responseData ()).build ().content ())
610+ .refusal (JsonValue .from (Optional .ofNullable (message .getMetadata ().get ("refusal" )).map (Object ::toString ).orElse ("" )))
607611 .build ())
608612 .toList ();
609613 }
0 commit comments