Get an eval
evals.retrieve(eval_id) -> EvalRetrieveResponse
get /evals/{eval_id}
Get an evaluation by ID.
Parameters
eval_id: String
Returns
-
class EvalRetrieveResponseAn Eval object with a data source config and testing criteria. An Eval represents a task to be done for your LLM integration. Like:
-
Improve the quality of my chatbot
-
See how well my chatbot handles customer support
-
Check if o4-mini is better at my usecase than gpt-4o
-
id: StringUnique identifier for the evaluation.
-
created_at: IntegerThe Unix timestamp (in seconds) for when the eval was created.
-
data_source_config: EvalCustomDataSourceConfig | Logs{ schema, type, metadata} | EvalStoredCompletionsDataSourceConfigConfiguration of data sources used in runs of the evaluation.
-
class EvalCustomDataSourceConfigA CustomDataSourceConfig which specifies the schema of your
itemand optionallysamplenamespaces. The response schema defines the shape of the data that will be:-
Used to define your testing criteria and
-
What data is required when creating a run
-
schema: Hash[Symbol, untyped]The json schema for the run data source items. Learn how to build JSON schemas here.
-
type: :customThe type of data source. Always
custom.:custom
-
-
class LogsA LogsDataSourceConfig which specifies the metadata property of your logs query. This is usually metadata like
usecase=chatbotorprompt-version=v2, etc. The schema returned by this data source config is used to defined what variables are available in your evals.itemandsampleare both defined when using this data source config.-
schema: Hash[Symbol, untyped]The json schema for the run data source items. Learn how to build JSON schemas here.
-
type: :logsThe type of data source. Always
logs.:logs
-
metadata: MetadataSet of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.
Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
-
-
class EvalStoredCompletionsDataSourceConfigDeprecated in favor of LogsDataSourceConfig.
-
schema: Hash[Symbol, untyped]The json schema for the run data source items. Learn how to build JSON schemas here.
-
type: :stored_completionsThe type of data source. Always
stored_completions.:stored_completions
-
metadata: MetadataSet of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.
Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
-
-
-
metadata: MetadataSet of 16 key-value pairs that can be attached to an object. This can be useful for storing additional information about the object in a structured format, and querying for objects via API or the dashboard.
Keys are strings with a maximum length of 64 characters. Values are strings with a maximum length of 512 characters.
-
name: StringThe name of the evaluation.
-
object: :evalThe object type.
:eval
-
testing_criteria: Array[LabelModelGrader | StringCheckGrader | TextSimilarityGrader & { pass_threshold} | 2 more]A list of testing criteria.
-
class LabelModelGraderA LabelModelGrader object which uses a model to assign labels to each item in the evaluation.
-
input: Array[Input{ content, role, type}]-
content: String | ResponseInputText | OutputText{ text, type} | 3 moreInputs to the model - can contain template strings. Supports text, output text, input images, and input audio, either as a single item or an array of items.
-
String = StringA text input to the model.
-
class ResponseInputTextA text input to the model.
-
text: StringThe text input to the model.
-
type: :input_textThe type of the input item. Always
input_text.:input_text
-
prompt_cache_breakpoint: PromptCacheBreakpoint{ mode}Marks the exact end of a reusable prompt prefix. The breakpoint inherits its TTL from the request's
prompt_cache_options.ttl; the boundary is not rounded to a token block.-
mode: :explicitThe breakpoint mode. Always
explicit.:explicit
-
-
-
class OutputTextA text output from the model.
-
text: StringThe text output from the model.
-
type: :output_textThe type of the output text. Always
output_text.:output_text
-
-
class InputImageAn image input block used within EvalItem content arrays.
-
image_url: StringThe URL of the image input.
-
type: :input_imageThe type of the image input. Always
input_image.:input_image
-
detail: StringThe detail level of the image to be sent to the model. One of
high,low, orauto. Defaults toauto.
-
-
class ResponseInputAudioAn audio input to the model.
-
input_audio: InputAudio{ data, format_}-
data: StringBase64-encoded audio data.
-
format_: :mp3 | :wavThe format of the audio data. Currently supported formats are
mp3andwav.-
:mp3 -
:wav
-
-
-
type: :input_audioThe type of the input item. Always
input_audio.:input_audio
-
-
GraderInputs = Array[GraderInputItem]A list of inputs, each of which may be either an input text, output text, input image, or input audio object.
-
String = StringA text input to the model.
-
class ResponseInputTextA text input to the model.
-
class OutputTextA text output from the model.
-
text: StringThe text output from the model.
-
type: :output_textThe type of the output text. Always
output_text.:output_text
-
-
class InputImageAn image input block used within EvalItem content arrays.
-
image_url: StringThe URL of the image input.
-
type: :input_imageThe type of the image input. Always
input_image.:input_image
-
detail: StringThe detail level of the image to be sent to the model. One of
high,low, orauto. Defaults toauto.
-
-
class ResponseInputAudioAn audio input to the model.
-
-
-
role: :user | :assistant | :system | :developerThe role of the message input. One of
user,assistant,system, ordeveloper.-
:user -
:assistant -
:system -
:developer
-
-
type: :messageThe type of the message input. Always
message.:message
-
-
labels: Array[String]The labels to assign to each item in the evaluation.
-
model: StringThe model to use for the evaluation. Must support structured outputs.
-
name: StringThe name of the grader.
-
passing_labels: Array[String]The labels that indicate a passing result. Must be a subset of labels.
-
type: :label_modelThe object type, which is always
label_model.:label_model
-
-
class StringCheckGraderA StringCheckGrader object that performs a string comparison between input and reference using a specified operation.
-
input: StringThe input text. This may include template strings.
-
name: StringThe name of the grader.
-
operation: :eq | :ne | :like | :ilikeThe string check operation to perform. One of
eq,ne,like, orilike.-
:eq -
:ne -
:like -
:ilike
-
-
reference: StringThe reference text. This may include template strings.
-
type: :string_checkThe object type, which is always
string_check.:string_check
-
-
class EvalGraderTextSimilarityA TextSimilarityGrader object which grades text based on similarity metrics.
-
pass_threshold: FloatThe threshold for the score.
-
-
class EvalGraderPythonA PythonGrader object that runs a python script on the input.
-
pass_threshold: FloatThe threshold for the score.
-
-
class EvalGraderScoreModelA ScoreModelGrader object that uses a model to assign a score to the input.
-
pass_threshold: FloatThe threshold for the score.
-
-
-
Example
require "openai"
openai = OpenAI::Client.new(api_key: "My API Key")
eval_ = openai.evals.retrieve("eval_id")
puts(eval_)
Response
{
"id": "id",
"created_at": 0,
"data_source_config": {
"schema": {
"foo": "bar"
},
"type": "custom"
},
"metadata": {
"foo": "string"
},
"name": "Chatbot effectiveness Evaluation",
"object": "eval",
"testing_criteria": [
{
"input": [
{
"content": "string",
"role": "user",
"type": "message"
}
],
"labels": [
"string"
],
"model": "model",
"name": "name",
"passing_labels": [
"string"
],
"type": "label_model"
}
]
}