Skip to main content

CognitiveLlmService

Struct CognitiveLlmService 

Source
pub struct CognitiveLlmService<J: LlmJudge> { /* private fields */ }
Expand description

The unified LLM intelligence layer for memory operations.

Wraps any LlmJudge implementation and provides typed judgment methods with specialized prompts for each cognitive task.

Implementations§

Source§

impl<J: LlmJudge> CognitiveLlmService<J>

Source

pub fn new(judge: J) -> Self

Create a new service backed by the given LLM judge.

Source

pub async fn judge_invalidation( &self, old: &MemorySummary, new: &MemorySummary, ) -> Result<InvalidationVerdict, LlmJudgeError>

Determine whether a new memory invalidates an existing one.

This is the key method that replaces the cosine similarity heuristic for temporal invalidation. The LLM can understand that “Alice works at Acme” is invalidated by “Alice joined Google” even though the embeddings are quite different.

Source

pub async fn detect_contradiction( &self, a: &MemorySummary, b: &MemorySummary, ) -> Result<ContradictionVerdict, LlmJudgeError>

Determine whether two memories contradict each other.

Source

pub async fn resolve_entities( &self, candidates: &[EntityCandidate], ) -> Result<Vec<EntityMergeGroup>, LlmJudgeError>

Resolve a batch of entity references into merge groups.

Source

pub async fn consolidate( &self, cluster: &[ClusterMember], ) -> Result<ConsolidationDecision, LlmJudgeError>

Decide how to consolidate a cluster of similar memories.

Source

pub async fn canonicalize_topic( &self, message: &str, existing_topics: &[String], ) -> Result<TopicLabel, LlmJudgeError>

Map a raw user message to a canonical topic label.

Source

pub async fn generate_community_summary( &self, category: &str, entities: &[(String, String)], ) -> Result<CommunitySummary, LlmJudgeError>

Generate a summary for a community (cluster of related entities).

Source

pub async fn generate_user_profile( &self, facts: &[String], community_summaries: &[String], ) -> Result<UserProfile, LlmJudgeError>

Generate a user profile from accumulated knowledge.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.