Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
import org.springframework.ai.chat.messages.MessageType;
import org.springframework.ai.chat.messages.ToolResponseMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.ChatResponseMetadata;
import org.springframework.ai.chat.model.AbstractToolCallSupport;
import org.springframework.ai.chat.model.ChatModel;
Expand Down Expand Up @@ -293,14 +293,14 @@ private ChatResponse toChatResponse(ChatCompletionResponse chatCompletion) {
.stream()
.filter(content -> content.type() != ContentBlock.Type.TOOL_USE)
.map(content -> new Generation(new AssistantMessage(content.text(), Map.of()),
ChatGenerationMetadata.builder().finishReason(chatCompletion.stopReason()).build()))
GenerationMetadata.builder().finishReason(chatCompletion.stopReason()).build()))
.toList();

List<Generation> allGenerations = new ArrayList<>(generations);

if (chatCompletion.stopReason() != null && generations.isEmpty()) {
Generation generation = new Generation(new AssistantMessage(null, Map.of()),
ChatGenerationMetadata.builder().finishReason(chatCompletion.stopReason()).build());
GenerationMetadata.builder().finishReason(chatCompletion.stopReason()).build());
allGenerations.add(generation);
}

Expand All @@ -324,7 +324,7 @@ private ChatResponse toChatResponse(ChatCompletionResponse chatCompletion) {

AssistantMessage assistantMessage = new AssistantMessage("", Map.of(), toolCalls);
Generation toolCallGeneration = new Generation(assistantMessage,
ChatGenerationMetadata.builder().finishReason(chatCompletion.stopReason()).build());
GenerationMetadata.builder().finishReason(chatCompletion.stopReason()).build());
allGenerations.add(toolCallGeneration);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.ToolResponseMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.ChatResponseMetadata;
import org.springframework.ai.chat.metadata.EmptyUsage;
import org.springframework.ai.chat.metadata.PromptMetadata;
Expand Down Expand Up @@ -458,8 +458,8 @@ else if (data instanceof byte[] dataBytes) {
}
}

