Skip to main content

remember

Function remember 

Source
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):

  1. add() to ingest data.
  2. cognify() to extract knowledge graph.
  3. If self_improvement=true, memify() to enrich with triplet embeddings.

Session Memory Mode (with session_id):

  1. Convert data inputs to text.
  2. Store in session cache as Q&A entry.
  3. If self_improvement=true, run improve(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).