Skip to content

AI Assistant

The AI Assistant is a chat workbench for asking questions about the pipeline or workflow you have open. It can explain what a pipeline does, suggest fixes, and propose concrete changes that you review before anything is applied.

The assistant itself comes from Apache Hop. What is specific to Deem Integrator is which model it talks to: the request goes through Deem’s own chat client to your Azure AI Foundry deployment, not to a public model endpoint.

Open a pipeline or workflow first — the assistant always works on an open file:

  • the AI Help button in the pipeline or workflow toolbar
  • right-click the canvas → Basic → AI Help
  • right-click a transform or action → Basic → AI Help, which also sets that node as the focus of the question

The first time, these open a floating window so the canvas stays visible. After that the assistant opens where you last had it, in its own window or in the dock. Ctrl+Shift+A opens the perspective without binding a file, for a general conversation.

Two buttons in the assistant’s toolbar move it:

  • Open in a floating window moves it to a window of its own.
  • Open in the bottom dock moves it into the dock below the canvas.

The assistant moves; it does not leave a copy behind. Your sessions stay the same wherever it is.

The dock can also sit to the right of the canvas instead of below it, which suits a long conversation next to a graph. Use Move the panel to the right in the dock’s own toolbar, next to Maximize, and Move the panel to the bottom to put it back. Deem Integrator remembers both choices, where the assistant was and where the dock sits, the next time you start it.

The Sharing line above the question field lists exactly what this send includes, and the checkboxes below it let you add or remove parts. Everything is sent in a single request; the model cannot reach back into your project on its own.

Worth knowing before you turn on the larger options:

  • Include full pipeline XML sends the whole pipeline, SQL statements included, with variables already resolved. It has a second gate in the configuration option, and it is off by default for that reason.
  • Include selected metadata sends the chosen metadata objects with their contents — host names, database names, user names, paths.
  • Fields whose name looks like a credential (password, apikey, token and similar) are replaced before sending. A credential held in a field with a different name is not. Keeping secrets in variables rather than typed values is what actually protects them: then only the variable name is sent.

The assistant needs a named AI Provider connection, chosen in the Provider field of the session. Create it in the Metadata perspective under AI Provider.

FieldValue
ProviderDeem Azure OpenAI
Base URLYour Azure AI Foundry resource endpoint, for example https://<resource>.openai.azure.com
API keyA variable, for example ${AI_API_KEY} — see below
Model nameThe deployment name in Foundry, not a public model id
Timeout (seconds)How long one call may take

The provider list shows only the types that have a client in Deem Integrator: Deem Azure OpenAI, which is the supported one, and OpenAI. The other provider types that ship with Apache Hop are left out.

An AI Provider is ordinary project metadata, which means it is committed to the project’s Git repository and shared with everyone who clones it. The API key marked as a password is obfuscated, not encrypted — so a connection with a typed key is a shared key.

That leads to two separate connections for two separate purposes:

For pipelines that run unattended, the connection belongs in the project, exactly like a database connection, with the key as a variable that the run environment supplies. This is what a container running a workflow needs, and it travels with the project.

For your own use of the assistant, keep the connection out of the project entirely — put it in your personal Hop configuration folder, ${HOP_CONFIG_FOLDER}/metadata/ai-provider/. It is then per machine, never in a checkout, and available whichever project you open.

To make the personal folder visible, set the project’s metadata base folder to list both, with the configuration folder first:

${HOP_CONFIG_FOLDER}/metadata,${PROJECT_HOME}/metadata

The order matters and is easy to get backwards:

  • New metadata is written to the last folder in the list. With the project last, everything you create in the GUI still lands in the project, where it belongs.
  • On a name clash the last folder wins, so a project can override a personal connection.
  • A folder that does not exist is simply skipped when reading, so the same setting is harmless in a container where the configuration folder holds nothing.

Use ${AI_API_KEY} rather than typing the key, and set the value per machine or per environment. Besides keeping the key out of Git, this avoids a second problem: the password encoder is re-bound from project and environment variables when a project is opened, so a key typed and stored under one project is not guaranteed to be readable under another. A variable is stored verbatim and never goes near the encoder.

When the assistant proposes changes, Review proposed change(s) opens a dialog showing each one before it is applied. Nothing reaches the graph until you accept it there.

Work on a Git feature branch while you use the assistant. Undo on the graph reverses canvas edits, but metadata saves are not undone that way, and a branch is the reliable way back.

The assistant, its scenarios and the proposal format are documented by Apache Hop: