Class DefaultChatClientBuilder
- All Implemented Interfaces:
ChatClient.Builder
It provides methods to set default values for various properties of the ChatClient.
- Since:
- 1.0.0
- Author:
- Mark Pollack, Christian Tzolov, Josh Long, Arjen Poutsma, Thomas Vitale
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDefaultChatClientBuilder(ChatModel chatModel, io.micrometer.observation.ObservationRegistry observationRegistry, @Nullable ChatClientObservationConvention chatClientObservationConvention, @Nullable AdvisorObservationConvention advisorObservationConvention) Deprecated, for removal: This API element is subject to removal in a future version.DefaultChatClientBuilder(ChatModel chatModel, io.micrometer.observation.ObservationRegistry observationRegistry, @Nullable ChatClientObservationConvention chatClientObservationConvention, @Nullable AdvisorObservationConvention advisorObservationConvention, @Nullable ToolCallingAdvisor.Builder<?> toolCallingAdvisorBuilder) Creates a newDefaultChatClientBuilder. -
Method Summary
Modifier and TypeMethodDescriptionbuild()clone()defaultAdvisors(Consumer<ChatClient.AdvisorSpec> advisorSpecConsumer) defaultAdvisors(List<Advisor> advisors) defaultAdvisors(Advisor... advisors) defaultOptions(ChatOptions.Builder customizer) defaultSystem(String text) defaultSystem(Consumer<ChatClient.PromptSystemSpec> systemSpecConsumer) defaultSystem(org.springframework.core.io.Resource text) defaultSystem(org.springframework.core.io.Resource text, Charset charset) defaultTemplateRenderer(TemplateRenderer templateRenderer) defaultToolCallbacks(List<ToolCallback> toolCallbacks) Deprecated, for removal: This API element is subject to removal in a future version.defaultToolCallbacks(ToolCallback... toolCallbacks) Deprecated, for removal: This API element is subject to removal in a future version.as of 2.0.0, in favor ofdefaultTools(Object...).defaultToolCallbacks(ToolCallbackProvider... toolCallbackProviders) Deprecated, for removal: This API element is subject to removal in a future version.as of 2.0.0, in favor of#defaultTools(Consumer).defaultToolContext(Map<String, Object> toolContext) defaultTools(Object... toolObjects) Register one or more default tools that will be available to every request built from thisChatClient.Builder.defaultUser(String text) defaultUser(Consumer<ChatClient.PromptUserSpec> userSpecConsumer) defaultUser(org.springframework.core.io.Resource text) defaultUser(org.springframework.core.io.Resource text, Charset charset)
-
Field Details
-
defaultRequest
-
-
Constructor Details
-
DefaultChatClientBuilder
@Deprecated(since="2.0.0", forRemoval=true) public DefaultChatClientBuilder(ChatModel chatModel, io.micrometer.observation.ObservationRegistry observationRegistry, @Nullable ChatClientObservationConvention chatClientObservationConvention, @Nullable AdvisorObservationConvention advisorObservationConvention) Deprecated, for removal: This API element is subject to removal in a future version. -
DefaultChatClientBuilder
public DefaultChatClientBuilder(ChatModel chatModel, io.micrometer.observation.ObservationRegistry observationRegistry, @Nullable ChatClientObservationConvention chatClientObservationConvention, @Nullable AdvisorObservationConvention advisorObservationConvention, @Nullable ToolCallingAdvisor.Builder<?> toolCallingAdvisorBuilder) Creates a newDefaultChatClientBuilder.When
toolCallingAdvisorBuilderisnull, a defaultToolCallingAdvisoris created with aToolCallingManagerbacked by the suppliedobservationRegistry.When
toolCallingAdvisorBuilderis non-null it is used as-is. The caller is then responsible for configuring the builder'sToolCallingManager, including anyObservationRegistry, since the suppliedobservationRegistrywill not be automatically applied to it.- Parameters:
chatModel- the chat model to useobservationRegistry- the observation registry for client-level observations; also used to configure the defaultToolCallingManagerwhentoolCallingAdvisorBuilderisnullchatClientObservationConvention- optional custom observation convention for the chat clientadvisorObservationConvention- optional custom observation convention for advisorstoolCallingAdvisorBuilder- optional builder for theToolCallingAdvisor; whennulla default is created
-
-
Method Details
-
build
- Specified by:
buildin interfaceChatClient.Builder
-
clone
- Specified by:
clonein interfaceChatClient.Builder- Overrides:
clonein classObject
-
defaultAdvisors
- Specified by:
defaultAdvisorsin interfaceChatClient.Builder
-
defaultAdvisors
- Specified by:
defaultAdvisorsin interfaceChatClient.Builder
-
defaultAdvisors
- Specified by:
defaultAdvisorsin interfaceChatClient.Builder
-
defaultOptions
- Specified by:
defaultOptionsin interfaceChatClient.Builder
-
defaultUser
- Specified by:
defaultUserin interfaceChatClient.Builder
-
defaultUser
- Specified by:
defaultUserin interfaceChatClient.Builder
-
defaultUser
- Specified by:
defaultUserin interfaceChatClient.Builder
-
defaultUser
- Specified by:
defaultUserin interfaceChatClient.Builder
-
defaultSystem
- Specified by:
defaultSystemin interfaceChatClient.Builder
-
defaultSystem
- Specified by:
defaultSystemin interfaceChatClient.Builder
-
defaultSystem
- Specified by:
defaultSystemin interfaceChatClient.Builder
-
defaultSystem
- Specified by:
defaultSystemin interfaceChatClient.Builder
-
defaultTools
Description copied from interface:ChatClient.BuilderRegister one or more default tools that will be available to every request built from thisChatClient.Builder. The method accepts the same heterogeneous mix of tool representations asChatClient.ChatClientRequestSpec.tools(Object...)and applies the same automatic dispatch rules:ToolCallback— registered directly as a callback.ToolCallbackProvider— registered directly as a provider; its callbacks are resolved lazily at request time.ToolCallback[]orToolCallbackProvider[]— every element of the array is registered as above.Collection— iterated and each element is dispatched by the same rules.- Any other object — treated as a
@Tool-annotated POJO; aToolCallbackis generated for eachTool-annotated method it contains.
Default tools are shared across all requests produced by
ChatClientinstances built from this builder. If a request also provides its own tools viaChatClient.ChatClientRequestSpec.tools(Object...), those runtime tools completely override the defaults for that request.WARNING: Because default tools are shared, be careful not to register tools that should only be available in specific contexts.
- Specified by:
defaultToolsin interfaceChatClient.Builder- Parameters:
toolObjects- tool objects to register; must not benulland must not containnullelements- Returns:
- this builder for chaining
-
defaultToolCallbacks
@Deprecated(since="2.0.0", forRemoval=true) public ChatClient.Builder defaultToolCallbacks(ToolCallback... toolCallbacks) Deprecated, for removal: This API element is subject to removal in a future version.as of 2.0.0, in favor ofdefaultTools(Object...). To be removed in 3.0.0.- Specified by:
defaultToolCallbacksin interfaceChatClient.Builder
-
defaultToolCallbacks
@Deprecated(since="2.0.0", forRemoval=true) public ChatClient.Builder defaultToolCallbacks(List<ToolCallback> toolCallbacks) Deprecated, for removal: This API element is subject to removal in a future version.as of 2.0.0, in favor of#defaultTools(Consumer). To be removed in 3.0.0.- Specified by:
defaultToolCallbacksin interfaceChatClient.Builder
-
defaultToolCallbacks
@Deprecated(since="2.0.0", forRemoval=true) public ChatClient.Builder defaultToolCallbacks(ToolCallbackProvider... toolCallbackProviders) Deprecated, for removal: This API element is subject to removal in a future version.as of 2.0.0, in favor of#defaultTools(Consumer). To be removed in 3.0.0.- Specified by:
defaultToolCallbacksin interfaceChatClient.Builder
-
defaultToolContext
- Specified by:
defaultToolContextin interfaceChatClient.Builder
-
defaultTemplateRenderer
- Specified by:
defaultTemplateRendererin interfaceChatClient.Builder
-
#defaultTools(Consumer).