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 @@ -226,7 +226,7 @@ private void buildAndFlush() {
if (!this.currentParagraphs.isEmpty()) {
String content = String.join("", this.currentParagraphs);

Document.Builder builder = this.currentDocumentBuilder.content(content);
Document.Builder builder = this.currentDocumentBuilder.text(content);

this.config.additionalMetadata.forEach(builder::metadata);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ ChatCompletionRequest createRequest(Prompt prompt, boolean stream) {
.filter(message -> message.getMessageType() != MessageType.SYSTEM)
.map(message -> {
if (message.getMessageType() == MessageType.USER) {
List<ContentBlock> contents = new ArrayList<>(List.of(new ContentBlock(message.getContent())));
List<ContentBlock> contents = new ArrayList<>(List.of(new ContentBlock(message.getText())));
if (message instanceof UserMessage userMessage) {
if (!CollectionUtils.isEmpty(userMessage.getMedia())) {
List<ContentBlock> mediaContent = userMessage.getMedia().stream().map(media -> {
Expand All @@ -395,8 +395,8 @@ ChatCompletionRequest createRequest(Prompt prompt, boolean stream) {
else if (message.getMessageType() == MessageType.ASSISTANT) {
AssistantMessage assistantMessage = (AssistantMessage) message;
List<ContentBlock> contentBlocks = new ArrayList<>();
if (StringUtils.hasText(message.getContent())) {
contentBlocks.add(new ContentBlock(message.getContent()));
if (StringUtils.hasText(message.getText())) {
contentBlocks.add(new ContentBlock(message.getText()));
}
if (!CollectionUtils.isEmpty(assistantMessage.getToolCalls())) {
for (AssistantMessage.ToolCall toolCall : assistantMessage.getToolCalls()) {
Expand All @@ -423,7 +423,7 @@ else if (message.getMessageType() == MessageType.TOOL) {
String systemPrompt = prompt.getInstructions()
.stream()
.filter(m -> m.getMessageType() == MessageType.SYSTEM)
.map(m -> m.getContent())
.map(m -> m.getText())
.collect(Collectors.joining(System.lineSeparator()));

ChatCompletionRequest request = new ChatCompletionRequest(this.defaultOptions.getModel(), userMessages,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ void roleTest(String modelName) {
.isEqualTo(response.getMetadata().getUsage().getPromptTokens()
+ response.getMetadata().getUsage().getGenerationTokens());
Generation generation = response.getResults().get(0);
assertThat(generation.getOutput().getContent()).contains("Blackbeard");
assertThat(generation.getOutput().getText()).contains("Blackbeard");
assertThat(generation.getMetadata().getFinishReason()).isEqualTo("end_turn");
logger.info(response.toString());
}
Expand All @@ -120,13 +120,13 @@ void testMessageHistory() {
AnthropicChatOptions.builder().withModel("claude-3-sonnet-20240229").build());

ChatResponse response = this.chatModel.call(prompt);
assertThat(response.getResult().getOutput().getContent()).containsAnyOf("Blackbeard", "Bartholomew");
assertThat(response.getResult().getOutput().getText()).containsAnyOf("Blackbeard", "Bartholomew");

var promptWithMessageHistory = new Prompt(List.of(new UserMessage("Dummy"), response.getResult().getOutput(),
new UserMessage("Repeat the last assistant message.")));
response = this.chatModel.call(promptWithMessageHistory);

assertThat(response.getResult().getOutput().getContent()).containsAnyOf("Blackbeard", "Bartholomew");
assertThat(response.getResult().getOutput().getText()).containsAnyOf("Blackbeard", "Bartholomew");
}

@Test
Expand Down Expand Up @@ -162,7 +162,7 @@ void listOutputConverter() {
Prompt prompt = new Prompt(promptTemplate.createMessage());
Generation generation = this.chatModel.call(prompt).getResult();

List<String> list = listOutputConverter.convert(generation.getOutput().getContent());
List<String> list = listOutputConverter.convert(generation.getOutput().getText());
assertThat(list).hasSize(5);
}

Expand All @@ -180,7 +180,7 @@ void mapOutputConverter() {
Prompt prompt = new Prompt(promptTemplate.createMessage());
Generation generation = this.chatModel.call(prompt).getResult();

Map<String, Object> result = mapOutputConverter.convert(generation.getOutput().getContent());
Map<String, Object> result = mapOutputConverter.convert(generation.getOutput().getText());
assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9));

}
Expand All @@ -199,7 +199,7 @@ void beanOutputConverterRecords() {
Prompt prompt = new Prompt(promptTemplate.createMessage());
Generation generation = this.chatModel.call(prompt).getResult();

ActorsFilmsRecord actorsFilms = beanOutputConverter.convert(generation.getOutput().getContent());
ActorsFilmsRecord actorsFilms = beanOutputConverter.convert(generation.getOutput().getText());
logger.info("" + actorsFilms);
assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks");
assertThat(actorsFilms.movies()).hasSize(5);
Expand All @@ -225,7 +225,7 @@ void beanStreamOutputConverterRecords() {
.map(ChatResponse::getResults)
.flatMap(List::stream)
.map(Generation::getOutput)
.map(AssistantMessage::getContent)
.map(AssistantMessage::getText)
.collect(Collectors.joining());

ActorsFilmsRecord actorsFilms = beanOutputConverter.convert(generationTextFromStream);
Expand All @@ -244,8 +244,8 @@ void multiModalityTest() throws IOException {

var response = this.chatModel.call(new Prompt(List.of(userMessage)));

logger.info(response.getResult().getOutput().getContent());
assertThat(response.getResult().getOutput().getContent()).contains("banan", "apple", "basket");
logger.info(response.getResult().getOutput().getText());
assertThat(response.getResult().getOutput().getText()).contains("banan", "apple", "basket");
}

@Test
Expand All @@ -262,7 +262,7 @@ void multiModalityPdfTest() throws IOException {
.withModel(AnthropicApi.ChatModel.CLAUDE_3_5_SONNET.getName())
.build()));

assertThat(response.getResult().getOutput().getContent()).containsAnyOf("Spring AI", "portable API");
assertThat(response.getResult().getOutput().getText()).containsAnyOf("Spring AI", "portable API");
}

@Test
Expand All @@ -288,7 +288,7 @@ void functionCallTest() {
logger.info("Response: {}", response);

Generation generation = response.getResult();
assertThat(generation.getOutput().getContent()).contains("30", "10", "15");
assertThat(generation.getOutput().getText()).contains("30", "10", "15");
}

@Test
Expand Down Expand Up @@ -317,7 +317,7 @@ void streamFunctionCallTest() {
.block()
.stream()
.filter(cr -> cr.getResult() != null)
.map(cr -> cr.getResult().getOutput().getContent())
.map(cr -> cr.getResult().getOutput().getText())
.collect(Collectors.joining());

logger.info("Response: {}", content);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ void observationForChatOperation() {
Prompt prompt = new Prompt("Why does a raven look like a desk?", options);

ChatResponse chatResponse = this.chatModel.call(prompt);
assertThat(chatResponse.getResult().getOutput().getContent()).isNotEmpty();
assertThat(chatResponse.getResult().getOutput().getText()).isNotEmpty();

ChatResponseMetadata responseMetadata = chatResponse.getMetadata();
assertThat(responseMetadata).isNotNull();
Expand Down Expand Up @@ -109,7 +109,7 @@ void observationForStreamingChatOperation() {
String aggregatedResponse = responses.subList(0, responses.size() - 1)
.stream()
.filter(r -> r.getResult() != null)
.map(r -> r.getResult().getOutput().getContent())
.map(r -> r.getResult().getOutput().getText())
.collect(Collectors.joining());
assertThat(aggregatedResponse).isNotEmpty();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ void call() {

logger.info("" + response);
assertThat(response.getResults()).hasSize(1);
assertThat(response.getResults().get(0).getOutput().getContent()).contains("Blackbeard");
assertThat(response.getResults().get(0).getOutput().getText()).contains("Blackbeard");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,7 @@ private List<ChatRequestMessage> fromSpringAiMessage(Message message) {
case USER:
// https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/openai/azure-ai-openai/README.md#text-completions-with-images
List<ChatMessageContentItem> items = new ArrayList<>();
items.add(new ChatMessageTextContentItem(message.getContent()));
items.add(new ChatMessageTextContentItem(message.getText()));
if (message instanceof UserMessage userMessage) {
if (!CollectionUtils.isEmpty(userMessage.getMedia())) {
items.addAll(userMessage.getMedia()
Expand All @@ -413,7 +413,7 @@ private List<ChatRequestMessage> fromSpringAiMessage(Message message) {
}
return List.of(new ChatRequestUserMessage(items));
case SYSTEM:
return List.of(new ChatRequestSystemMessage(message.getContent()));
return List.of(new ChatRequestSystemMessage(message.getText()));
case ASSISTANT:
AssistantMessage assistantMessage = (AssistantMessage) message;
List<ChatCompletionsToolCall> toolCalls = null;
Expand All @@ -425,7 +425,7 @@ private List<ChatRequestMessage> fromSpringAiMessage(Message message) {
.map(tc -> ((ChatCompletionsToolCall) tc)) // !!!
.toList();
}
var azureAssistantMessage = new ChatRequestAssistantMessage(message.getContent());
var azureAssistantMessage = new ChatRequestAssistantMessage(message.getText());
azureAssistantMessage.setToolCalls(toolCalls);
return List.of(azureAssistantMessage);
case TOOL:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ void call() {
// @formatter:on

assertThat(response.getResults()).hasSize(1);
assertThat(response.getResults().get(0).getOutput().getContent()).contains("Blackbeard");
assertThat(response.getResults().get(0).getOutput().getText()).contains("Blackbeard");
}

@Test
Expand All @@ -94,7 +94,7 @@ void beanStreamOutputConverterRecords() {

String generationTextFromStream = chatResponses
.stream()
.map(cr -> cr.getResult().getOutput().getContent())
.map(cr -> cr.getResult().getOutput().getText())
.collect(Collectors.joining());
// @formatter:on

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ void roleTest() {

Prompt prompt = new Prompt(List.of(userMessage, systemMessage));
ChatResponse response = this.chatModel.call(prompt);
assertThat(response.getResult().getOutput().getContent()).contains("Blackbeard");
assertThat(response.getResult().getOutput().getText()).contains("Blackbeard");
}

@Test
Expand All @@ -96,14 +96,14 @@ void testMessageHistory() {
Prompt prompt = new Prompt(List.of(userMessage, systemMessage));

ChatResponse response = this.chatModel.call(prompt);
assertThat(response.getResult().getOutput().getContent()).containsAnyOf("Blackbeard");
assertThat(response.getResult().getOutput().getText()).containsAnyOf("Blackbeard");

var promptWithMessageHistory = new Prompt(List.of(new UserMessage("Dummy"), response.getResult().getOutput(),
new UserMessage("Repeat the last assistant message.")));
response = this.chatModel.call(promptWithMessageHistory);

System.out.println(response.getResult().getOutput().getContent());
assertThat(response.getResult().getOutput().getContent()).containsAnyOf("Blackbeard");
System.out.println(response.getResult().getOutput().getText());
assertThat(response.getResult().getOutput().getText()).containsAnyOf("Blackbeard");
}

@Test
Expand All @@ -121,7 +121,7 @@ void listOutputConverter() {
Prompt prompt = new Prompt(promptTemplate.createMessage());
Generation generation = this.chatModel.call(prompt).getResult();

List<String> list = outputConverter.convert(generation.getOutput().getContent());
List<String> list = outputConverter.convert(generation.getOutput().getText());
assertThat(list).hasSize(5);

}
Expand All @@ -140,7 +140,7 @@ void mapOutputConverter() {
Prompt prompt = new Prompt(promptTemplate.createMessage());
Generation generation = this.chatModel.call(prompt).getResult();

Map<String, Object> result = outputConverter.convert(generation.getOutput().getContent());
Map<String, Object> result = outputConverter.convert(generation.getOutput().getText());
assertThat(result.get("numbers")).isEqualTo(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9));

}
Expand All @@ -159,7 +159,7 @@ void beanOutputConverter() {
Prompt prompt = new Prompt(promptTemplate.createMessage());
Generation generation = this.chatModel.call(prompt).getResult();

ActorsFilms actorsFilms = outputConverter.convert(generation.getOutput().getContent());
ActorsFilms actorsFilms = outputConverter.convert(generation.getOutput().getText());
assertThat(actorsFilms.actor()).isNotNull();
}

Expand All @@ -177,7 +177,7 @@ void beanOutputConverterRecords() {
Prompt prompt = new Prompt(promptTemplate.createMessage());
Generation generation = this.chatModel.call(prompt).getResult();

ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getContent());
ActorsFilmsRecord actorsFilms = outputConverter.convert(generation.getOutput().getText());
logger.info("" + actorsFilms);
assertThat(actorsFilms.actor()).isEqualTo("Tom Hanks");
assertThat(actorsFilms.movies()).hasSize(5);
Expand All @@ -203,7 +203,7 @@ void beanStreamOutputConverterRecords() {
.map(ChatResponse::getResults)
.flatMap(List::stream)
.map(Generation::getOutput)
.map(AssistantMessage::getContent)
.map(AssistantMessage::getText)
.filter(Objects::nonNull)
.collect(Collectors.joining());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ void observationForImperativeChatOperation() {
Prompt prompt = new Prompt("Why does a raven look like a desk?", options);

ChatResponse chatResponse = this.chatModel.call(prompt);
assertThat(chatResponse.getResult().getOutput().getContent()).isNotEmpty();
assertThat(chatResponse.getResult().getOutput().getText()).isNotEmpty();

ChatResponseMetadata responseMetadata = chatResponse.getMetadata();
assertThat(responseMetadata).isNotNull();
Expand Down Expand Up @@ -106,7 +106,7 @@ void observationForStreamingChatOperation() {

String aggregatedResponse = responses.subList(0, responses.size() - 1)
.stream()
.map(r -> r.getResult().getOutput().getContent())
.map(r -> r.getResult().getOutput().getText())
.collect(Collectors.joining());
assertThat(aggregatedResponse).isNotEmpty();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ void functionCallTest() {

logger.info("Response: {}", response);

assertThat(response.getResult().getOutput().getContent()).contains("30", "10", "15");
assertThat(response.getResult().getOutput().getText()).contains("30", "10", "15");
}

@Test
Expand All @@ -104,7 +104,7 @@ void functionCallSequentialTest() {

logger.info("Response: {}", response);

assertThat(response.getResult().getOutput().getContent()).contains("30", "10", "15");
assertThat(response.getResult().getOutput().getText()).contains("30", "10", "15");
}

@Test
Expand Down Expand Up @@ -132,7 +132,7 @@ void streamFunctionCallTest() {
.map(ChatResponse::getResults)
.flatMap(List::stream)
.map(Generation::getOutput)
.map(AssistantMessage::getContent)
.map(AssistantMessage::getText)
.collect(Collectors.joining());
logger.info("Response: {}", content);

Expand Down Expand Up @@ -169,7 +169,7 @@ void functionCallSequentialAndStreamTest() {
.map(ChatResponse::getResults)
.flatMap(List::stream)
.map(Generation::getOutput)
.map(AssistantMessage::getContent)
.map(AssistantMessage::getText)
.filter(Objects::nonNull)
.collect(Collectors.joining());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ void azureOpenAiMetadataCapturedDuringGeneration() {

assertThat(generation).isNotNull()
.extracting(Generation::getOutput)
.extracting(AssistantMessage::getContent)
.extracting(AssistantMessage::getText)
.isEqualTo("No! You will actually land with a resounding thud. This is the way!");

// assertPromptMetadata(response);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -249,7 +249,7 @@ ConverseRequest createRequest(Prompt prompt) {
List<ContentBlock> contents = new ArrayList<>();
if (message instanceof UserMessage) {
var userMessage = (UserMessage) message;
contents.add(ContentBlock.fromText(userMessage.getContent()));
contents.add(ContentBlock.fromText(userMessage.getText()));

if (!CollectionUtils.isEmpty(userMessage.getMedia())) {
List<ContentBlock> mediaContent = userMessage.getMedia().stream().map(media -> {
Expand All @@ -268,8 +268,8 @@ ConverseRequest createRequest(Prompt prompt) {
else if (message.getMessageType() == MessageType.ASSISTANT) {
AssistantMessage assistantMessage = (AssistantMessage) message;
List<ContentBlock> contentBlocks = new ArrayList<>();
if (StringUtils.hasText(message.getContent())) {
contentBlocks.add(ContentBlock.fromText(message.getContent()));
if (StringUtils.hasText(message.getText())) {
contentBlocks.add(ContentBlock.fromText(message.getText()));
}
if (!CollectionUtils.isEmpty(assistantMessage.getToolCalls())) {
for (AssistantMessage.ToolCall toolCall : assistantMessage.getToolCalls()) {
Expand Down Expand Up @@ -309,7 +309,7 @@ else if (message.getMessageType() == MessageType.TOOL) {
List<SystemContentBlock> systemMessages = prompt.getInstructions()
.stream()
.filter(m -> m.getMessageType() == MessageType.SYSTEM)
.map(sysMessage -> SystemContentBlock.builder().text(sysMessage.getContent()).build())
.map(sysMessage -> SystemContentBlock.builder().text(sysMessage.getText()).build())
.toList();

FunctionCallingOptions updatedRuntimeOptions = (FunctionCallingOptions) this.defaultOptions.copy();
Expand Down
Loading
Loading