async_openai/types/evals/
api.rs

1use crate::error::OpenAIError;
2use derive_builder::Builder;
3use serde::{Deserialize, Serialize};
4
5/// Sort order for listing evals.
6#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
7#[serde(rename_all = "lowercase")]
8pub enum ListEvalsOrder {
9    /// Ascending order
10    Asc,
11    /// Descending order
12    Desc,
13}
14
15/// Order by field for listing evals.
16#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
17#[serde(rename_all = "snake_case")]
18pub enum ListEvalsOrderBy {
19    /// Order by creation time
20    CreatedAt,
21    /// Order by last updated time
22    UpdatedAt,
23}
24
25/// Query parameters for listing evals.
26#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
27#[builder(name = "ListEvalsQueryArgs")]
28#[builder(pattern = "mutable")]
29#[builder(setter(into, strip_option), default)]
30#[builder(derive(Debug))]
31#[builder(build_fn(error = "OpenAIError"))]
32pub struct ListEvalsQuery {
33    /// Identifier for the last eval from the previous pagination request.
34    #[serde(skip_serializing_if = "Option::is_none")]
35    pub after: Option<String>,
36    /// Number of evals to retrieve.
37    #[serde(skip_serializing_if = "Option::is_none")]
38    pub limit: Option<u32>,
39    /// Sort order for evals by timestamp. Use `asc` for ascending order or `desc` for descending order.
40    #[serde(skip_serializing_if = "Option::is_none")]
41    pub order: Option<ListEvalsOrder>,
42    /// Evals can be ordered by creation time or last updated time. Use `created_at` for creation time or `updated_at` for last updated time.
43    #[serde(skip_serializing_if = "Option::is_none")]
44    pub order_by: Option<ListEvalsOrderBy>,
45}
46
47/// Sort order for getting eval runs.
48#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
49#[serde(rename_all = "lowercase")]
50pub enum GetEvalRunsOrder {
51    /// Ascending order
52    Asc,
53    /// Descending order
54    Desc,
55}
56
57/// Status filter for eval runs.
58#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
59#[serde(rename_all = "snake_case")]
60pub enum GetEvalRunsStatus {
61    /// Queued status
62    Queued,
63    /// In progress status
64    InProgress,
65    /// Completed status
66    Completed,
67    /// Canceled status
68    Canceled,
69    /// Failed status
70    Failed,
71}
72
73/// Query parameters for getting eval runs.
74#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
75#[builder(name = "GetEvalRunsQueryArgs")]
76#[builder(pattern = "mutable")]
77#[builder(setter(into, strip_option), default)]
78#[builder(derive(Debug))]
79#[builder(build_fn(error = "OpenAIError"))]
80pub struct GetEvalRunsQuery {
81    /// Identifier for the last run from the previous pagination request.
82    #[serde(skip_serializing_if = "Option::is_none")]
83    pub after: Option<String>,
84    /// Number of runs to retrieve.
85    #[serde(skip_serializing_if = "Option::is_none")]
86    pub limit: Option<u32>,
87    /// Sort order for runs by timestamp. Use `asc` for ascending order or `desc` for descending order. Defaults to `asc`.
88    #[serde(skip_serializing_if = "Option::is_none")]
89    pub order: Option<GetEvalRunsOrder>,
90    /// Filter runs by status. One of `queued` | `in_progress` | `failed` | `completed` | `canceled`.
91    #[serde(skip_serializing_if = "Option::is_none")]
92    pub status: Option<GetEvalRunsStatus>,
93}
94
95/// Sort order for getting eval run output items.
96#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
97#[serde(rename_all = "lowercase")]
98pub enum GetEvalRunOutputItemsOrder {
99    /// Ascending order
100    Asc,
101    /// Descending order
102    Desc,
103}
104
105/// Status filter for eval run output items.
106#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
107#[serde(rename_all = "lowercase")]
108pub enum GetEvalRunOutputItemsStatus {
109    /// Failed status
110    Fail,
111    /// Pass status
112    Pass,
113}
114
115/// Query parameters for getting eval run output items.
116#[derive(Debug, Serialize, Default, Clone, Builder, PartialEq)]
117#[builder(name = "GetEvalRunOutputItemsQueryArgs")]
118#[builder(pattern = "mutable")]
119#[builder(setter(into, strip_option), default)]
120#[builder(derive(Debug))]
121#[builder(build_fn(error = "OpenAIError"))]
122pub struct GetEvalRunOutputItemsQuery {
123    /// Identifier for the last output item from the previous pagination request.
124    #[serde(skip_serializing_if = "Option::is_none")]
125    pub after: Option<String>,
126    /// Number of output items to retrieve.
127    #[serde(skip_serializing_if = "Option::is_none")]
128    pub limit: Option<u32>,
129    /// Filter output items by status. Use `failed` to filter by failed output items or `pass` to filter by passed output items.
130    #[serde(skip_serializing_if = "Option::is_none")]
131    pub status: Option<GetEvalRunOutputItemsStatus>,
132    /// Sort order for output items by timestamp. Use `asc` for ascending order or `desc` for descending order. Defaults to `asc`.
133    #[serde(skip_serializing_if = "Option::is_none")]
134    pub order: Option<GetEvalRunOutputItemsOrder>,
135}