pub async fn remember(
data: Vec<DataInput>,
dataset_name: &str,
session_id: Option<&str>,
self_improvement: bool,
owner_id: Uuid,
tenant_id: Option<Uuid>,
add_pipeline: Arc<AddPipeline>,
llm: Arc<dyn Llm>,
storage: Arc<dyn StorageTrait>,
graph_db: Arc<dyn GraphDBTrait>,
vector_db: Arc<dyn VectorDB>,
embedding_engine: Arc<dyn EmbeddingEngine>,
db: Option<Arc<DatabaseConnection>>,
session_store: Option<Arc<dyn SessionStore>>,
session_manager: Option<Arc<SessionManager>>,
checkpoint_store: Option<Arc<dyn CheckpointStore>>,
ontology_resolver: Arc<dyn OntologyResolver>,
cognify_config: Arc<CognifyConfig>,
) -> Result<RememberResult, ApiError>Expand description
One-call add + cognify + optional improve.
Permanent Memory Mode (no session_id):
add()to ingest data.cognify()to extract knowledge graph.- If
self_improvement=true,memify()to enrich with triplet embeddings.
Session Memory Mode (with session_id):
- Convert data inputs to text.
- Store in session cache as Q&A entry.
- If
self_improvement=true, runimprove(session_ids=[session_id])inline. Failures are logged but never surface as an error to the caller (matches Python_session_improve()semantics).
This function is strictly synchronous — it always returns a
fully-populated RememberResult. Background dispatch is a host-side
concern (e.g. the HTTP server via PipelineRunRegistry::register_background).