## What does this PR address? Fixes #5642 ### Problem & Root Cause When synchronous (`def`) `@bentoml.api` endpoints are executed via `ServiceAppFactory._to_thread`, cancellation can release the `CapacityLimiter` slot before the background worker has finished (or, in a narrow pre-start window, before AnyIO has queued the worker). A freed slot admits another
IODescriptor.from_output() currently crashes with an IndexError when a service method's return annotation is an unparameterized iterator type (e.g. t.Iterator, t.Generator, etc.) because it unconditionally indexes get_args(return_annotation)[0]. This PR fixes it by checking if generic arguments exist first, and defaulting the annotation to t.Any if get_args(
## Describe the bug `bentoml containerize` (and `build`) fails when `bentofile.yaml` specifies a `dockerfile_template` and the command is run from a directory other than the project root: ``` ValueError: Accessing file outside of current working directory is not allowed ``` Fixes #5566. ## Root cause `resolve_user_filepath` joins relative paths against `ctx`
## Summary The BentoML vLLM example already shows the OpenAI-compatible client pattern. This PR adds a short note that the same `OpenAI(base_url=...)` client pattern also works with OpenAI-compatible multi-model gateways when you are not self-hosting or using BentoCloud, using [DaoXE](https://daoxe.com) (`https://api.daoxe.com/v1`) as one concrete example. D