Class AIOrchestrator.Builder
java.lang.Object
com.vaadin.flow.component.ai.orchestrator.AIOrchestrator.Builder
- Enclosing class:
AIOrchestrator
Builder for configuring and creating an
AIOrchestrator instance.
The builder requires an LLMProvider and a system prompt. All
other settings are optional:
withInput(AIInput)orwithInput(MessageInput)– connects a text input component so that user submissions are automatically forwarded to the LLM. If omitted, useAIOrchestrator.prompt(String)to send messages programmatically.withMessageList(AIMessageList)orwithMessageList(MessageList)– connects a message list component to display the conversation. If omitted, responses are still streamed but not rendered.withFileReceiver(AIFileReceiver)orwithFileReceiver(UploadManager)– enables file upload support. Uploaded files are sent to the LLM as attachments with the next prompt.withTools(Object...)– registers objects containing vendor-specific tool-annotated methods (e.g. LangChain4j's@Toolor Spring AI's@Tool) that the LLM can invoke.withUserName(String)– sets the display name for user messages (defaults to "You").withAssistantName(String)– sets the display name for assistant messages (defaults to "Assistant").
Both Flow components (MessageInput, MessageList,
UploadManager) and custom implementations of the AI interfaces
(AIInput, AIMessageList, AIFileReceiver) are
accepted.
-
Method Summary
Modifier and TypeMethodDescriptionbuild()Builds the orchestrator.withAssistantName(String assistantName) Sets the display name for AI assistant messages in the message list.withFileReceiver(AIFileReceiver fileReceiver) Sets the file receiver component for file uploads.withFileReceiver(UploadManager uploadManager) Sets the file receiver component using a Flow UploadManager.Sets the input component.withInput(MessageInput messageInput) Sets the input component using a Flow MessageInput component.withMessageList(AIMessageList messageList) Sets the message list component.withMessageList(MessageList messageList) Sets the message list component using a Flow MessageList component.Sets the objects containing vendor-specific tool-annotated methods that will be available to the LLM.withUserName(String userName) Sets the display name for user messages in the message list.
-
Method Details
-
withMessageList
Sets the message list component.- Parameters:
messageList- the message list- Returns:
- this builder
-
withMessageList
Sets the message list component using a Flow MessageList component.- Parameters:
messageList- the Flow MessageList component- Returns:
- this builder
-
withInput
Sets the input component.- Parameters:
input- the input component- Returns:
- this builder
-
withInput
Sets the input component using a Flow MessageInput component.- Parameters:
messageInput- the Flow MessageInput component- Returns:
- this builder
-
withFileReceiver
Sets the file receiver component for file uploads.- Parameters:
fileReceiver- the file receiver- Returns:
- this builder
-
withFileReceiver
Sets the file receiver component using a Flow UploadManager. The provided manager should not have an UploadHandler set beforehand.- Parameters:
uploadManager- the Flow UploadManager- Returns:
- this builder
- Throws:
IllegalArgumentException- if theUploadManageralready has aninvalid reference
UploadHandler
-
withTools
Sets the objects containing vendor-specific tool-annotated methods that will be available to the LLM.For LangChain4j, use
@dev.langchain4j.agent.tool.Tool. For Spring AI, use@org.springframework.ai.tool.annotation.Tool.- Parameters:
tools- the objects containing tool methods- Returns:
- this builder
-
withUserName
Sets the display name for user messages in the message list.This name is shown as the author of messages sent by the user. If not set, defaults to "You".
- Parameters:
userName- the display name for user messages, notnull- Returns:
- this builder
-
withAssistantName
Sets the display name for AI assistant messages in the message list.This name is shown as the author of messages generated by the AI. If not set, defaults to "Assistant".
- Parameters:
assistantName- the display name for AI messages, notnull- Returns:
- this builder
-
build
Builds the orchestrator.- Returns:
- the configured orchestrator
-