FlowDSL Node Catalog
LLM Chat
Send a chat completion request to a registered LLM provider and return the response.
Overview
| Property | Value |
|---|---|
| Node ID | redelay/llm-chat |
| Kind | action |
| Module | llm-flowdsl |
| Repo | go-ai |
Inputs
Request— Chat request with messages and optional tools.
Outputs
Response— Completed chat response with message, finishReason, and usage.Error— Provider error, missing credentials, or unsupported request.
Settings
| Property | Type | Required | Default | UI Group | Description |
|---|---|---|---|---|---|
endpoint | string | — | — | — | Provider API base URL override. Example: http://localhost:11434 for Ollama. |
examplesPolicy | string (avoid|when_asked|always) | — | — | — | When the model should include runnable examples. |
maxTokens | integer | — | — | — | Upper bound on completion length. 0 = provider default. |
model | string | — | — | — | Model name sent to the provider. Empty → provider default. |
passthrough | boolean | — | false | — | When true, the node copies every field of the incoming packet to its output before stamping message/finishReason/usage. Use for chained llm-chat calls (e.g. rag-rewrite's query-rewrite preprocessor) where downstream nodes need fields the first chat call didn't consume. Off by default so the happy-path packet stays minimal. |
profile | string () | — | — | — | OPTIONAL — pick a named LLM profile (provider + credentials + model + tuning + prompt) to supply the defaults for this node. Any field below you leave blank uses the profile's value; any field you fill overrides the profile for this node only. Leave this blank to configure every knob here directly. Manage profiles at /profiles — duplicate an existing profile to create a variant (e.g. change temperature, swap to Ollama for local dev) without touching the original. |
providerID | string () | — | — | — | Registered LLM provider ID. Enum is populated at runtime from the live provider registry. Required when no profile is selected. |
replyStyle | string (short|normal|detailed) | — | — | — | Shorthand for response length / verbosity. Appended to the system prompt as a plain-English directive. |
stream | boolean | — | false | — | Node-only toggle — profile never sets this. Emit one packet per chunk instead of a single Response packet. |
systemPrompt | string | — | — | — | Base system prompt prepended to messages. When replyStyle or examplesPolicy are set, their directives are appended. If the first message already has role=system, this setting is ignored. |
temperature | number | — | — | — | Sampling temperature (0-2). Lower is more deterministic. |
Example
yaml
# Use this node in a flow:
nodes:
- id: my_step
name: My Step
kind: action
action_ref: redelay/llm-chat
config:
endpoint: "value"
examplesPolicy: "value"
maxTokens: 10
model: "value"
passthrough: false
profile: ""
providerID: "value"
replyStyle: "value"
stream: false
systemPrompt: "value"
temperature: 1.0