Chroma Upsert

Chroma Upsert

Certified

Upsert records into a Chroma collection

Inserts or updates records (id, embedding, and optional metadata and document) in batches. Records can be provided inline or read from a file in Kestra's internal storage (ION or JSON).

yaml
type: io.kestra.plugin.chroma.Upsert

Upsert records inline

yaml
id: chroma_upsert
namespace: company.team

tasks:
  - id: upsert
    type: io.kestra.plugin.chroma.Upsert
    baseUrl: http://localhost:8000
    collectionName: docs
    from:
      - id: doc-1
        embedding: [0.05, 0.61, 0.76, 0.74]
        document: "Berlin is the capital of Germany."
        metadata:
          source: handbook
      - id: doc-2
        embedding: [0.19, 0.81, 0.75, 0.11]
        document: "Paris is the capital of France."
        metadata:
          source: handbook

Upsert records streamed from an upstream task's output file

yaml
id: chroma_upsert_from_file
namespace: company.team

tasks:
  - id: upsert
    type: io.kestra.plugin.chroma.Upsert
    baseUrl: http://localhost:8000
    collectionName: docs
    batchSize: 200
    from: "{{ outputs.embed.uri }}"
Properties

Base URL of the Chroma server

The base URL of the Chroma HTTP server, for example http://localhost: 8000.

Collection name

The name of the collection to upsert into.

Records to upsert

An inline list (or single map) of records, or a Kestra storage URI to an ION/JSON file of them. Each record must contain an id and an embedding (a list of numbers; vector is accepted as an alias) and may contain a metadata map and a document string.

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

Authentication token

Token sent in the X-Chroma-Token header. Used by token-authenticated self-hosted servers and by Chroma Cloud. Mutually exclusive with username/password.

Default100

Batch size

Number of records sent per request (default: 100, min: 1, max: 10000).

Database

The Chroma database that holds the collection (default: default_database).

Basic-auth password

Password for HTTP basic authentication. Requires username.

Tenant

The Chroma tenant that holds the database (default: default_tenant).

Basic-auth username

Username for HTTP basic authentication. Requires password.

Default0

Upserted count

The number of records sent to the collection.