use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use crate::model::{ColumnFilter, Link, Recollection};
use crate::service::Metadata;
#[derive(Deserialize, JsonSchema)]
pub(super) struct RememberParams {
pub(super) fact: String,
#[serde(default)]
pub(super) links: Vec<Link>,
pub(super) metadata: Option<Metadata>,
#[serde(default)]
pub(super) ttl_seconds: Option<u64>,
}
#[derive(Serialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct RememberResult {
pub(super) id: u64,
}
#[derive(Deserialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct RecallParams {
pub(super) query: String,
pub(super) limit: Option<usize>,
pub(super) filter: Option<Metadata>,
}
#[derive(Serialize, JsonSchema)]
pub(super) struct RecallResult {
pub(super) memories: Vec<Recollection>,
}
#[derive(Deserialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct RecallWhereParams {
pub(super) query: String,
pub(super) limit: Option<usize>,
#[serde(default)]
pub(super) filters: Vec<ColumnFilter>,
}
#[derive(Deserialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct RecallFusedParams {
pub(super) query: String,
pub(super) limit: Option<usize>,
pub(super) filter: Option<Metadata>,
pub(super) hops: Option<usize>,
pub(super) graph_boost: Option<f64>,
pub(super) date_field: Option<String>,
}
#[derive(Serialize, JsonSchema)]
pub(super) struct RecallFusedResult {
pub(super) memories: Vec<Recollection>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(super) dated_context: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub(super) now: Option<String>,
}
#[derive(Deserialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct RelateParams {
pub(super) from: u64,
pub(super) to: u64,
pub(super) relation: String,
}
#[derive(Serialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct RelateResult {
pub(super) edge_id: u64,
}
#[derive(Deserialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct ForgetParams {
pub(super) id: u64,
}
#[derive(Serialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct ForgetResult {
pub(super) id: u64,
}
#[derive(Deserialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct FeedbackParams {
pub(super) id: u64,
pub(super) success: bool,
}
#[derive(Serialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct FeedbackResult {
pub(super) id: u64,
pub(super) confidence: f32,
}
#[derive(Deserialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct WhyParams {
pub(super) decision: String,
pub(super) max_hops: Option<usize>,
pub(super) filter: Option<Metadata>,
}
#[derive(Deserialize, JsonSchema)]
pub(super) struct RememberExtractedParams {
pub(super) text: String,
pub(super) metadata: Option<Metadata>,
}
#[derive(Serialize, JsonSchema)]
#[schemars(transform = crate::schema::strip_int_formats)]
pub(super) struct RememberExtractedResult {
pub(super) ids: Vec<u64>,
}