From 583d2c798934d8cec4dc2ed1a0bf58cfb2d85be1 Mon Sep 17 00:00:00 2001 From: Mark Pollack Date: Thu, 16 May 2024 15:51:34 +0200 Subject: [PATCH] WIP --- .../ai/openai/chat/OpenAiChatClientSpecIT.java | 16 ++++++++++------ .../ai/chat/DefaultChatSpecLambda.java | 11 ++++++----- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientSpecIT.java b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientSpecIT.java index 91e318af6..d2728427d 100644 --- a/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientSpecIT.java +++ b/models/spring-ai-openai/src/test/java/org/springframework/ai/openai/chat/OpenAiChatClientSpecIT.java @@ -6,6 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ai.chat.ChatClient; import org.springframework.ai.chat.FluentChatClient; +import org.springframework.ai.chat.FluentChatClientLambda; import org.springframework.ai.openai.OpenAiTestConfiguration; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -40,12 +41,15 @@ public class OpenAiChatClientSpecIT { .execute(); -// ActorsFilmsRecord actorsFilms = new FluentChatClient().chat( -// chatSpec -> chatSpec -// .user(userSpec -> userSpec.text("Generate the filmography of 5 movies for {actor}.", -// textSpec -> textSpec.param("actor", "Tom Hanks")) -// ) -// .execute()); + ActorsFilmsRecord actorsFilms = new FluentChatClientLambda(chatClient).chat( + chatSpec -> chatSpec + .user(userSpec -> { + userSpec.text("Generate the filmography of 5 movies for {actor}.", + textSpec -> textSpec.param("actor", "Tom Hanks") ); + userSpec.media() + } + ) + .execute()); // ActorsFilmsRecord actorsFilms = new FluentChatClient().chat(chatSpec -> // chatSpec.user(userSpec -> diff --git a/spring-ai-core/src/main/java/org/springframework/ai/chat/DefaultChatSpecLambda.java b/spring-ai-core/src/main/java/org/springframework/ai/chat/DefaultChatSpecLambda.java index 96c04bb0e..8b4292407 100644 --- a/spring-ai-core/src/main/java/org/springframework/ai/chat/DefaultChatSpecLambda.java +++ b/spring-ai-core/src/main/java/org/springframework/ai/chat/DefaultChatSpecLambda.java @@ -26,16 +26,17 @@ public class DefaultChatSpecLambda implements FluentChatClientLambda.ChatSpec { this.chatClient = chatClient; } - @Override - public FluentChatClientLambda.ChatUserSpec user() { - return new DefaultChatUserSpec(this); - } - public void addUser(String userText, Map textParameters) { this.userText = userText; this.textParameters.putAll(textParameters); } + @Override + public FluentChatClientLambda.ChatUserSpec user(Consumer chatUserSpecConsumer) { + // lord help us! + return null; + } + public T execute(T... varargsOfT) { Assert.state(varargsOfT.length == 0, "you should not provide any values for T!");