Skip to content

Build workflows from a plain-English description - #430

Merged
Priyanshu-u07 merged 4 commits into
InferiaAI:mainfrom
Dhirenderchoudhary:feat/workflow-from-text
Oct 24, 2026
Merged

Priyanshu-u07 merged 4 commits into
InferiaAI:mainfrom
Dhirenderchoudhary:feat/workflow-from-text

Conversation

@Dhirenderchoudhary

@Dhirenderchoudhary Dhirenderchoudhary commented Oct 23, 2026 •

Copy link
Copy Markdown
Collaborator

Builds on #429 (includes its commits; review that first).

On the Workflows page you can now type what you want, e.g. "a voice assistant that answers banking questions", and get a workflow on the canvas.

  • An LLM deployment plans it. The prompt is generated from the node registry, the JSON is parsed defensively, and every node and edge is checked with the same connectionError rules as manual edits. If the plan is invalid or doesn't match the request (voice in, voice out), it retries once, then falls back to a keyword planner. The page says which one built it.
  • Any node with no matching deployment shows Needs deployment with a recommended model and a Deploy button. Deploy runs preflight and then a pool deploy, the same way the New Deployment page does. If there's no pool or preflight says it doesn't fit, the node shows Waiting for compute: and the flow stays put. Once the deployment is ready it's selected on the node automatically.
  • Run is disabled with the reason while any node is waiting. Each node's state comes from one pure function (nodeReadiness), not separate flags.

Also: model autofill no longer falls back to any audio model (it was putting a TTS model on the STT node), and TTS always sends a voice, since speaches returns 422 without one.

Testing:

  • 50 workflow tests (parsing, validation, fallback planner, readiness, layout), full dashboard suite 469 passed, build passes, eslint clean on changed files.
  • In Chromium against a local stack: the voice request produced mic -> STT -> LLM -> TTS -> audio out and the run worked (1.2 s, audio played). "Transcribe my meeting recordings" was planned by the model; with the STT model hidden it showed Needs deployment, and Deploy showed "Waiting for compute: no active compute pool" with Run disabled.
  • Not tested: a deploy that actually succeeds, since the local stack has no compute pool.

Screenshots

Generated voice workflow
Generated workflow after a real run
Node waiting for compute, Run disabled

Resolve conflicts with the InferiaAI#429 fix commit: keep his autofill as written; carry over main's recorder fix, run-in-progress toast and tighter STT/TTS name hints. Add readiness and deploy to the node card test's context.

Signed-off-by: Priyanshu-u07 <connect.priyanshu8271@gmail.com>
@Priyanshu-u07

Priyanshu-u07 commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Merged main into this branch (4120cc3) to resolve the conflicts my #429 fix commit caused. Your autofill is kept exactly as you wrote it. Three fixes already in main are carried over:

  • Recorder state: stopping a recording now uses the current run state (the "Stop and run" bug from Add a workflow canvas for chaining models #429).
  • Run in progress: a toast instead of silently ignoring the run. Your blocker check is kept right after it.
  • Tighter STT/TTS name hints. Side effect for your strict filter: a TTS deployment named only with "speech" or "voice" no longer auto-matches and shows "Needs deployment". Your catalog names (whisper-tiny-stt, piper-amy-tts) still match.

Also added readiness and deploy to the node card test's context so it passes after the merge. Full dashboard suite: 472 passed, no new type or lint errors in changed files, build passes. Please pull before pushing again.

Things for you to decide, not blocking:

@Priyanshu-u07
Priyanshu-u07 merged commit 1a46f5f into InferiaAI:main Oct 24, 2026
2 checks passed
Priyanshu-u07 added a commit to Dhirenderchoudhary/InferiaLLM that referenced this pull request Oct 24, 2026
Resolve conflicts with InferiaAI#429/InferiaAI#430: keep the setInput/inputs rename; carry over main's recorder fix and run-in-progress toast. Rename the node card test to setInput/inputs.

Signed-off-by: Priyanshu-u07 <connect.priyanshu8271@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants