use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct SourceFileContentContent {
pub item: std::collections::HashMap<String, serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub sample: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct SourceFileContent {
pub content: Vec<SourceFileContentContent>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct SourceFileID {
pub id: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct SourceStoredCompletions {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_after: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_before: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
}
pub type Source = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InputMessagesTemplateTemplateEvalItemContentOutputText {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InputMessagesTemplateTemplateEvalItemContentInputImage {
pub image_url: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub detail: Option<String>,
}
pub type InputMessagesTemplateTemplateEvalItemContent = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum InputMessagesTemplateTemplateEvalItemRole {
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "system")]
System,
#[serde(rename = "developer")]
Developer,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InputMessagesTemplateTemplateEvalItem {
pub content: InputMessagesTemplateTemplateEvalItemContent,
pub role: InputMessagesTemplateTemplateEvalItemRole,
#[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
pub type_: Option<String>,
}
pub type InputMessagesTemplateTemplate = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InputMessagesTemplate {
pub template: Vec<InputMessagesTemplateTemplate>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct InputMessagesItemReference {
pub item_reference: String,
#[serde(rename = "type")]
pub type_: String,
}
pub type InputMessages = serde_json::Value;
pub type SamplingParamsResponseFormat = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct SamplingParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_completion_tokens: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reasoning_effort: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub response_format: Option<SamplingParamsResponseFormat>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub seed: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub temperature: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_p: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CreateEvalCompletionsRunDataSource {
pub source: Source,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub input_messages: Option<InputMessages>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub sampling_params: Option<SamplingParams>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct CreateEvalJSONLRunDataSource {
pub source: Source,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalAPIError {
pub code: String,
pub message: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesSourceFileContentContent {
pub item: std::collections::HashMap<String, serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub sample: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesSourceFileContent {
pub content: Vec<DataSourceResponsesSourceFileContentContent>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesSourceFileID {
pub id: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesSourceResponses {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_after: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_before: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub instructions_search: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reasoning_effort: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub temperature: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_p: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub users: Option<Vec<String>>,
}
pub type DataSourceResponsesSource = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesInputMessagesTemplateTemplateChatMessage {
pub content: String,
pub role: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentOutputText {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesInputMessagesTemplateTemplateEvalItemContentInputImage {
pub image_url: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub detail: Option<String>,
}
pub type DataSourceResponsesInputMessagesTemplateTemplateEvalItemContent = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum DataSourceResponsesInputMessagesTemplateTemplateEvalItemRole {
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "system")]
System,
#[serde(rename = "developer")]
Developer,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesInputMessagesTemplateTemplateEvalItem {
pub content: DataSourceResponsesInputMessagesTemplateTemplateEvalItemContent,
pub role: DataSourceResponsesInputMessagesTemplateTemplateEvalItemRole,
#[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
pub type_: Option<String>,
}
pub type DataSourceResponsesInputMessagesTemplateTemplate = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesInputMessagesTemplate {
pub template: Vec<DataSourceResponsesInputMessagesTemplateTemplate>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesInputMessagesItemReference {
pub item_reference: String,
#[serde(rename = "type")]
pub type_: String,
}
pub type DataSourceResponsesInputMessages = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesSamplingParamsText {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub format: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponsesSamplingParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_completion_tokens: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reasoning_effort: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub seed: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub temperature: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub text: Option<DataSourceResponsesSamplingParamsText>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_p: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceResponses {
pub source: DataSourceResponsesSource,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub input_messages: Option<DataSourceResponsesInputMessages>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub sampling_params: Option<DataSourceResponsesSamplingParams>,
}
pub type DataSource = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct PerModelUsage {
pub cached_tokens: i64,
pub completion_tokens: i64,
pub invocation_count: i64,
#[serde(rename = "model_name")]
pub run_model_name: String,
pub prompt_tokens: i64,
pub total_tokens: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct PerTestingCriteriaResult {
pub failed: i64,
pub passed: i64,
pub testing_criteria: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct ResultCounts {
pub errored: i64,
pub failed: i64,
pub passed: i64,
pub total: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct RunCancelResponse {
pub id: String,
pub created_at: i64,
pub data_source: DataSource,
pub error: EvalAPIError,
pub eval_id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
pub model: String,
pub name: String,
pub object: String,
pub per_model_usage: Vec<PerModelUsage>,
pub per_testing_criteria_results: Vec<PerTestingCriteriaResult>,
pub report_url: String,
pub result_counts: ResultCounts,
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct RunCreateParams {
pub data_source: DataSource,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceSourceFileContentContent {
pub item: std::collections::HashMap<String, serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub sample: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceSourceFileContent {
pub content: Vec<DataSourceCreateEvalResponsesRunDataSourceSourceFileContentContent>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceSourceFileID {
pub id: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceSourceResponses {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_after: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub created_before: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub instructions_search: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reasoning_effort: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub temperature: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_p: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub users: Option<serde_json::Value>,
}
pub type DataSourceCreateEvalResponsesRunDataSourceSource = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateChatMessage {
pub content: String,
pub role: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItemContentOutputText {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItemContentInputImage {
pub image_url: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub detail: Option<String>,
}
pub type DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItemContent = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItemRole {
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "system")]
System,
#[serde(rename = "developer")]
Developer,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItem {
pub content: DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItemContent,
pub role: DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplateEvalItemRole,
#[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
pub type_: Option<String>,
}
pub type DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplate = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplate {
pub template: Vec<DataSourceCreateEvalResponsesRunDataSourceInputMessagesTemplateTemplate>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceInputMessagesItemReference {
pub item_reference: String,
#[serde(rename = "type")]
pub type_: String,
}
pub type DataSourceCreateEvalResponsesRunDataSourceInputMessages = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceSamplingParamsText {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub format: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSourceSamplingParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub max_completion_tokens: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub reasoning_effort: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub seed: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub temperature: Option<f64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub text: Option<DataSourceCreateEvalResponsesRunDataSourceSamplingParamsText>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub tools: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub top_p: Option<f64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceCreateEvalResponsesRunDataSource {
pub source: DataSourceCreateEvalResponsesRunDataSourceSource,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub input_messages: Option<DataSourceCreateEvalResponsesRunDataSourceInputMessages>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub model: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub sampling_params: Option<DataSourceCreateEvalResponsesRunDataSourceSamplingParams>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct RunCreateResponse {
pub id: String,
pub created_at: i64,
pub data_source: DataSource,
pub error: EvalAPIError,
pub eval_id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
pub model: String,
pub name: String,
pub object: String,
pub per_model_usage: Vec<PerModelUsage>,
pub per_testing_criteria_results: Vec<PerTestingCriteriaResult>,
pub report_url: String,
pub result_counts: ResultCounts,
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct RunDeleteResponse {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub deleted: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub object: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub run_id: Option<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum RunListParamsOrder {
#[serde(rename = "asc")]
Asc,
#[serde(rename = "desc")]
Desc,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum RunListParamsStatus {
#[serde(rename = "queued")]
Queued,
#[serde(rename = "in_progress")]
InProgress,
#[serde(rename = "completed")]
Completed,
#[serde(rename = "canceled")]
Canceled,
#[serde(rename = "failed")]
Failed,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct RunListParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub after: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub order: Option<RunListParamsOrder>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub status: Option<RunListParamsStatus>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct RunListResponse {
pub id: String,
pub created_at: i64,
pub data_source: DataSource,
pub error: EvalAPIError,
pub eval_id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
pub model: String,
pub name: String,
pub object: String,
pub per_model_usage: Vec<PerModelUsage>,
pub per_testing_criteria_results: Vec<PerTestingCriteriaResult>,
pub report_url: String,
pub result_counts: ResultCounts,
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct RunRetrieveResponse {
pub id: String,
pub created_at: i64,
pub data_source: DataSource,
pub error: EvalAPIError,
pub eval_id: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
pub model: String,
pub name: String,
pub object: String,
pub per_model_usage: Vec<PerModelUsage>,
pub per_testing_criteria_results: Vec<PerTestingCriteriaResult>,
pub report_url: String,
pub result_counts: ResultCounts,
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalCreateParams {
pub data_source_config: DataSourceConfig,
pub testing_criteria: Vec<TestingCriterion>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceConfigCustom {
pub item_schema: std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub include_sample_schema: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceConfigLogs {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct DataSourceConfigStoredCompletions {
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<std::collections::HashMap<String, serde_json::Value>>,
}
pub type DataSourceConfig = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct TestingCriterionLabelModelInputSimpleInputMessage {
pub content: String,
pub role: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct TestingCriterionLabelModelInputEvalItemContentOutputText {
pub text: String,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct TestingCriterionLabelModelInputEvalItemContentInputImage {
pub image_url: String,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub detail: Option<String>,
}
pub type TestingCriterionLabelModelInputEvalItemContent = serde_json::Value;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum TestingCriterionLabelModelInputEvalItemRole {
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "system")]
System,
#[serde(rename = "developer")]
Developer,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct TestingCriterionLabelModelInputEvalItem {
pub content: TestingCriterionLabelModelInputEvalItemContent,
pub role: TestingCriterionLabelModelInputEvalItemRole,
#[serde(rename = "type", skip_serializing_if = "Option::is_none", default)]
pub type_: Option<String>,
}
pub type TestingCriterionLabelModelInput = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct TestingCriterionLabelModel {
pub input: Vec<TestingCriterionLabelModelInput>,
pub labels: serde_json::Value,
pub model: String,
pub name: String,
pub passing_labels: serde_json::Value,
#[serde(rename = "type")]
pub type_: String,
}
pub type TestingCriterion = serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalCreateResponse {
pub id: String,
pub created_at: i64,
pub data_source_config: DataSourceConfig,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
pub name: String,
pub object: String,
pub testing_criteria: Vec<TestingCriterion>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalCustomDataSourceConfig {
#[serde(rename = "schema")]
pub schema_: std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "type")]
pub type_: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalDeleteResponse {
pub deleted: bool,
pub eval_id: String,
pub object: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum EvalListParamsOrder {
#[serde(rename = "asc")]
Asc,
#[serde(rename = "desc")]
Desc,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
#[non_exhaustive]
pub enum EvalListParamsOrderBy {
#[serde(rename = "created_at")]
CreatedAt,
#[serde(rename = "updated_at")]
UpdatedAt,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalListParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub after: Option<String>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub order: Option<EvalListParamsOrder>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub order_by: Option<EvalListParamsOrderBy>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalListResponse {
pub id: String,
pub created_at: i64,
pub data_source_config: DataSourceConfig,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
pub name: String,
pub object: String,
pub testing_criteria: Vec<TestingCriterion>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalRetrieveResponse {
pub id: String,
pub created_at: i64,
pub data_source_config: DataSourceConfig,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
pub name: String,
pub object: String,
pub testing_criteria: Vec<TestingCriterion>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalStoredCompletionsDataSourceConfig {
#[serde(rename = "schema")]
pub schema_: std::collections::HashMap<String, serde_json::Value>,
#[serde(rename = "type")]
pub type_: String,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalUpdateParams {
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub name: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "structured", derive(schemars::JsonSchema))]
pub struct EvalUpdateResponse {
pub id: String,
pub created_at: i64,
pub data_source_config: DataSourceConfig,
#[serde(skip_serializing_if = "Option::is_none", default)]
pub metadata: Option<serde_json::Value>,
pub name: String,
pub object: String,
pub testing_criteria: Vec<TestingCriterion>,
}