You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@texera.apache.org by "gupta-sahil01 (via GitHub)" <gi...@apache.org> on 2026/07/09 16:40:49 UTC

[I] Ambient "operator recommender" [texera]

gupta-sahil01 opened a new issue, #6293:
URL: https://github.com/apache/texera/issues/6293

   ### Feature Summary
   
   Building a workflow today requires knowing the operator catalog well enough to pick the next operator by name. The existing chatbot helps, but only **on demand** — the user has to stop and ask. There is no ambient guidance at the moment of authoring.
   
   This proposes an **ambient operator recommender**: after an operator is added to the canvas, 1–3 faded "ghost" operators appear on its output port showing the most likely next operators. Clicking one materializes it and wires the link. It behaves like code-completion ghost text, but for dataflow graphs — predictive and non-intrusive, never blocking the user.
   
   Design was discussed and agreed in #5240.
   
   | | Existing chatbot | Operator recommender |
   | --- | --- | --- |
   | Trigger | User asks | Operator added to canvas |
   | Mode | Conversational | Ambient, ranked ghosts |
   | Cost | LLM call per turn | Zero in V1; small model in V2 |
   
   ### Proposed Solution or Design
   
   Ship in two versions, as agreed in #5240 (zuozhiw: "the plan sounds good, please go ahead with first steps"; xuang7: V1 needs no LLM call, "default configuration should be sufficient").
   
   **V1 — hardcoded, zero API cost.** Validates the whole pipeline before spending anything on inference.
   
   ```
   canvas: operator added
           │  getOperatorAddStream()
           ▼
   frontend hook ──POST /api/recommend──► agent-service (stateless)
           ◄──── ranked suggestions ─────  hardcoded rule table
           │                               + operator catalog validation
           ▼
   1–3 ghost operators on output port ──click──► materialize + link
   ```
   
   - `POST /api/recommend` in `agent-service`: stateless, no DB, no LLM, no user token.
   - Ranks from a small hardcoded successor table keyed on the real operator catalog.
   - Suggestions validated against the live catalog (`WorkflowSystemMetadata`), so a stale rule degrades to "not suggested" rather than a broken ghost.
   - Response carries a `strategy` discriminator (`"hardcoded"` / `"llm"`) so V2 swaps in behind the same request/response shape, no breaking change.
   - Frontend ghost rendering gated behind a new opt-in GUI config flag, default off.
   
   **V2 — LLM-backed ranking.** After community feedback on V1.
   
   - Replace the rule table with a small, cheap, openly-available model via the existing LiteLLM gateway (custom model training ruled out as infeasible in #5240).
   - In-memory caching with auto-eviction; still stateless, still no DB.
   - Add repo-versioned operator descriptions, example workflow patterns, and a ranking test set, plus a CI evaluation of ranking quality.
   
   **Scope of this issue** is V1 only, split into two PRs:
   
   | PR | Scope |
   | --- | --- |
   | 1 | `agent-service`: stateless `POST /api/recommend`, hardcoded ranking, catalog validation, unit + route tests |
   | 2 | `frontend`: subscribe to operator-added events, ghost rendering on output port, click-to-materialize, opt-in config flag |
   
   V2 will be tracked as a follow-up issue.
   
   ### Affected Area
   
   Workflow UI, Other


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] Ambient "operator recommender" [texera]

Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on issue #6293:
URL: https://github.com/apache/texera/issues/6293#issuecomment-4927447290

   <!-- texera:welcome-first-time-contributor -->
   👋 Thanks for your first contribution to Texera, @gupta-sahil01!
   
   If you're looking for a good place to start, browse issues labeled [`starter-task`](https://github.com/apache/texera/issues?q=is%3Aissue+is%3Aopen+label%3Astarter-task); they're scoped to be approachable for newcomers.
   
   You can drive common housekeeping yourself by commenting one of these commands on its own line:
   
   - **Issues.** Comment `/take` to assign an open issue to yourself, or `/untake` to release it. You can find unclaimed work with the search filter `is:issue is:open no:assignee`.
   - **Sub-issues.** To link issues into a parent/child hierarchy, comment `/sub-issue #5166 #5222` on the parent to attach those children (or `/unsub-issue #5166 #5222` to detach them). From a child issue, comment `/parent-issue #5166` to set its parent, or `/unparent-issue` to clear it (the current parent is detected automatically). References may be written as `#5166` or as a bare `5166`; cross-repository references are not supported.
   - **Pull requests (author only).** Comment `/request-review @user` to request a review from someone, or `/unrequest-review @user` to withdraw that request.
   
   Each command must match exactly: `/take this` will not work, only `/take` does. For the full contribution flow, see [CONTRIBUTING.md](https://github.com/apache/texera/blob/main/CONTRIBUTING.md).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org