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.