private ChatGenerationMetadata generateChoiceMetadata(ChatChoice choice) {
return ChatGenerationMetadata.builder()
private GenerationMetadata generateChoiceMetadata(ChatChoice choice) {
return GenerationMetadata.builder()
.finishReason(String.valueOf(choice.getFinishReason()))
.metadata("contentFilterResults", choice.getContentFilterResults())
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import org.springframework.ai.azure.openai.AzureOpenAiChatModel;
import org.springframework.ai.azure.openai.MockAzureOpenAiTestConfiguration;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.ChatResponseMetadata;
import org.springframework.ai.chat.metadata.EmptyRateLimit;
import org.springframework.ai.chat.metadata.PromptMetadata;
Expand Down Expand Up @@ -124,11 +124,11 @@ private void assertGenerationMetadata(ChatResponse response) {

private void assertChoiceMetadata(Generation generation) {

ChatGenerationMetadata chatGenerationMetadata = generation.getMetadata();
GenerationMetadata generationMetadata = generation.getMetadata();

assertThat(chatGenerationMetadata).isNotNull();
assertThat(chatGenerationMetadata.getFinishReason()).isEqualTo("stop");
assertContentFilterResults(chatGenerationMetadata.get("contentFilterResults"));
assertThat(generationMetadata).isNotNull();
assertThat(generationMetadata.getFinishReason()).isEqualTo("stop");
assertContentFilterResults(generationMetadata.get("contentFilterResults"));
}

private void assertContentFilterResultsForPrompt(ContentFilterResultDetailsForPrompt contentFilterResultForPrompt,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
import org.springframework.ai.chat.messages.MessageType;
import org.springframework.ai.chat.messages.ToolResponseMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.ChatResponseMetadata;
import org.springframework.ai.chat.metadata.DefaultUsage;
import org.springframework.ai.chat.model.AbstractToolCallSupport;
Expand Down Expand Up @@ -419,14 +419,14 @@ private ChatResponse toChatResponse(ConverseResponse response, ChatResponse perv
.stream()
.filter(content -> content.type() != ContentBlock.Type.TOOL_USE)
.map(content -> new Generation(new AssistantMessage(content.text(), Map.of()),
ChatGenerationMetadata.builder().finishReason(response.stopReasonAsString()).build()))
GenerationMetadata.builder().finishReason(response.stopReasonAsString()).build()))
.toList();

List<Generation> allGenerations = new ArrayList<>(generations);

if (response.stopReasonAsString() != null && generations.isEmpty()) {
Generation generation = new Generation(new AssistantMessage(null, Map.of()),
ChatGenerationMetadata.builder().finishReason(response.stopReasonAsString()).build());
GenerationMetadata.builder().finishReason(response.stopReasonAsString()).build());
allGenerations.add(generation);
}

Expand All @@ -451,7 +451,7 @@ private ChatResponse toChatResponse(ConverseResponse response, ChatResponse perv

AssistantMessage assistantMessage = new AssistantMessage("", Map.of(), toolCalls);
Generation toolCallGeneration = new Generation(assistantMessage,
ChatGenerationMetadata.builder().finishReason(response.stopReasonAsString()).build());
GenerationMetadata.builder().finishReason(response.stopReasonAsString()).build());
allGenerations.add(toolCallGeneration);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
import software.amazon.awssdk.services.bedrockruntime.model.ToolUseBlockStart;

import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.ChatResponseMetadata;
import org.springframework.ai.chat.metadata.DefaultUsage;
import org.springframework.ai.chat.model.ChatResponse;
Expand Down Expand Up @@ -141,7 +141,7 @@ public static Flux<ChatResponse> toChatResponse(Flux<ConverseStreamOutput> respo

AssistantMessage assistantMessage = new AssistantMessage("", Map.of(), toolCalls);
Generation toolCallGeneration = new Generation(assistantMessage,
ChatGenerationMetadata.builder().finishReason("tool_use").build());
GenerationMetadata.builder().finishReason("tool_use").build());

var chatResponseMetaData = ChatResponseMetadata.builder()
.withUsage(new DefaultUsage(promptTokens, generationTokens, totalTokens))
Expand Down Expand Up @@ -176,7 +176,7 @@ else if (nextEvent instanceof ContentBlockDeltaEvent contentBlockDeltaEvent) {

var generation = new Generation(
new AssistantMessage(contentBlockDeltaEvent.delta().text(), Map.of()),
ChatGenerationMetadata.builder()
GenerationMetadata.builder()
.finishReason(lastAggregation.metadataAggregation().stopReason())
.build());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatRequest;
import org.springframework.ai.bedrock.anthropic.api.AnthropicChatBedrockApi.AnthropicChatResponse;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.model.Generation;
Expand Down Expand Up @@ -81,15 +81,15 @@ public Flux<ChatResponse> stream(Prompt prompt) {

return fluxResponse.map(response -> {
String stopReason = response.stopReason() != null ? response.stopReason() : null;
ChatGenerationMetadata chatGenerationMetadata = null;
GenerationMetadata generationMetadata = null;
if (response.amazonBedrockInvocationMetrics() != null) {
chatGenerationMetadata = ChatGenerationMetadata.builder()
generationMetadata = GenerationMetadata.builder()
.finishReason(stopReason)
.metadata("metrics", response.amazonBedrockInvocationMetrics())
.build();
}
return new ChatResponse(
List.of(new Generation(new AssistantMessage(response.completion()), chatGenerationMetadata)));
List.of(new Generation(new AssistantMessage(response.completion()), generationMetadata)));
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.MessageType;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.ChatResponseMetadata;
import org.springframework.ai.chat.metadata.DefaultUsage;
import org.springframework.ai.chat.metadata.Usage;
Expand Down Expand Up @@ -88,7 +88,7 @@ public ChatResponse call(Prompt prompt) {
List<Generation> generations = response.content()
.stream()
.map(content -> new Generation(new AssistantMessage(content.text()),
ChatGenerationMetadata.builder().finishReason(response.stopReason()).build()))
GenerationMetadata.builder().finishReason(response.stopReason()).build()))
.toList();

ChatResponseMetadata metadata = ChatResponseMetadata.builder()
Expand All @@ -114,16 +114,16 @@ public Flux<ChatResponse> stream(Prompt prompt) {
inputTokens.set(response.message().usage().inputTokens());
}
String content = response.type() == StreamingType.CONTENT_BLOCK_DELTA ? response.delta().text() : "";
ChatGenerationMetadata chatGenerationMetadata = null;
GenerationMetadata generationMetadata = null;
if (response.type() == StreamingType.MESSAGE_DELTA) {
chatGenerationMetadata = ChatGenerationMetadata.builder()
generationMetadata = GenerationMetadata.builder()
.finishReason(response.delta().stopReason())
.metadata("usage",
new Anthropic3ChatBedrockApi.AnthropicUsage(inputTokens.get(),
response.usage().outputTokens()))
.build();
}
return new ChatResponse(List.of(new Generation(new AssistantMessage(content), chatGenerationMetadata)));
return new ChatResponse(List.of(new Generation(new AssistantMessage(content), generationMetadata)));
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatRequest;
import org.springframework.ai.bedrock.cohere.api.CohereChatBedrockApi.CohereChatResponse;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.Usage;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.model.ChatResponse;
Expand Down Expand Up @@ -79,7 +79,7 @@ public Flux<ChatResponse> stream(Prompt prompt) {
String finishReason = g.finishReason().name();
Usage usage = BedrockUsage.from(g.amazonBedrockInvocationMetrics());
return new ChatResponse(List.of(new Generation(new AssistantMessage(""),
ChatGenerationMetadata.builder().finishReason(finishReason).metadata("usage", usage).build())));
GenerationMetadata.builder().finishReason(finishReason).metadata("usage", usage).build())));
}
return new ChatResponse(List.of(new Generation(new AssistantMessage(g.text()))));
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi;
import org.springframework.ai.bedrock.jurassic2.api.Ai21Jurassic2ChatBedrockApi.Ai21Jurassic2ChatRequest;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.model.Generation;
Expand Down Expand Up @@ -70,7 +70,7 @@ public ChatResponse call(Prompt prompt) {
return new ChatResponse(response.completions()
.stream()
.map(completion -> new Generation(new AssistantMessage(completion.data().text()),
ChatGenerationMetadata.builder().finishReason(completion.finishReason().reason()).build()))
GenerationMetadata.builder().finishReason(completion.finishReason().reason()).build()))
.toList());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import org.springframework.ai.bedrock.llama.api.LlamaChatBedrockApi.LlamaChatRequest;
import org.springframework.ai.bedrock.llama.api.LlamaChatBedrockApi.LlamaChatResponse;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.Usage;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.model.ChatResponse;
Expand Down Expand Up @@ -70,7 +70,7 @@ public ChatResponse call(Prompt prompt) {
LlamaChatResponse response = this.chatApi.chatCompletion(request);

return new ChatResponse(List.of(new Generation(new AssistantMessage(response.generation()),
ChatGenerationMetadata.builder()
GenerationMetadata.builder()
.finishReason(response.stopReason().name())
.metadata("usage", extractUsage(response))
.build())));
Expand All @@ -86,7 +86,7 @@ public Flux<ChatResponse> stream(Prompt prompt) {
return fluxResponse.map(response -> {
String stopReason = response.stopReason() != null ? response.stopReason().name() : null;
return new ChatResponse(List.of(new Generation(new AssistantMessage(response.generation()),
ChatGenerationMetadata.builder()
GenerationMetadata.builder()
.finishReason(stopReason)
.metadata("usage", extractUsage(response))
.build())));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponse;
import org.springframework.ai.bedrock.titan.api.TitanChatBedrockApi.TitanChatResponseChunk;
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.Usage;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.model.ChatResponse;
Expand Down Expand Up @@ -75,23 +75,23 @@ public ChatResponse call(Prompt prompt) {
@Override
public Flux<ChatResponse> stream(Prompt prompt) {
return this.chatApi.chatCompletionStream(this.createRequest(prompt)).map(chunk -> {
ChatGenerationMetadata chatGenerationMetadata = null;
GenerationMetadata generationMetadata = null;
if (chunk.amazonBedrockInvocationMetrics() != null) {
String completionReason = chunk.completionReason().name();
chatGenerationMetadata = ChatGenerationMetadata.builder()
generationMetadata = GenerationMetadata.builder()
.finishReason(completionReason)
.metadata("usage", chunk.amazonBedrockInvocationMetrics())
.build();
}
else if (chunk.inputTextTokenCount() != null && chunk.totalOutputTextTokenCount() != null) {
String completionReason = chunk.completionReason().name();
chatGenerationMetadata = ChatGenerationMetadata.builder()
generationMetadata = GenerationMetadata.builder()
.finishReason(completionReason)
.metadata("usage", extractUsage(chunk))
.build();
}
return new ChatResponse(
List.of(new Generation(new AssistantMessage(chunk.outputText()), chatGenerationMetadata)));
List.of(new Generation(new AssistantMessage(chunk.outputText()), generationMetadata)));
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.MessageType;
import org.springframework.ai.chat.messages.ToolResponseMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.ChatResponseMetadata;
import org.springframework.ai.chat.metadata.EmptyUsage;
import org.springframework.ai.chat.model.AbstractToolCallSupport;
Expand Down Expand Up @@ -205,7 +205,7 @@ private static Generation buildGeneration(Choice choice, Map<String, Object> met
});
var assistantMessage = new AssistantMessage(choice.message().content(), metadata, toolCalls);
String finishReason = (choice.finishReason() != null ? choice.finishReason().name() : "");
var generationMetadata = ChatGenerationMetadata.builder().finishReason(finishReason).build();
var generationMetadata = GenerationMetadata.builder().finishReason(finishReason).build();
return new Generation(assistantMessage, generationMetadata);
}

Expand Down Expand Up @@ -410,7 +410,7 @@ private Generation buildGeneration(ChatCompletionMessage message, ChatCompletion

var assistantMessage = new AssistantMessage(message.content(), metadata, toolCalls);
String finishReason = (completionFinishReason != null ? completionFinishReason.name() : "");
var generationMetadata = ChatGenerationMetadata.builder().finishReason(finishReason).build();
var generationMetadata = GenerationMetadata.builder().finishReason(finishReason).build();
return new Generation(assistantMessage, generationMetadata);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.ToolResponseMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.ChatResponseMetadata;
import org.springframework.ai.chat.model.AbstractToolCallSupport;
import org.springframework.ai.chat.model.ChatModel;
Expand Down Expand Up @@ -304,7 +304,7 @@ private Generation buildGeneration(Choice choice, Map<String, Object> metadata)

var assistantMessage = new AssistantMessage(choice.message().content(), metadata, toolCalls);
String finishReason = (choice.finishReason() != null ? choice.finishReason().name() : "");
var generationMetadata = ChatGenerationMetadata.builder().finishReason(finishReason).build();
var generationMetadata = GenerationMetadata.builder().finishReason(finishReason).build();
return new Generation(assistantMessage, generationMetadata);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
import org.springframework.ai.chat.messages.AssistantMessage;
import org.springframework.ai.chat.messages.MessageType;
import org.springframework.ai.chat.messages.ToolResponseMessage;
import org.springframework.ai.chat.metadata.ChatGenerationMetadata;
import org.springframework.ai.chat.metadata.GenerationMetadata;
import org.springframework.ai.chat.metadata.ChatResponseMetadata;
import org.springframework.ai.chat.metadata.EmptyUsage;
import org.springframework.ai.chat.model.AbstractToolCallSupport;
Expand Down Expand Up @@ -174,7 +174,7 @@ private static Generation buildGeneration(Choice choice, Map<String, Object> met

var assistantMessage = new AssistantMessage(choice.message().content(), metadata, toolCalls);
String finishReason = (choice.finishReason() != null ? choice.finishReason().name() : "");
var generationMetadata = ChatGenerationMetadata.builder().finishReason(finishReason).build();
var generationMetadata = GenerationMetadata.builder().finishReason(finishReason).build();
return new Generation(assistantMessage, generationMetadata);
}

Expand Down
Loading
Loading