Release v1.9.0
Highlights
Environment variables in tesseract_config.yaml
You can now set environment variables directly in tesseract_config.yaml via a new env: section, without resorting to custom_build_steps:
env:
XLA_PYTHON_CLIENT_PREALLOCATE: "false"
OMP_NUM_THREADS: "4"
These values are baked into the Docker image at build time. You can still override them at runtime with tesseract serve --env or tesseract run --env. (#591)
Timeout parameter for the Python API
Tesseract.from_image() and Tesseract.from_url() now accept an optional timeout parameter to guard against hanging HTTP requests (e.g. when a container runs out of memory):
with Tesseract.from_image("my_tesseract", timeout=30) as t:
...
# or use a (connect, read) tuple for finer control
t = Tesseract.from_url("http://host:8000", timeout=(5, 300))
The default remains no timeout, so existing code is unaffected. (#597)
Tesseract.container_info()
A new container_info() method on the Tesseract class exposes the underlying Docker container object during a serve session. This is useful for resource monitoring, executing commands inside the container, or retrieving container logs outside of the SDK:
with Tesseract.from_image("my_tesseract") as t:
container = t.container_info()
print(container.id, container.name, container.host_port)
(#601)
Other changes
tesseract servenow supports a--skip-health-checkflag (also available asskip_health_checkinTesseract.from_image()). Use this for Tesseracts with slow startup, e.g. due to JIT compilation or large model loading. The caller is responsible for polling/healthmanually. (#596)- Foreign array-like objects such as PyTorch tensors can now be passed directly to the Python API without manual conversion. (#587)
- Docker builds no longer fail when the base image sets a non-root default user. (#598)
- IO schemas now include explicit field declaration order in their metadata (
field_order), allowing downstream clients to restore the correct order even after round-tripping through systems that scramble JSON keys. (#595) clickis now an explicit dependency, fixing potential import errors with newer versions oftyper. (#610)
What’s Changed
Features
- Add
env:section totesseract_config.yamlto allow setting environment variables in built Tesseracts (#591) - Add
timeoutparameter to Python API functions (#597) - Add
tesseract serve --skip-health-checkargument (#596) - Add
Tesseract.container_infoto expose information about running containers in Python API (#601) - Explicitly export IO schema field order (#595)
Bug Fixes
- Better support for foreign arrays (like torch tensors) in Python API (#587)
- Always become root at the start of docker builds (#598)
- Add
clickto base install dependencies (#610)
Documentation
- Add new landing page for Tesseract ecosystem (#562)
- Add Tesseract Blog (#549)
Testing
- Rewrite stale-keepalive retry test without real socket dependence (#611)
Full diff: Comparing v1.8.2...v1.9.0 · pasteurlabs/tesseract-core · GitHub