-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Description
Description
BinaryContent returned by the model (as in #2970) or uploaded by a user (as in https://ai.pydantic.dev/input/) is typically going to be too large to store in a DB or send to an OpenTelemetry backend, so it'd be good to have a way to specify a store_blob function that turns BinaryContent into a FileUrl, and have that be in the stored message history.
If the file is stored somewhere the model API can access, like a public bucket, the FileUrl will not need be converted back into a BinaryContent when using the message history, but if that's not the case you'd need a load_blob function as well that is given the FileUrl and can check the URL (e.g. starting with file: or x-custom: or https://my-bucket.s3), and download it if necessary.
The functions should probably take the run context so they can access deps to know where to store the data, e.g. based on the user or a region.
#2970 currently adds support for output_type=BinaryImage, and with this feature it could support output_type=ImageUrl as well, with the binary content returned by the model automatically uploaded to blob storage.
Inspired by https://github.com/nwcell/pydantic-ai-stash by @nwcell.
References
No response