Skip to main content

objectiveai_sdk/functions/profiles/computations/request/
dataset.rs

1use crate::functions;
2use schemars::JsonSchema;
3use serde::{Deserialize, Serialize};
4
5pub type Dataset = Vec<DatasetItem>;
6
7#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
8#[schemars(rename = "functions.profiles.computations.request.DatasetItem")]
9pub struct DatasetItem {
10    pub input: functions::expression::InputValue,
11    pub target: Target,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
15#[serde(tag = "type", rename_all = "snake_case")]
16#[schemars(rename = "functions.profiles.computations.request.Target")]
17pub enum Target {
18    #[schemars(title = "Scalar")]
19    Scalar {
20        #[serde(deserialize_with = "crate::serde_util::decimal")]
21        #[schemars(with = "f64")]
22        value: rust_decimal::Decimal,
23    }, // desired scalar output
24    #[schemars(title = "Vector")]
25    Vector {
26        #[serde(deserialize_with = "crate::serde_util::vec_decimal")]
27        #[schemars(with = "Vec<f64>")]
28        value: Vec<rust_decimal::Decimal>,
29    }, // desired vector output
30    #[schemars(title = "VectorWinner")]
31    VectorWinner { value: usize }, // desired winning index in vector completion
32}