Class LlmChatBinding
Convenience wiring that turns a ChatView into an LLM-driven
chat surface in one call. Pulls the user's input out of the
view's ChatInput, appends it as a USER
message, opens a streaming chat call against the supplied
LlmClient, and pipes deltas into a freshly-appended assistant
bubble.
ChatView itself has no dependency on the AI package, so apps
that want a peer-to-peer messaging UI (a WhatsApp clone, for
example) can keep using ChatView without pulling LlmClient
onto their classpath -- it's only when you call
bind(ChatView, LlmClient, ChatRequest) that the binding is
established.
Example
LlmClient client = LlmClient.openai(SecureStorage.getInstance().get("openai_key"));
ChatRequest base = ChatRequest.builder()
.model("gpt-4o-mini")
.addMessage(ChatMessage.system("You are a terse assistant."))
.build();
ChatView view = new ChatView();
LlmChatBinding.bind(view, client, base);
// ...add view to a Form and that's it.
The view's accumulated history is replayed on every turn so the
model has full conversation context. The original baseRequest
is treated as a template -- its model, tools, temperature, etc.
are preserved across turns; its messages are used only when the
view's own history is empty (e.g. to seed a system prompt).
-
Method Summary
Modifier and TypeMethodDescriptionstatic voidbind(ChatView view, LlmClient client, ChatRequest baseRequest)
-
Method Details
-
bind
-