I recently tried out the KNIME Workflow Explainer and was seriously impressed! It takes the JSON file from the Workflow Summary Extractor and automatically generates a clear, natural language explanation of your workflow.
For me, it’s been a huge time-saver, especially for documenting complex workflows and keeping everything traceable . It even gives you a Python version of the workflow (still in beta, but super promising! ).
Check out the structure I used and the steps involved :
Awesome that this already exists - I was playing around with something similar - will give it a try for sure thanks for sharing and even more thanks for developing it!
It’s my pleasure! I truly enjoy working with KNIME, so for me is fun not only work.
We actually developed a fully functional version internally within our company to facilitate workflow reporting; this is just the light version. This was necessary due to the stricter regulations in healthcare regarding process reporting. The Python integration, while a fun challenge, has proven to be tricky at times. For instance, “pythonizing” workflows with the Joiner nodes didn’t work perfectly on the first attempt. It required several iterations and back-and-forth adjustments with the AI agent to get everything running smoothly. The goal of having it in a Python version is to streamline the transition from prototyping to a deployable product. We have some workflows in KNIME that isn’t fully set up for this yet, and explaining it to regulators in a way that they’re comfortable with can be a challenge. But after fine-tuning the AI model, we’re hopeful it will work even better.
Very nice piece of work. I tried it on a simple geospatial workflow developed for one of the Just Knime It challenges. My initial run had several issues:
The Workflow Explainer missed three nodes in the workflow. Corrected by telling ChatGPT to make sure to include all nodes.
The Workflow Explainer incorrectly identified the granularity in the DateTime Difference as “days” (which is the node default) rather than seconds which was correct in the JSON input.
Included a node which was not in the workflow.
The errors were easily found in this simple workflow. I’m concerned what might happen in a very large, complex workflow.
Here’s the workflow, JSON input, and ChatGPT output:
Nice work @VAGR_ISK,
how well does this work with workflows containing meta nodes and components?
I built a workflow with the AI Extension a while ago that attempts to do something similar but I haven’t gotten around to figure out how to handle nested workflows.
If you like you can check out the workflow on the hub: GenAI Workflow Explainer – KNIME Community Hub
I think I know why you got wired results, and the problem is that the KNIME workflow explainer custom GPT is a little bit cocky. So, when you open the conversation, you have to click into the left starter question, which says, How does this custom GPT work? After it answers, you can load the JSON file and run it. You don’t need to write anything, Just run the JSON.
I ran your workflow and analyze the results and got the correct description. However, I believe you actually load a different JSON file than the one the JSON Summary component generated. I mean the JSON that you sent me is correct, but the text (txt file) description of the work flow contains a GroupBy node description that is not present in the workflow. There is no way that the GPT simply invented a GroupBy node . Not even hallucinating X2.
So, my suggestion is: take the JSON file that you send me and run it in the GPT KNIME workflow Explainer and see if you get the same results as I got. (Attached)
Let me know if you understand everything or have any problem.
Now, the system has many limitations. One is that the workflow summary extractor determines the level of granularity that the description will provide. So, if your workflow has complex nodes that are not well described in KNIME JSON summary you will get a poor description.
Also I was looking to the workflow you send me. I think this looks a bit overcomplicated. In my set up it works well for both components and metanodes. The only thing you need to take into account is that both the input and output of both components and metanodes will be represented as separated nodes in the description.
Just to test I exported your JSON summary and run it in the KNIME Workflow Explainer Custom GPT and got the following:
If you want to create a GPT using the LLM nodes from KNIME, it will require quite a bit of prompt engineering. The custom GPT took me a lot of time to get it working properly.
Just coming short to your question. Indeed if you are having some nodes inside metanodes or components you will have the problem that the JSONpath wont recognize the path of nodes inside the metanodes and components. For that to work you will need to use the recursive descent operator “. .” in the JSONpath so that the nodes will be recognized even if they are nested in the JSON structure.