Skip to main content

windmill_api/apis/
ai_evals_api.rs

1/*
2 * Windmill API
3 *
4 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
5 *
6 * The version of the OpenAPI document: 1.796.0
7 * Contact: contact@windmill.dev
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13use serde::{Deserialize, Serialize};
14use crate::{apis::ResponseContent, models};
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`collect_experiment`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum CollectExperimentError {
22    UnknownValue(serde_json::Value),
23}
24
25/// struct for typed errors of method [`create_eval_dataset`]
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(untagged)]
28pub enum CreateEvalDatasetError {
29    UnknownValue(serde_json::Value),
30}
31
32/// struct for typed errors of method [`delete_eval_dataset`]
33#[derive(Debug, Clone, Serialize, Deserialize)]
34#[serde(untagged)]
35pub enum DeleteEvalDatasetError {
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`eval_run_payload`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum EvalRunPayloadError {
43    UnknownValue(serde_json::Value),
44}
45
46/// struct for typed errors of method [`eval_subject_state`]
47#[derive(Debug, Clone, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum EvalSubjectStateError {
50    UnknownValue(serde_json::Value),
51}
52
53/// struct for typed errors of method [`experiment_results`]
54#[derive(Debug, Clone, Serialize, Deserialize)]
55#[serde(untagged)]
56pub enum ExperimentResultsError {
57    UnknownValue(serde_json::Value),
58}
59
60/// struct for typed errors of method [`get_eval_dataset`]
61#[derive(Debug, Clone, Serialize, Deserialize)]
62#[serde(untagged)]
63pub enum GetEvalDatasetError {
64    UnknownValue(serde_json::Value),
65}
66
67/// struct for typed errors of method [`list_all_experiments`]
68#[derive(Debug, Clone, Serialize, Deserialize)]
69#[serde(untagged)]
70pub enum ListAllExperimentsError {
71    UnknownValue(serde_json::Value),
72}
73
74/// struct for typed errors of method [`list_eval_cases`]
75#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum ListEvalCasesError {
78    UnknownValue(serde_json::Value),
79}
80
81/// struct for typed errors of method [`list_eval_datasets`]
82#[derive(Debug, Clone, Serialize, Deserialize)]
83#[serde(untagged)]
84pub enum ListEvalDatasetsError {
85    UnknownValue(serde_json::Value),
86}
87
88/// struct for typed errors of method [`recent_scorers`]
89#[derive(Debug, Clone, Serialize, Deserialize)]
90#[serde(untagged)]
91pub enum RecentScorersError {
92    UnknownValue(serde_json::Value),
93}
94
95/// struct for typed errors of method [`run_experiment`]
96#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(untagged)]
98pub enum RunExperimentError {
99    UnknownValue(serde_json::Value),
100}
101
102/// struct for typed errors of method [`scorer_defaults`]
103#[derive(Debug, Clone, Serialize, Deserialize)]
104#[serde(untagged)]
105pub enum ScorerDefaultsError {
106    UnknownValue(serde_json::Value),
107}
108
109/// struct for typed errors of method [`update_eval_dataset`]
110#[derive(Debug, Clone, Serialize, Deserialize)]
111#[serde(untagged)]
112pub enum UpdateEvalDatasetError {
113    UnknownValue(serde_json::Value),
114}
115
116
117/// Called by a run's own flow as its last step. The answers and scores a run produced live in its jobs, which have their own retention; this copies them onto the run's rows. Reading a run does the same, so this is what covers a run nobody opened. 
118pub async fn collect_experiment(configuration: &configuration::Configuration, workspace: &str, id: &str) -> Result<i32, Error<CollectExperimentError>> {
119    let local_var_configuration = configuration;
120
121    let local_var_client = &local_var_configuration.client;
122
123    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/experiments/collect", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
124    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
125
126    local_var_req_builder = local_var_req_builder.query(&[("id", &id.to_string())]);
127    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
128        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
129    }
130    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
131        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
132    };
133
134    let local_var_req = local_var_req_builder.build()?;
135    let local_var_resp = local_var_client.execute(local_var_req).await?;
136
137    let local_var_status = local_var_resp.status();
138    let local_var_content = local_var_resp.text().await?;
139
140    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
141        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
142    } else {
143        let local_var_entity: Option<CollectExperimentError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
144        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
145        Err(Error::ResponseError(local_var_error))
146    }
147}
148
149pub async fn create_eval_dataset(configuration: &configuration::Configuration, workspace: &str, create_eval_dataset_request: models::CreateEvalDatasetRequest) -> Result<String, Error<CreateEvalDatasetError>> {
150    let local_var_configuration = configuration;
151
152    let local_var_client = &local_var_configuration.client;
153
154    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/datasets/create", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
155    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
156
157    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
158        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
159    }
160    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
161        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
162    };
163    local_var_req_builder = local_var_req_builder.json(&create_eval_dataset_request);
164
165    let local_var_req = local_var_req_builder.build()?;
166    let local_var_resp = local_var_client.execute(local_var_req).await?;
167
168    let local_var_status = local_var_resp.status();
169    let local_var_content = local_var_resp.text().await?;
170
171    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
172        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
173    } else {
174        let local_var_entity: Option<CreateEvalDatasetError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
175        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
176        Err(Error::ResponseError(local_var_error))
177    }
178}
179
180/// The cases, the runs and their recorded case sets go with it through the foreign keys; the jobs those runs produced are left alone. 
181pub async fn delete_eval_dataset(configuration: &configuration::Configuration, workspace: &str, path: &str) -> Result<String, Error<DeleteEvalDatasetError>> {
182    let local_var_configuration = configuration;
183
184    let local_var_client = &local_var_configuration.client;
185
186    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/datasets/delete/{path}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), path=crate::apis::urlencode(path));
187    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
188
189    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
190        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
191    }
192    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
193        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
194    };
195
196    let local_var_req = local_var_req_builder.build()?;
197    let local_var_resp = local_var_client.execute(local_var_req).await?;
198
199    let local_var_status = local_var_resp.status();
200    let local_var_content = local_var_resp.text().await?;
201
202    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
203        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
204    } else {
205        let local_var_entity: Option<DeleteEvalDatasetError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
206        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
207        Err(Error::ResponseError(local_var_error))
208    }
209}
210
211/// Called by the step a run's flow places between the agent and its scorers. Every tool call is enriched with the arguments, result, status and duration of the job that ran it, and with the schema of the script version it ran, none of which the flow itself can read. 
212pub async fn eval_run_payload(configuration: &configuration::Configuration, workspace: &str, job_id: &str) -> Result<models::EvalRunPayload200Response, Error<EvalRunPayloadError>> {
213    let local_var_configuration = configuration;
214
215    let local_var_client = &local_var_configuration.client;
216
217    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/run_payload", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
218    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
219
220    local_var_req_builder = local_var_req_builder.query(&[("job_id", &job_id.to_string())]);
221    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
222        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
223    }
224    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
225        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
226    };
227
228    let local_var_req = local_var_req_builder.build()?;
229    let local_var_resp = local_var_client.execute(local_var_req).await?;
230
231    let local_var_status = local_var_resp.status();
232    let local_var_content = local_var_resp.text().await?;
233
234    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
235        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
236    } else {
237        let local_var_entity: Option<EvalRunPayloadError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
238        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
239        Err(Error::ResponseError(local_var_error))
240    }
241}
242
243/// The version it is deployed at. Small on purpose: the results endpoint reports the same thing but harvests scores and reads every job to do it, so it is not something to ask for on its own. 
244pub async fn eval_subject_state(configuration: &configuration::Configuration, workspace: &str, path: &str) -> Result<models::EvalSubjectState200Response, Error<EvalSubjectStateError>> {
245    let local_var_configuration = configuration;
246
247    let local_var_client = &local_var_configuration.client;
248
249    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/subject_state", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
250    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
251
252    local_var_req_builder = local_var_req_builder.query(&[("path", &path.to_string())]);
253    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
254        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
255    }
256    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
257        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
258    };
259
260    let local_var_req = local_var_req_builder.build()?;
261    let local_var_resp = local_var_client.execute(local_var_req).await?;
262
263    let local_var_status = local_var_resp.status();
264    let local_var_content = local_var_resp.text().await?;
265
266    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
267        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
268    } else {
269        let local_var_entity: Option<EvalSubjectStateError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
270        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
271        Err(Error::ResponseError(local_var_error))
272    }
273}
274
275pub async fn experiment_results(configuration: &configuration::Configuration, workspace: &str, path: &str, id: &str, baseline: Option<&str>) -> Result<models::ExperimentResults200Response, Error<ExperimentResultsError>> {
276    let local_var_configuration = configuration;
277
278    let local_var_client = &local_var_configuration.client;
279
280    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/experiments/results/{path}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), path=crate::apis::urlencode(path));
281    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
282
283    local_var_req_builder = local_var_req_builder.query(&[("id", &id.to_string())]);
284    if let Some(ref local_var_str) = baseline {
285        local_var_req_builder = local_var_req_builder.query(&[("baseline", &local_var_str.to_string())]);
286    }
287    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
288        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
289    }
290    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
291        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
292    };
293
294    let local_var_req = local_var_req_builder.build()?;
295    let local_var_resp = local_var_client.execute(local_var_req).await?;
296
297    let local_var_status = local_var_resp.status();
298    let local_var_content = local_var_resp.text().await?;
299
300    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
301        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
302    } else {
303        let local_var_entity: Option<ExperimentResultsError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
304        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
305        Err(Error::ResponseError(local_var_error))
306    }
307}
308
309pub async fn get_eval_dataset(configuration: &configuration::Configuration, workspace: &str, path: &str) -> Result<models::EvalDataset, Error<GetEvalDatasetError>> {
310    let local_var_configuration = configuration;
311
312    let local_var_client = &local_var_configuration.client;
313
314    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/datasets/get/{path}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), path=crate::apis::urlencode(path));
315    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
316
317    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
318        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
319    }
320    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
321        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
322    };
323
324    let local_var_req = local_var_req_builder.build()?;
325    let local_var_resp = local_var_client.execute(local_var_req).await?;
326
327    let local_var_status = local_var_resp.status();
328    let local_var_content = local_var_resp.text().await?;
329
330    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
331        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
332    } else {
333        let local_var_entity: Option<GetEvalDatasetError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
334        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
335        Err(Error::ResponseError(local_var_error))
336    }
337}
338
339pub async fn list_all_experiments(configuration: &configuration::Configuration, workspace: &str, subject_path: Option<&str>) -> Result<Vec<models::EvalExperiment>, Error<ListAllExperimentsError>> {
340    let local_var_configuration = configuration;
341
342    let local_var_client = &local_var_configuration.client;
343
344    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/experiments/list_all", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
345    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
346
347    if let Some(ref local_var_str) = subject_path {
348        local_var_req_builder = local_var_req_builder.query(&[("subject_path", &local_var_str.to_string())]);
349    }
350    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
351        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
352    }
353    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
354        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
355    };
356
357    let local_var_req = local_var_req_builder.build()?;
358    let local_var_resp = local_var_client.execute(local_var_req).await?;
359
360    let local_var_status = local_var_resp.status();
361    let local_var_content = local_var_resp.text().await?;
362
363    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
364        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
365    } else {
366        let local_var_entity: Option<ListAllExperimentsError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
367        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
368        Err(Error::ResponseError(local_var_error))
369    }
370}
371
372pub async fn list_eval_cases(configuration: &configuration::Configuration, workspace: &str, path: &str, page: Option<i32>, per_page: Option<i32>) -> Result<models::ListEvalCases200Response, Error<ListEvalCasesError>> {
373    let local_var_configuration = configuration;
374
375    let local_var_client = &local_var_configuration.client;
376
377    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/cases/list/{path}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), path=crate::apis::urlencode(path));
378    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
379
380    if let Some(ref local_var_str) = page {
381        local_var_req_builder = local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
382    }
383    if let Some(ref local_var_str) = per_page {
384        local_var_req_builder = local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
385    }
386    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
387        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
388    }
389    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
390        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
391    };
392
393    let local_var_req = local_var_req_builder.build()?;
394    let local_var_resp = local_var_client.execute(local_var_req).await?;
395
396    let local_var_status = local_var_resp.status();
397    let local_var_content = local_var_resp.text().await?;
398
399    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
400        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
401    } else {
402        let local_var_entity: Option<ListEvalCasesError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
403        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
404        Err(Error::ResponseError(local_var_error))
405    }
406}
407
408pub async fn list_eval_datasets(configuration: &configuration::Configuration, workspace: &str) -> Result<Vec<models::EvalDataset>, Error<ListEvalDatasetsError>> {
409    let local_var_configuration = configuration;
410
411    let local_var_client = &local_var_configuration.client;
412
413    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/datasets/list", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
414    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
415
416    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
417        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
418    }
419    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
420        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
421    };
422
423    let local_var_req = local_var_req_builder.build()?;
424    let local_var_resp = local_var_client.execute(local_var_req).await?;
425
426    let local_var_status = local_var_resp.status();
427    let local_var_content = local_var_resp.text().await?;
428
429    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
430        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
431    } else {
432        let local_var_entity: Option<ListEvalDatasetsError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
433        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
434        Err(Error::ResponseError(local_var_error))
435    }
436}
437
438/// Filtered twice, both times by what the caller can read: the datasets they come from, and the runnables themselves. A scorer they could not run does not appear. 
439pub async fn recent_scorers(configuration: &configuration::Configuration, workspace: &str, kind: Option<&str>) -> Result<Vec<models::RecentScorers200ResponseInner>, Error<RecentScorersError>> {
440    let local_var_configuration = configuration;
441
442    let local_var_client = &local_var_configuration.client;
443
444    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/scorers/recent", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
445    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
446
447    if let Some(ref local_var_str) = kind {
448        local_var_req_builder = local_var_req_builder.query(&[("kind", &local_var_str.to_string())]);
449    }
450    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
451        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
452    }
453    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
454        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
455    };
456
457    let local_var_req = local_var_req_builder.build()?;
458    let local_var_resp = local_var_client.execute(local_var_req).await?;
459
460    let local_var_status = local_var_resp.status();
461    let local_var_content = local_var_resp.text().await?;
462
463    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
464        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
465    } else {
466        let local_var_entity: Option<RecentScorersError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
467        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
468        Err(Error::ResponseError(local_var_error))
469    }
470}
471
472pub async fn run_experiment(configuration: &configuration::Configuration, workspace: &str, run_experiment_request: models::RunExperimentRequest) -> Result<String, Error<RunExperimentError>> {
473    let local_var_configuration = configuration;
474
475    let local_var_client = &local_var_configuration.client;
476
477    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/experiments/run", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
478    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
479
480    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
481        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
482    }
483    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
484        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
485    };
486    local_var_req_builder = local_var_req_builder.json(&run_experiment_request);
487
488    let local_var_req = local_var_req_builder.build()?;
489    let local_var_resp = local_var_client.execute(local_var_req).await?;
490
491    let local_var_status = local_var_resp.status();
492    let local_var_content = local_var_resp.text().await?;
493
494    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
495        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
496    } else {
497        let local_var_entity: Option<RunExperimentError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
498        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
499        Err(Error::ResponseError(local_var_error))
500    }
501}
502
503pub async fn scorer_defaults(configuration: &configuration::Configuration, workspace: &str) -> Result<models::ScorerDefaults200Response, Error<ScorerDefaultsError>> {
504    let local_var_configuration = configuration;
505
506    let local_var_client = &local_var_configuration.client;
507
508    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/scorer_defaults", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace));
509    let mut local_var_req_builder = local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
510
511    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
512        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
513    }
514    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
515        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
516    };
517
518    let local_var_req = local_var_req_builder.build()?;
519    let local_var_resp = local_var_client.execute(local_var_req).await?;
520
521    let local_var_status = local_var_resp.status();
522    let local_var_content = local_var_resp.text().await?;
523
524    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
525        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
526    } else {
527        let local_var_entity: Option<ScorerDefaultsError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
528        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
529        Err(Error::ResponseError(local_var_error))
530    }
531}
532
533pub async fn update_eval_dataset(configuration: &configuration::Configuration, workspace: &str, path: &str, update_eval_dataset_request: models::UpdateEvalDatasetRequest) -> Result<String, Error<UpdateEvalDatasetError>> {
534    let local_var_configuration = configuration;
535
536    let local_var_client = &local_var_configuration.client;
537
538    let local_var_uri_str = format!("{}/w/{workspace}/ai_evals/datasets/update/{path}", local_var_configuration.base_path, workspace=crate::apis::urlencode(workspace), path=crate::apis::urlencode(path));
539    let mut local_var_req_builder = local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
540
541    if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
542        local_var_req_builder = local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
543    }
544    if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
545        local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
546    };
547    local_var_req_builder = local_var_req_builder.json(&update_eval_dataset_request);
548
549    let local_var_req = local_var_req_builder.build()?;
550    let local_var_resp = local_var_client.execute(local_var_req).await?;
551
552    let local_var_status = local_var_resp.status();
553    let local_var_content = local_var_resp.text().await?;
554
555    if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
556        crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).map_err(Error::from)
557    } else {
558        let local_var_entity: Option<UpdateEvalDatasetError> = crate::from_str_patched/* Externally injected from /build.nu */(&local_var_content).ok();
559        let local_var_error = ResponseContent { status: local_var_status, content: local_var_content, entity: local_var_entity };
560        Err(Error::ResponseError(local_var_error))
561    }
562}
563