diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/ChatClient.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/ChatClient.java index 418f532f6ef..38ba56f323c 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/ChatClient.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/ChatClient.java @@ -73,6 +73,8 @@ static Builder builder(ChatModel chatModel, ObservationRegistry observationRegis ChatClientRequestSpec prompt(); + ChatClientPromptRequestSpec prompt(String content); + ChatClientPromptRequestSpec prompt(Prompt prompt); /** diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java index c1cd2074464..db8d2760102 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/client/DefaultChatClient.java @@ -90,6 +90,11 @@ public ChatClientRequestSpec prompt() { return new DefaultChatClientRequestSpec(this.defaultChatClientRequest); } + @Override + public ChatClientPromptRequestSpec prompt(String content) { + return new DefaultChatClientPromptRequestSpec(this.chatModel, new Prompt(content)); + } + @Override public ChatClientPromptRequestSpec prompt(Prompt prompt) { return new DefaultChatClientPromptRequestSpec(this.chatModel, prompt); diff --git a/spring-ai-core/src/test/java/org/springframework/ai/chat/client/ChatClientTest.java b/spring-ai-core/src/test/java/org/springframework/ai/chat/client/ChatClientTest.java index 86bd33fa057..382f5723cfd 100644 --- a/spring-ai-core/src/test/java/org/springframework/ai/chat/client/ChatClientTest.java +++ b/spring-ai-core/src/test/java/org/springframework/ai/chat/client/ChatClientTest.java @@ -435,6 +435,19 @@ public void defaultUserText() { assertThat(userMessage.getMessageType()).isEqualTo(MessageType.USER); } + @Test + public void simpleUserPromptAsString() { + when(chatModel.call(promptCaptor.capture())) + .thenReturn(new ChatResponse(List.of(new Generation(new AssistantMessage("response"))))); + + assertThat(ChatClient.builder(chatModel).build().prompt("User prompt").call().content()) + .isEqualTo("response"); + + Message userMessage = promptCaptor.getValue().getInstructions().get(0); + assertThat(userMessage.getContent()).isEqualTo("User prompt"); + assertThat(userMessage.getMessageType()).isEqualTo(MessageType.USER); + } + @Test public void simpleUserPrompt() { when(chatModel.call(promptCaptor.capture()))