curl --request POST \
--url https://api.galtea.ai/runs/{id}/relaunch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"versionId": "version_123",
"useCurrentTestCases": false
}
'import requests
url = "https://api.galtea.ai/runs/{id}/relaunch"
payload = {
"versionId": "version_123",
"useCurrentTestCases": False
}
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({versionId: 'version_123', useCurrentTestCases: false})
};
fetch('https://api.galtea.ai/runs/{id}/relaunch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.galtea.ai/runs/{id}/relaunch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'versionId' => 'version_123',
'useCurrentTestCases' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.galtea.ai/runs/{id}/relaunch"
payload := strings.NewReader("{\n \"versionId\": \"version_123\",\n \"useCurrentTestCases\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.galtea.ai/runs/{id}/relaunch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"versionId\": \"version_123\",\n \"useCurrentTestCases\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galtea.ai/runs/{id}/relaunch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"versionId\": \"version_123\",\n \"useCurrentTestCases\": false\n}"
response = http.request(request)
puts response.read_body{
"id": "run_123",
"productId": "product_123",
"versionId": "version_123",
"userId": "user_123",
"ordinal": 42,
"customId": "nightly-regression",
"relaunchedFromRunId": "run_122",
"openedBy": "LAUNCH",
"status": "COMPLETED",
"evaluationCount": 120,
"sessionCount": 30,
"finishedAt": "2023-11-07T05:31:56Z",
"deletedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"launches": [
{
"id": "runLaunch_123",
"runId": "run_123",
"kind": "GENERATE_INFERENCES",
"jobId": "<string>",
"status": "COMPLETED",
"error": "<string>",
"request": {},
"resolvedInputs": {},
"finishedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z"
}
]
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}Run a run again
Repeats a run and answers with the new one, which names the run it came from. The launches of the source decide the form: a run the platform launched drives the agent again and scores the new sessions, while a run that scored sessions which already existed scores them again and creates none. A run the client performed has no launch to read, so its own evaluations name the sessions and metrics to score again; no new session is created, because only that client can produce one.
curl --request POST \
--url https://api.galtea.ai/runs/{id}/relaunch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"versionId": "version_123",
"useCurrentTestCases": false
}
'import requests
url = "https://api.galtea.ai/runs/{id}/relaunch"
payload = {
"versionId": "version_123",
"useCurrentTestCases": False
}
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({versionId: 'version_123', useCurrentTestCases: false})
};
fetch('https://api.galtea.ai/runs/{id}/relaunch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.galtea.ai/runs/{id}/relaunch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'versionId' => 'version_123',
'useCurrentTestCases' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.galtea.ai/runs/{id}/relaunch"
payload := strings.NewReader("{\n \"versionId\": \"version_123\",\n \"useCurrentTestCases\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.galtea.ai/runs/{id}/relaunch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"versionId\": \"version_123\",\n \"useCurrentTestCases\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galtea.ai/runs/{id}/relaunch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"versionId\": \"version_123\",\n \"useCurrentTestCases\": false\n}"
response = http.request(request)
puts response.read_body{
"id": "run_123",
"productId": "product_123",
"versionId": "version_123",
"userId": "user_123",
"ordinal": 42,
"customId": "nightly-regression",
"relaunchedFromRunId": "run_122",
"openedBy": "LAUNCH",
"status": "COMPLETED",
"evaluationCount": 120,
"sessionCount": 30,
"finishedAt": "2023-11-07T05:31:56Z",
"deletedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"launches": [
{
"id": "runLaunch_123",
"runId": "run_123",
"kind": "GENERATE_INFERENCES",
"jobId": "<string>",
"status": "COMPLETED",
"error": "<string>",
"request": {},
"resolvedInputs": {},
"finishedAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z"
}
]
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}{
"error": "Error type",
"message": "Error message description"
}Authorizations
API key authorization. Pass your API key in the Authorization header as a Bearer token. Both new (gsk_*) and legacy (gsk-) API keys are accepted, e.g. Authorization: Bearer gsk_... or Authorization: Bearer gsk-....
Path Parameters
Run ID
"run_123"
Body
Run the repetition against a different version. Only for a run the platform launched itself; a run that scored existing sessions refuses it, because those sessions already name their version.
1"version_123"
Resolve the original request again instead of repeating the exact rows that ran, so test cases added since are included. Defaults to false, which keeps the repetition comparable with its source.
false
Response
Run launched again successfully
"run_123"
"product_123"
"version_123"
"user_123"
Per-product launch number, starting at 1 and never reused
42
Caller-supplied label
"nightly-regression"
The run this one repeats, when POST /runs/{id}/relaunch minted it
"run_122"
LAUNCH when a launch endpoint opened the run, which then closes when its last launch ends. CALLER when POST /runs opened it, which only POST /runs/{id}/close ends.
LAUNCH, CALLER "LAUNCH"
RUNNING, COMPLETED, FAILED, CANCELLED "COMPLETED"
Evaluations this run launched
120
Distinct sessions covered by the evaluations of this run
30
The launches the platform performed inside this run, oldest first. Single-run reads only.
Show child attributes
Show child attributes