Fix Bedrock Anthropic line separator handling on Windows
Resolves an issue where Bedrock Anthropic failed to handle line separators properly on Windows. Resolves #404
This commit is contained in:
@@ -37,11 +37,18 @@ public class MessageToPromptConverter {
|
||||
|
||||
private String assistantPrompt = ASSISTANT_PROMPT;
|
||||
|
||||
private MessageToPromptConverter() {
|
||||
private final String lineSeparator;
|
||||
|
||||
private MessageToPromptConverter(String lineSeparator) {
|
||||
this.lineSeparator = lineSeparator;
|
||||
}
|
||||
|
||||
public static MessageToPromptConverter create() {
|
||||
return new MessageToPromptConverter();
|
||||
return create(System.lineSeparator());
|
||||
}
|
||||
|
||||
public static MessageToPromptConverter create(String lineSeparator) {
|
||||
return new MessageToPromptConverter(lineSeparator);
|
||||
}
|
||||
|
||||
public MessageToPromptConverter withHumanPrompt(String humanPrompt) {
|
||||
@@ -67,8 +74,9 @@ public class MessageToPromptConverter {
|
||||
.map(this::messageToString)
|
||||
.collect(Collectors.joining(System.lineSeparator()));
|
||||
|
||||
final String prompt = systemMessages + System.lineSeparator() + System.lineSeparator() + userMessages
|
||||
+ System.lineSeparator() + ASSISTANT_PROMPT;
|
||||
// Related to: https://github.com/spring-projects/spring-ai/issues/404
|
||||
final String prompt = systemMessages + this.lineSeparator + this.lineSeparator + userMessages
|
||||
+ this.lineSeparator + ASSISTANT_PROMPT;
|
||||
|
||||
return prompt;
|
||||
}
|
||||
|
||||
@@ -93,7 +93,8 @@ public class BedrockAnthropicChatClient implements ChatClient, StreamingChatClie
|
||||
*/
|
||||
AnthropicChatRequest createRequest(Prompt prompt) {
|
||||
|
||||
final String promptValue = MessageToPromptConverter.create().toPrompt(prompt.getInstructions());
|
||||
// Related to: https://github.com/spring-projects/spring-ai/issues/404
|
||||
final String promptValue = MessageToPromptConverter.create("\n").toPrompt(prompt.getInstructions());
|
||||
|
||||
AnthropicChatRequest request = AnthropicChatRequest.builder(promptValue).build();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user