Checkpoint a session
Snapshots the sandbox filesystem and records the conversation position, without ending the session. The session cannot take a message while the snapshot is taken (about 20 s per GB of workspace). Allowed while ready or paused; 409 while a run is in progress or an approval is pending. Checkpoints expire 30 days after they were taken or last rolled back to.
curl --request POST \
--url https://api.veri.studio/v1/sessions/{session_id}/checkpoints \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "<string>"
}
'import requests
url = "https://api.veri.studio/v1/sessions/{session_id}/checkpoints"
payload = { "label": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({label: '<string>'})
};
fetch('https://api.veri.studio/v1/sessions/{session_id}/checkpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"object": "<string>",
"id": "<string>",
"job_id": "<string>",
"step": 123,
"kind": "<string>",
"payload": "<string>",
"size_bytes": 123,
"file_count": 123,
"status": "<string>",
"pinned": true,
"created_at": "2023-11-07T05:31:56Z",
"metrics": "<unknown>",
"expires_at": "2023-11-07T05:31:56Z"
}Authorizations
API key with the vk_ prefix. Create one from the dashboard.
Path Parameters
Session ID
Body
Free-text label, at most 128 characters.
Response
The new checkpoint
Note the absence of s3_prefix: storage layout is not part of the API. The
custom-models design already ruled against exposing bucket paths, and keeping
them internal is what let C1 add a new prefix without an API change.
Trainer global_step. Also addressable as <job_id>@<step>.
"resumable" (includes optimizer state) or "weights" (servable only).
Loss/reward at this step, so picking the best step is a list call.
curl --request POST \
--url https://api.veri.studio/v1/sessions/{session_id}/checkpoints \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"label": "<string>"
}
'import requests
url = "https://api.veri.studio/v1/sessions/{session_id}/checkpoints"
payload = { "label": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({label: '<string>'})
};
fetch('https://api.veri.studio/v1/sessions/{session_id}/checkpoints', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"object": "<string>",
"id": "<string>",
"job_id": "<string>",
"step": 123,
"kind": "<string>",
"payload": "<string>",
"size_bytes": 123,
"file_count": 123,
"status": "<string>",
"pinned": true,
"created_at": "2023-11-07T05:31:56Z",
"metrics": "<unknown>",
"expires_at": "2023-11-07T05:31:56Z"
}
