Articles

Rivet Is An Open-Source Visual AI Programming Environment

COBUS GREYLING
September 27, 2023
.
5 min read

Rivet is suited for building complex agents with LLM Prompts, and it was Open Sourced recently.

In essence Rivet is a no code to low code prompt chaining GUI which is focussed on building complex flows, which can split (run processes in parallel) and converge again.

Data handling and transformation plays a big part in the Rivet UI, together with vector stores and KNN. Together with conditions, and numerous conditional nodes. Rivet refers to flows as graphs, as opposed to a chain, application or flow. Rivet does not have a vast array of choices in terms of vector stores, LLMs and the like.

It does seem like Rivet’s focus is more on building complex flows, which can be optimised and re-used as components.

Rivet does not have any autonomous agent implementation tools like the LangChain tools.

Considering the current LLM tooling landscape

Rivet is joining a host of OpenSourced LLM-based, visual, flow builders; in the form of Flowise, LangFlow and Botpress. Then there are a number of commercial offerings like Voiceflow, Stack, Dust and others.

LLM API Build Frameworks

And below you see a collection of Chatbot Development Frameworks and a list of these frameworks which has included LLM-based functionality in their offering.

Back to Rivet…

Below is a matrix with all the various node categories and the sub-nodes available within Rivet. there is significant focus on data handling, logic and vector store functionality.

Interesting Functionality

Split

Within the settings sections of a node, there is a toggle option to switch Spliton or off for a node. Splitting a node is a tool to enable parallel execution.

For example, when a directory of files is read, the files can be read in a parallel fashion as apposed to in series. Parallel execution of chains can also be enabled; splitting chains make for parallel processing and more complex implementations.

Joining

Joining of multiple flows into one is also possible via the following nodes:

  • Chat Node, Extract Object Path, Pop Node and Code Node.

Trivet

I did not look at this in detail, but Trivet is a library for running tests on Rivet applications. Tests can be run via the GUI and programatically.

The Trivet tab is at the top of the Rivet GUI and fully integrated from a UI perspective.

General Observations

What would be convenient is, when hovering over a input or output point for a node, a list of possible or most likely nodes to connect would be convenient.

Input and output tokens are shown continuously, considering that cost (together with latency) is one of the biggest concerns, this is helpful.

Unlike other open-sourced offerings like LangFlow and Flowise, Rivet does not make provision for third party commercial products. For instances an array of vector stores are not offered, or LLMs.

Rivet uses OpenAI’s LLMs as a base for generative applications, and Pinecone is also used as a vector store and a KNN node. As the critical mass of users build, more features and plugins are sure to be added.

Built-in plug-ins exist in the form of Anthropic, AssemblyAI and Autoevals.

Areas of the documentation are not populated, I would argue that Revit will challenge more basic workflow builders like Vellum. But lacks the absolute feature rich environments like LangChain based GUI builders.

The subgraphs functionality allows for a graph to be used as a function in another graph. This principle is analogous to functions or sub-dialogs in VoiceXML 2.0.

I’m currently the Chief Evangelist @ HumanFirst. I explore & write about all things at the intersection of AI & language; ranging from LLMs, Chatbots, Voicebots, Development Frameworks, Data-Centric latent spaces & more.

Subscribe to HumanFirst Blog

Get the latest posts delivered right to your inbox