diff --git a/pom.xml b/pom.xml
index 83e981991..3c948346b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,7 +69,7 @@
3.1.2
4.0.2
- 0.12.0
+ 0.16.0
1.0.0-beta.3
0.6.1
4.31.1
diff --git a/spring-ai-openai/src/main/java/org/springframework/ai/openai/client/OpenAiClient.java b/spring-ai-openai/src/main/java/org/springframework/ai/openai/client/OpenAiClient.java
index 1db724628..d76923d5f 100644
--- a/spring-ai-openai/src/main/java/org/springframework/ai/openai/client/OpenAiClient.java
+++ b/spring-ai-openai/src/main/java/org/springframework/ai/openai/client/OpenAiClient.java
@@ -32,9 +32,10 @@ import org.springframework.util.Assert;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
/**
- * Implementation of {@link AiClient} backed by an OpenAiService
+ * Implementation of {@link AiClient} backed by an {@link OpenAiService}.
*/
public class OpenAiClient implements AiClient {
@@ -78,11 +79,11 @@ public class OpenAiClient implements AiClient {
@Override
public AiResponse generate(Prompt prompt) {
List messages = prompt.getMessages();
- List theoMessages = new ArrayList<>();
- for (Message message : messages) {
- String messageType = message.getMessageTypeValue();
- theoMessages.add(new ChatMessage(messageType, message.getContent()));
- }
+
+ List theoMessages = messages.stream()
+ .map(message -> new ChatMessage(message.getMessageTypeValue(), message.getContent()))
+ .toList();
+
ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest.builder()
.model(this.model)
.temperature(this.temperature)
@@ -114,7 +115,7 @@ public class OpenAiClient implements AiClient {
ChatMessage chatMessage = chatCompletionChoice.getMessage();
// TODO investigate mapping of additional metadata/runtime info to the
// general model.
- Generation generation = new Generation(chatMessage.getContent());
+ Generation generation = new Generation(chatMessage.getContent(), Map.of("role", chatMessage.getRole()));
generations.add(generation);
}
return new AiResponse(generations);