Skip to content

Commit 4888500

Browse files
authored
feat: add tenant-scoped Tinker model aliases (#614)
Return the Tinker API key to ART clients and expose /v1/models alias management so tenant-scoped routing works through the OpenAI-compatible Tinker server. Made-with: Cursor
1 parent ec65164 commit 4888500

File tree

3 files changed

+279
-168
lines changed

3 files changed

+279
-168
lines changed

src/art/tinker/backend.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
from mp_actors import move_to_child_process
55

6+
from .. import dev
7+
from ..backend import AnyTrainableModel
68
from ..local.backend import LocalBackend
79
from ..local.service import ModelService
810
from ..model import TrainableModel
@@ -26,6 +28,19 @@ def __init__(
2628
os.environ["TINKER_API_KEY"] = tinker_api_key
2729
super().__init__(in_process=in_process, path=path)
2830

31+
async def _prepare_backend_for_training(
32+
self,
33+
model: AnyTrainableModel,
34+
config: dev.OpenAIServerConfig | None = None,
35+
) -> tuple[str, str]:
36+
api_key = os.environ["TINKER_API_KEY"]
37+
config_dict: dict = dict(config or {})
38+
server_args = dict(config_dict.get("server_args", {}))
39+
server_args["api_key"] = api_key
40+
config_dict["server_args"] = server_args
41+
base_url, _ = await super()._prepare_backend_for_training(model, config)
42+
return base_url, api_key
43+
2944
async def _get_service(self, model: TrainableModel) -> ModelService:
3045
from ..dev.get_model_config import get_model_config
3146
from ..dev.model import TinkerArgs, TinkerTrainingClientArgs

0 commit comments

Comments
 (0)