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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to