Skip to main content
In LLM Controls, objects are Pydantic models that serve as structured, functional representations of data.

Data object​

The Data object is a Pydantic model that serves as a container for storing and manipulating data. It carries data, a dictionary that can be accessed as attributes, and uses text_key to specify which key in the dictionary should be considered the primary text content.
  • Main Attributes:
    • text_key: Specifies the key to retrieve the primary text data.
    • data: A dictionary to store additional data.
    • default_value: default value when the text_key is not present in the data dictionary.

Create a Data Object​

  1. Create a Data object by directly assigning key-value pairs to it.
  2. The text_key specifies which key in the data dictionary should be considered the primary text content. The default_value provides a fallback if the text_key is not present.
  3. The Data object is also convenient for visualization of outputs, since the output preview has visual elements to inspect data as a table and its cells as pop-ups for basic types. The idea is to create a unified way to work and visualize complex information in LLM Controls.
  4. To receive Data objects in a component input, use the DataInput input type.

Message object​

The Message object extends the functionality of Data and includes additional attributes and methods for chat interactions.
  1. Core message data:
    • text: The main text content of the message
    • sender: Identifier for the sender (“User” or “AI”)
    • sender_name: Name of the sender
    • session_id: Identifier for the chat session (string or UUID)
    • timestamp: Timestamp when the message was created (UTC)
    • flow_id: Identifier for the flow (string or UUID)
    • id: Unique identifier for the message
  2. Content and files:
    • files: List of files or images associated with the message
    • content_blocks: List of structured content block objects
    • properties: Additional properties, including visual styling and source information
  3. Message state:
    • error: Boolean indicating if there was an error
    • edit: Boolean indicating if the message was edited
    • category: Message category (“message”, “error”, “warning”, “info”)
The Message object can be used to send, store, and manipulate chat messages within LLM Controls.

Create a Message object​

You can create a Message object by directly assigning key-value pairs to it. To receive Message objects in a component input, you can use the MessageInput input type or MessageTextInput when the goal is to extract just the text field of the Message object.

ContentBlock object​

The ContentBlock object is a list of multiple ContentTypes. It allows you to include multiple types of content within a single Message, including images, videos, and text. Each content type has specific fields related to its data type. For example:
  • TextContent has a text field for storing strings of text
  • MediaContent has a urls field for storing media file URLs
  • CodeContent has code and language fields for code snippets
  • JSONContent has a data field for storing arbitrary JSON data
  • ToolContent has a tool_input field for storing input parameters for the tool

Create a ContentBlock object​

Create a ContentBlock object with a list of different content types.

Add ContentBlocks objects to a message

In this example, a text and a media ContentBlock are added to a message.

DataFrame object​

The DataFrame class is a custom extension of the Pandas DataFrame class, specifically designed to work seamlessly with LLM Controls’ Data objects. The class includes methods for converting between DataFrame and lists of Data objects. A DataFrame object accepts various input formats, including lists of Data objects, dictionaries, and existing DataFrames.

Create a DataFrame object​

You can create a DataFrame object using different data formats

Key Methods

  • to_data_list(): Converts the DataFrame back to a list of Data objects.
  • add_row(data): Adds a single row (either a Data object or a dictionary) to the DataFrame.
  • add_rows(data): Adds multiple rows (list of Data objects or dictionaries) to the DataFrame.

Usage Example

To use DataFrame objects in a component input, use the DataFrameInput input type: