dynavec / Docs / Update & Lambda transforms

Update & Lambda transforms

Change text, vector, or metadata — and transform data in-account.

update() is a read-modify-write: metadata merges by default, and the vector is only re-derived when the text changes or you pass a new vector.

# merge new metadata, keep existing text + vector
db.update("1", namespace="kb", metadata={"rating": 4})

# change text -> re-embbeds and overwrites the vector
db.update("1", namespace="kb", text="new content")

Transform pipeline

Transforms are plain callables run on each document before it is written — for enrichment, redaction, or deriving vectors elsewhere.

from dynavec.transforms import TransformPipeline

def redact(ctx):
    ctx.metadata["pii"] = False
    return ctx

db.upsert(docs, transform=redact)             # or transform=TransformPipeline([...])

Run the transform in your own AWS Lambda

LambdaTransform invokes a Lambda you own with the document payload and applies whatever it returns — keeping custom logic in-account.

from dynavec.transforms import LambdaTransform

xform = LambdaTransform("my-transform-fn", session=db._session)
db.upsert(docs, transform=xform)
Grant lambda:InvokeFunction on that function — see Credentials & IAM.