curl --request POST \
--url https://api.galileo.ai/v2/scorers/llm/validate/log_record \
--header 'Content-Type: application/json' \
--header 'Galileo-API-Key: <api-key>' \
--data '
{
"filters": [
{
"case_sensitive": true,
"name": "input",
"operator": "eq",
"type": "text",
"value": "example input"
}
],
"log_stream_id": "00000000-0000-0000-0000-000000000000",
"pagination": {
"limit": 5,
"starting_token": 0
},
"sort": {
"ascending": false,
"name": "updated_at",
"sort_type": "column"
}
}
'import requests
url = "https://api.galileo.ai/v2/scorers/llm/validate/log_record"
payload = {
"filters": [
{
"case_sensitive": True,
"name": "input",
"operator": "eq",
"type": "text",
"value": "example input"
}
],
"log_stream_id": "00000000-0000-0000-0000-000000000000",
"pagination": {
"limit": 5,
"starting_token": 0
},
"sort": {
"ascending": False,
"name": "updated_at",
"sort_type": "column"
}
}
headers = {
"Galileo-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Galileo-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
filters: [
{
case_sensitive: true,
name: 'input',
operator: 'eq',
type: 'text',
value: 'example input'
}
],
log_stream_id: '00000000-0000-0000-0000-000000000000',
pagination: {limit: 5, starting_token: 0},
sort: {ascending: false, name: 'updated_at', sort_type: 'column'}
})
};
fetch('https://api.galileo.ai/v2/scorers/llm/validate/log_record', 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.galileo.ai/v2/scorers/llm/validate/log_record",
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([
'filters' => [
[
'case_sensitive' => true,
'name' => 'input',
'operator' => 'eq',
'type' => 'text',
'value' => 'example input'
]
],
'log_stream_id' => '00000000-0000-0000-0000-000000000000',
'pagination' => [
'limit' => 5,
'starting_token' => 0
],
'sort' => [
'ascending' => false,
'name' => 'updated_at',
'sort_type' => 'column'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Galileo-API-Key: <api-key>"
],
]);
$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.galileo.ai/v2/scorers/llm/validate/log_record"
payload := strings.NewReader("{\n \"filters\": [\n {\n \"case_sensitive\": true,\n \"name\": \"input\",\n \"operator\": \"eq\",\n \"type\": \"text\",\n \"value\": \"example input\"\n }\n ],\n \"log_stream_id\": \"00000000-0000-0000-0000-000000000000\",\n \"pagination\": {\n \"limit\": 5,\n \"starting_token\": 0\n },\n \"sort\": {\n \"ascending\": false,\n \"name\": \"updated_at\",\n \"sort_type\": \"column\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Galileo-API-Key", "<api-key>")
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.galileo.ai/v2/scorers/llm/validate/log_record")
.header("Galileo-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"filters\": [\n {\n \"case_sensitive\": true,\n \"name\": \"input\",\n \"operator\": \"eq\",\n \"type\": \"text\",\n \"value\": \"example input\"\n }\n ],\n \"log_stream_id\": \"00000000-0000-0000-0000-000000000000\",\n \"pagination\": {\n \"limit\": 5,\n \"starting_token\": 0\n },\n \"sort\": {\n \"ascending\": false,\n \"name\": \"updated_at\",\n \"sort_type\": \"column\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galileo.ai/v2/scorers/llm/validate/log_record")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Galileo-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"filters\": [\n {\n \"case_sensitive\": true,\n \"name\": \"input\",\n \"operator\": \"eq\",\n \"type\": \"text\",\n \"value\": \"example input\"\n }\n ],\n \"log_stream_id\": \"00000000-0000-0000-0000-000000000000\",\n \"pagination\": {\n \"limit\": 5,\n \"starting_token\": 0\n },\n \"sort\": {\n \"ascending\": false,\n \"name\": \"updated_at\",\n \"sort_type\": \"column\"\n }\n}"
response = http.request(request)
puts response.read_body{
"metrics_experiment_id": "<string>",
"project_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Validate Llm Scorer Log Record
curl --request POST \
--url https://api.galileo.ai/v2/scorers/llm/validate/log_record \
--header 'Content-Type: application/json' \
--header 'Galileo-API-Key: <api-key>' \
--data '
{
"filters": [
{
"case_sensitive": true,
"name": "input",
"operator": "eq",
"type": "text",
"value": "example input"
}
],
"log_stream_id": "00000000-0000-0000-0000-000000000000",
"pagination": {
"limit": 5,
"starting_token": 0
},
"sort": {
"ascending": false,
"name": "updated_at",
"sort_type": "column"
}
}
'import requests
url = "https://api.galileo.ai/v2/scorers/llm/validate/log_record"
payload = {
"filters": [
{
"case_sensitive": True,
"name": "input",
"operator": "eq",
"type": "text",
"value": "example input"
}
],
"log_stream_id": "00000000-0000-0000-0000-000000000000",
"pagination": {
"limit": 5,
"starting_token": 0
},
"sort": {
"ascending": False,
"name": "updated_at",
"sort_type": "column"
}
}
headers = {
"Galileo-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Galileo-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
filters: [
{
case_sensitive: true,
name: 'input',
operator: 'eq',
type: 'text',
value: 'example input'
}
],
log_stream_id: '00000000-0000-0000-0000-000000000000',
pagination: {limit: 5, starting_token: 0},
sort: {ascending: false, name: 'updated_at', sort_type: 'column'}
})
};
fetch('https://api.galileo.ai/v2/scorers/llm/validate/log_record', 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.galileo.ai/v2/scorers/llm/validate/log_record",
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([
'filters' => [
[
'case_sensitive' => true,
'name' => 'input',
'operator' => 'eq',
'type' => 'text',
'value' => 'example input'
]
],
'log_stream_id' => '00000000-0000-0000-0000-000000000000',
'pagination' => [
'limit' => 5,
'starting_token' => 0
],
'sort' => [
'ascending' => false,
'name' => 'updated_at',
'sort_type' => 'column'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"Galileo-API-Key: <api-key>"
],
]);
$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.galileo.ai/v2/scorers/llm/validate/log_record"
payload := strings.NewReader("{\n \"filters\": [\n {\n \"case_sensitive\": true,\n \"name\": \"input\",\n \"operator\": \"eq\",\n \"type\": \"text\",\n \"value\": \"example input\"\n }\n ],\n \"log_stream_id\": \"00000000-0000-0000-0000-000000000000\",\n \"pagination\": {\n \"limit\": 5,\n \"starting_token\": 0\n },\n \"sort\": {\n \"ascending\": false,\n \"name\": \"updated_at\",\n \"sort_type\": \"column\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Galileo-API-Key", "<api-key>")
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.galileo.ai/v2/scorers/llm/validate/log_record")
.header("Galileo-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"filters\": [\n {\n \"case_sensitive\": true,\n \"name\": \"input\",\n \"operator\": \"eq\",\n \"type\": \"text\",\n \"value\": \"example input\"\n }\n ],\n \"log_stream_id\": \"00000000-0000-0000-0000-000000000000\",\n \"pagination\": {\n \"limit\": 5,\n \"starting_token\": 0\n },\n \"sort\": {\n \"ascending\": false,\n \"name\": \"updated_at\",\n \"sort_type\": \"column\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.galileo.ai/v2/scorers/llm/validate/log_record")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Galileo-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"filters\": [\n {\n \"case_sensitive\": true,\n \"name\": \"input\",\n \"operator\": \"eq\",\n \"type\": \"text\",\n \"value\": \"example input\"\n }\n ],\n \"log_stream_id\": \"00000000-0000-0000-0000-000000000000\",\n \"pagination\": {\n \"limit\": 5,\n \"starting_token\": 0\n },\n \"sort\": {\n \"ascending\": false,\n \"name\": \"updated_at\",\n \"sort_type\": \"column\"\n }\n}"
response = http.request(request)
puts response.read_body{
"metrics_experiment_id": "<string>",
"project_id": "<string>"
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Body
Request to validate a new LLM scorer based on a log record. This is used to create a new experiment with the copied log records to store the metric testing results.
Template for a chainpoll metric prompt, containing all the info necessary to send a chainpoll prompt.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Log stream id associated with the traces.
Experiment id associated with the traces.
Metrics testing id associated with the traces.
- LogRecordsIDFilter
- LogRecordsDateFilter
- LogRecordsNumberFilter
- LogRecordsBooleanFilter
- LogRecordsCollectionFilter
- LogRecordsTextFilter
- LogRecordsFullyAnnotatedFilter
Show child attributes
Show child attributes
- FilterLeaf[Annotated[Union[LogRecordsIDFilter, LogRecordsDateFilter, LogRecordsNumberFilter, LogRecordsBooleanFilter, LogRecordsCollectionFilter, LogRecordsTextFilter, LogRecordsFullyAnnotatedFilter], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]
- AndNode[Annotated[Union[LogRecordsIDFilter, LogRecordsDateFilter, LogRecordsNumberFilter, LogRecordsBooleanFilter, LogRecordsCollectionFilter, LogRecordsTextFilter, LogRecordsFullyAnnotatedFilter], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]
- OrNode[Annotated[Union[LogRecordsIDFilter, LogRecordsDateFilter, LogRecordsNumberFilter, LogRecordsBooleanFilter, LogRecordsCollectionFilter, LogRecordsTextFilter, LogRecordsFullyAnnotatedFilter], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]
- NotNode[Annotated[Union[LogRecordsIDFilter, LogRecordsDateFilter, LogRecordsNumberFilter, LogRecordsBooleanFilter, LogRecordsCollectionFilter, LogRecordsTextFilter, LogRecordsFullyAnnotatedFilter], FieldInfo(annotation=NoneType, required=True, discriminator='type')]]
Show child attributes
Show child attributes
Sort for the query. Defaults to native sort (created_at, id descending).
Show child attributes
Show child attributes
If True, include computed child counts (e.g., num_traces for sessions, num_spans for traces).
If True, include per-row scorer metadata (the dict returned alongside the score by code-based scorers via the (score, metadata) tuple-return contract) on each MetricSuccess in the response. Off by default to keep payloads small for callers that don't need it.
Optional multimodal content parts. When set, replaces the text-only query/response formatting in the validation job so that file content is passed through to the LLM.
A text segment within a message.
- TextContentPart
- FileContentPart
Show child attributes
Show child attributes
Was this page helpful?