Skip to main content

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

1use crate::functions;
2use serde::{Deserialize, Serialize};
3use schemars::JsonSchema;
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 { #[serde(deserialize_with = "crate::serde_util::decimal")] #[schemars(with = "f64")] value: rust_decimal::Decimal }, // desired scalar output
20    #[schemars(title = "Vector")]
21    Vector { #[serde(deserialize_with = "crate::serde_util::vec_decimal")] #[schemars(with = "Vec<f64>")] value: Vec<rust_decimal::Decimal> }, // desired vector output
22    #[schemars(title = "VectorWinner")]
23    VectorWinner { value: usize }, // desired winning index in vector completion
24}