async_openai/
eval_run_output_items.rs1use serde::Serialize;
2
3use crate::{
4 config::Config,
5 error::OpenAIError,
6 types::evals::{EvalRunOutputItem, EvalRunOutputItemList},
7 Client,
8};
9
10pub struct EvalRunOutputItems<'c, C: Config> {
11 client: &'c Client<C>,
12 pub eval_id: String,
13 pub run_id: String,
14}
15
16impl<'c, C: Config> EvalRunOutputItems<'c, C> {
17 pub fn new(client: &'c Client<C>, eval_id: &str, run_id: &str) -> Self {
18 Self {
19 client,
20 eval_id: eval_id.into(),
21 run_id: run_id.into(),
22 }
23 }
24
25 #[crate::byot(T0 = serde::Serialize, R = serde::de::DeserializeOwned)]
27 pub async fn list<Q>(&self, query: &Q) -> Result<EvalRunOutputItemList, OpenAIError>
28 where
29 Q: Serialize + ?Sized,
30 {
31 self.client
32 .get_with_query(
33 &format!("/evals/{}/runs/{}/output_items", self.eval_id, self.run_id),
34 &query,
35 )
36 .await
37 }
38
39 #[crate::byot(T0 = std::fmt::Display, R = serde::de::DeserializeOwned)]
41 pub async fn retrieve(&self, output_item_id: &str) -> Result<EvalRunOutputItem, OpenAIError> {
42 self.client
43 .get(&format!(
44 "/evals/{}/runs/{}/output_items/{}",
45 self.eval_id, self.run_id, output_item_id
46 ))
47 .await
48 }
49}