Make ChatClient and Advisor APIs more robust - Part 1
- Introduce “ChatClientRequest” and “ChatClientResponse” for propagating requests/responses in a ChatClient advisor chain. - Structure a Prompt at the beginning of the chain, to ensure a consistent view across execution chain and observations. Any template is rendered at the beginning so that every advisor doesn’t have to do it again. - Improve observations to include the complete view of the prompt messages, instead of only considering userText and systemText. - Remove legacy “around” advisor type concept. - Keep backward compatibility for AdvisedRequest, AdvisedResponse, and legacy Advisor APIs. Relates to gh-2655 Signed-off-by: Thomas Vitale <ThomasVitale@users.noreply.github.com>
This commit is contained in:
committed by
Christian Tzolov
parent
593083980b
commit
1f59ccadad
@@ -43,6 +43,7 @@ import org.springframework.ai.openai.api.OpenAiApi;
|
||||
import org.springframework.ai.openai.api.OpenAiApi.ChatCompletionRequest.AudioParameters;
|
||||
import org.springframework.ai.openai.api.tool.MockWeatherService;
|
||||
import org.springframework.ai.openai.testutils.AbstractIT;
|
||||
import org.springframework.ai.test.CurlyBracketEscaper;
|
||||
import org.springframework.ai.tool.function.FunctionToolCallback;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
@@ -220,7 +221,7 @@ class OpenAiChatClientIT extends AbstractIT {
|
||||
.user(u -> u
|
||||
.text("Generate the filmography of 5 movies for Tom Hanks. " + System.lineSeparator()
|
||||
+ "{format}")
|
||||
.param("format", outputConverter.getFormat()))
|
||||
.param("format", CurlyBracketEscaper.escapeCurlyBrackets(outputConverter.getFormat())))
|
||||
.stream()
|
||||
.chatResponse();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user