Tool Calling & Programmatic Prompts
Register tool objects for LLM invocation and send prompts programmatically without a Message Input component.
Tool Calling
Register objects with vendor-specific @Tool annotations that the LLM can invoke:
Source code
Java
public class WeatherTools {
@Tool("Get current weather for a city")
public String getWeather(String city) {
return weatherService.getCurrentWeather(city);
}
}
var orchestrator = AIOrchestrator
.builder(provider, systemPrompt)
.withMessageList(messageList)
.withInput(messageInput)
.withTools(new WeatherTools())
.build();For Spring AI, use @org.springframework.ai.tool.annotation.Tool. For LangChain4j, use @dev.langchain4j.agent.tool.Tool.
Programmatic Prompts
Send prompts without a Message Input component using prompt(). This is useful for triggering AI interaction from button clicks or other events:
|
Note
|
One Request at a Time
The orchestrator processes one prompt at a time. If prompt() is called while a previous request is still streaming, the new call is logged as a warning and silently dropped. Wait for the current response to complete before sending another prompt.
|
|
Important
|
UI Context Required
prompt() requires an active UI context. If called from a background thread or outside a Vaadin request, it throws an IllegalStateException. Always call prompt() from within a UI event handler or wrap the call in ui.access().
|