You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hop.apache.org by "mattcasters (via GitHub)" <gi...@apache.org> on 2026/09/12 12:48:58 UTC

[PR] Issue #8330 : Add a pluggable AI Advisor and named AI Provider metadata (hop)

mattcasters opened a new pull request, #8342:
URL: https://github.com/apache/hop/pull/8342

   Fixes #8330
   
   Adds a pluggable, default-off AI advisory system and named AI Provider metadata so pipeline/workflow advice (and later hopper-edw modelers) can share one credential store without putting langchain4j in hop-core.
   
   ### What this delivers
   
   **SPI in hop-core (no langchain4j, no SWT)**
   - `IAiAdvisor` / `@AiAdvisorPlugin` with free-form **location** strings (`pipeline-graph`, `workflow-graph`, `perspective`, plus anything hopper-edw registers)
   - `IAiProvider` / `@AiProviderPlugin` for OpenAI-compatible, Anthropic, Ollama, Hugging Face, Mistral, Grok, Gemini
   - `HopGuiAiAdvisorOpenSession` extension point so other plugins can open a session without depending on hop-ui
   
   **`hop-tech-ai` plugin (removable)**
   - Named **AI Provider** metadata (Test button, secrets as passwords / variables)
   - Configuration tab: enable AI (off by default) and default provider name
   - Pipeline and workflow advisors: graph context, error diagnosis, optional `hop_proposals` apply with undo
   - Advisor perspective, floating window from the pipeline/workflow toolbar, shared session store
   - Sharing panel: share nothing extra by default; collapsible line of what will be sent; optional metadata picker
   - Provider `MetaSelectionLine` so a provider can be created from the advisor
   - Completions go through Language Model Chat (`classLoaderGroup = hop-ai`)
   
   **Language Model Chat**
   - Optional named AI Provider overlay (reflection, no Maven cycle)
   - Built on langchain4j 1.20.0 from #8341
   - Jackson not shipped in the plugin lib (avoids `ObjectMapper` LinkageError)
   - JDK HTTP client constructed directly (avoids ServiceLoader “not a subtype” across classloaders)
   - Hugging Face dedicated endpoint URL may be entered as Base URL when Model name is empty
   
   **Privacy / docs**
   - XML/JSON secret redaction before prompts
   - User docs: secrets and project variables, minimum-send checkboxes, screenshots
   - Developer docs: how to add an advisor plugin at a new location
   
   ### GUI notes
   - Ctrl/Cmd+Enter sends (GTK debounce so it does not immediately cancel)
   - Toolbar Help opens a **floating** window so the pipeline/workflow stays visible
   - Failed turns stay out of conversation history (Anthropic role alternation)
   - Errors (including `Error` subclasses) clear “Waiting for the model…” instead of hanging
   
   ------------------------
   
   Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:
   - [x] Run `mvn clean install apache-rat:check` to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
   - [x] If you have a group of commits related to the same change, please squash your commits into one and force push your branch using `git rebase -i`.
   - [x] Mention the appropriate issue in your description (for example: `addresses #123`), if applicable.
   
   To make clear that you license your contribution under the [Apache License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
   you have to acknowledge this by using the following check-box.
   
   - [x] I hereby declare this contribution to be licensed under the [Apache License Version 2.0, January 2004](http://www.apache.org/licenses/LICENSE-2.0)
   - [ ] In any other case, please file an [Apache Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).


-- 
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: issues-unsubscribe@hop.apache.org

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


Re: [PR] Issue #8330 : Add a pluggable AI Advisor and named AI Provider metadata (hop)

Posted by "mattcasters (via GitHub)" <gi...@apache.org>.
mattcasters merged PR #8342:
URL: https://github.com/apache/hop/pull/8342


-- 
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: issues-unsubscribe@hop.apache.org

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


Re: [PR] Issue #8330 : Add a pluggable AI Advisor and named AI Provider metadata (hop)

Posted by "mattcasters (via GitHub)" <gi...@apache.org>.
mattcasters commented on PR #8342:
URL: https://github.com/apache/hop/pull/8342#issuecomment-5648103551

   The proposed JSON for rdbms connections does not contain property `pluginName` but this is superfuous so I'm going to harden the DatabaseMeta code + editor to provide a graceful recovery for this sort of 'incomplete' metadata.


-- 
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: issues-unsubscribe@hop.apache.org

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


Re: [PR] Issue #8330 : Add a pluggable AI Advisor and named AI Provider metadata (hop)

Posted by "mattcasters (via GitHub)" <gi...@apache.org>.
mattcasters commented on PR #8342:
URL: https://github.com/apache/hop/pull/8342#issuecomment-5646037805

   We still need a few extra things to allow third party plugins to accept AI adviced actions. 


-- 
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: issues-unsubscribe@hop.apache.org

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


Re: [PR] Issue #8330 : Add a pluggable AI Advisor and named AI Provider metadata (hop)

Posted by "bamaer (via GitHub)" <gi...@apache.org>.
bamaer commented on PR #8342:
URL: https://github.com/apache/hop/pull/8342#issuecomment-5653281196

   My PR review returned some nit picking but nothing serious, so LGTM. Let me know if/when this is ready to be merged.


-- 
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: issues-unsubscribe@hop.apache.org

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