v1.13.0

Ironclad/rivetv1.13.0Nov 14, 2023by abrenneke

AI Summary

This release adds major OpenAI support including GPT-4 Turbo, GPT-4 Vision, and the new Assistants API, along with several new nodes for vision processing and data manipulation. It includes a breaking change where the OpenAI function calling API has been migrated to the new Tools API, requiring a `tool_id` for function call responses.

Key Highlights

  • Added support for OpenAI GPT-4 Turbo and GPT-4 Vision models
  • Full support for new OpenAI Assistants API with new OpenAI plugin
  • New nodes: Assemble Message, URL Reference, Destructure, and Replace Dataset
  • Breaking change: Migrated from deprecated function calling API to new Tools API requiring tool_id
  • Loop controller now properly handles control-flow-excluded and fixes infinite looping

Breaking Changes

  • Switched from deprecated OpenAI function calling API to new Tools API - existing graphs may break because the new API requires a tool_id to be passed for function call responses
  • Code node now defaults to input1 and output instead of input and output
  • If/Else and If nodes now output control-flow-excluded for unconnected ports by default (existing nodes retain old behavior)

New Features

  • Support for OpenAI GPT-4 Turbo model
  • Support for OpenAI GPT-4 Vision model
  • Full support for OpenAI Assistants API with new OpenAI plugin
  • Support for new OpenAI seed parameter
  • Support for forcing a Chat node to run a specific tool (OpenAI)
  • Support for OpenAI JSON output mode
  • New Assemble Message node for GPT-4 Vision (combines text and image parts)
  • New URL Reference node for referencing URL images with GPT-4 Vision
  • New Destructure node for extracting multiple paths from an object at once
  • New Replace Dataset node for replacing or clearing dataset contents
  • Read File node can now read files as binary
  • Remote debugger can pass context values in dynamicGraphRun
  • ChatMessage is now a union of SystemChatMessage, UserChatMessage, AssistantChatMessage, and FunctionResponseChatMessage
  • Message of a chat message now supports ChatMessagePart | ChatMessagePart[] for image support
  • Added file path browser editor definition
  • nodeExcluded event now includes inputs, outputs, and reason

Full Release Notes

## New Features

- Support for new OpenAI GPT-4 Turbo model!
- Support for new OpenAI GPT-4 Vision model!
- Full support for new OpenAI Assistants API! Use the new `OpenAI` plugin.
- Switched from deprecated OpenAI function calling API to new OpenAI Tools API. Existing graphs may break because the new API requires a `tool_id` to be passed for function call responses.
- New Nodes:
  - `Assemble Message` - Used with GPT-4 Vision, this allows you to assemble a single chat message that contains both textual parts and image parts!
  - `URL Reference` - Used with GPT-4 Vision and the Assemble Message node, this allows you to reference a URL image instead of uploading an image.
  - `Destructure` - A simplified version of the Extract Object Path node, this allows you to extract multiple paths from an object at once, avoiding the need for multiple Extract Object Path nodes.
  - `Replace Dataset` - Replace the contents of a dataset with new values, or clear a dataset when no values are passed in.
- Support for new OpenAI `seed` parameter
- Support for forcing a Chat node to run a specific tool (OpenAI)
- Support for OpenAI JSON output mode
- If/Else and If node now outputs `control-flow-excluded` for unconnected ports by default, instead of `undefined`. Existing If/Else and If nodes still will have the old behavior.
- Read File node can now read files as binary, instead of only text.
- Remote debugger can pass context values in `dynamicGraphRun`

## Changes & Fixes

- Fix loop controller infinite looping
- Loop controller node now allows _non-default_ input ports to be "Not Ran". This will pass through to the output ports. If any "Default" input port is excluded, then the whole loop controller will not run.
- Fix ghost opened projects
- Code node now defaults to `input1` and `output` instead of `input` and `output`
- Fixed node port types being incorrect
- Code now will error if it doesn't return the values it expects
- Fixed Extract Object Path erroring when the input value is undefined or null
- Arrays are now inferred correctly, such as with Trivet test inputs
- (internal) getTokenCountForMessages is now async
- `ChatMessage` is now a union of `SystemChatMessage`, `UserChatMessage`, `AssistantChatMessage`, and `FunctionResponseChatMessage`
- The message of a chat message is now a `ChatMessagePart | ChatMessagePart[]` to support images in chat messages.
- Text editors can now have placeholders and max length
- Added file path browser editor definition
- `nodeExcluded` event now includes `inputs`, `outputs`, and `reason`
- Loop controller node now consumes `control-flow-excluded`