Flip an adapter to a new version
Point an attached alias at a new adapter model with zero downtime. The new version is staged alongside the current one; the alias cuts over atomically only once EVERY serving replica reports the new version loaded. Until then the call answers 409 ‘not yet converged’; retry the identical PATCH until it succeeds; the current version keeps serving throughout.
curl --request PATCH \
--url https://api.veri.studio/v1/deployments/{deployment_id}/adapters/{serve_name} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_id": "<string>"
}
'import requests
url = "https://api.veri.studio/v1/deployments/{deployment_id}/adapters/{serve_name}"
payload = { "model_id": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model_id: '<string>'})
};
fetch('https://api.veri.studio/v1/deployments/{deployment_id}/adapters/{serve_name}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"object": "<string>",
"id": "<string>",
"deployment_id": "<string>",
"serve_name": "<string>",
"model_id": "<string>",
"version": 123,
"internal_name": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"replicas": [
{
"replica_id": "<string>",
"state": "<string>",
"error": "<string>"
}
],
"previous_model_id": "<string>",
"pending_model_id": "<string>",
"pending_internal_name": "<string>",
"model_version_id": "<string>",
"pending_model_version_id": "<string>"
}Authorizations
API key with the vk_ prefix. Create one from the dashboard.
Path Parameters
Deployment ID
The adapter's public alias
Body
ID of the adapter model to flip the alias to. Same constraints as attach: owned, ready, artifact_type='adapter', matching base model.
Response
The cutover completed: the alias now serves the new model at version+1, status 'active'
A LoRA adapter attached to a multi_adapter deployment.
Always "deployment_adapter".
Attachment ID (ada_...).
The deployment (fleet) this adapter is attached to.
Public routing alias the adapter serves under.
The custom model currently served under this alias.
Monotonic version counter; incremented on every flip/rollback.
vLLM-facing name ("{serve_name}@v{version}-{tag}", tag derived from model_id): never reused for different weights.
attaching | active | detaching. 'active' means every serving replica reports the current version loaded.
Attachment creation time.
Last status/version change time.
Per-serving-replica load state for the CURRENT internal_name.
Show child attributes
Show child attributes
The previously served model, if any (the rollback target).
Mid-flip only: the staged new version awaiting fleet convergence.
Mid-flip only: the staged version's internal name.
The platform model version (model_versions.id) currently served under this alias, when the model belongs to a lineage.
Mid-flip only: the platform model version staged by a production
alias move; the fleet cuts over to it automatically on convergence.
curl --request PATCH \
--url https://api.veri.studio/v1/deployments/{deployment_id}/adapters/{serve_name} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model_id": "<string>"
}
'import requests
url = "https://api.veri.studio/v1/deployments/{deployment_id}/adapters/{serve_name}"
payload = { "model_id": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({model_id: '<string>'})
};
fetch('https://api.veri.studio/v1/deployments/{deployment_id}/adapters/{serve_name}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"object": "<string>",
"id": "<string>",
"deployment_id": "<string>",
"serve_name": "<string>",
"model_id": "<string>",
"version": 123,
"internal_name": "<string>",
"status": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"replicas": [
{
"replica_id": "<string>",
"state": "<string>",
"error": "<string>"
}
],
"previous_model_id": "<string>",
"pending_model_id": "<string>",
"pending_internal_name": "<string>",
"model_version_id": "<string>",
"pending_model_version_id": "<string>"
}
