neomemx 0.1.2

A high-performance memory library for AI agents with semantic search
Documentation
//! Base trait for reranker implementations

use async_trait::async_trait;

use crate::core::StoredFact;
use crate::error::Result;

/// Base trait for reranker implementations
#[async_trait]
pub trait BaseReranker: Send + Sync {
    /// Rerank documents based on relevance to the query
    ///
    /// # Arguments
    /// * `query` - The search query
    /// * `documents` - List of stored facts to rerank
    /// * `top_k` - Number of top documents to return (None = return all)
    ///
    /// # Returns
    /// List of reranked stored facts with updated relevance scores
    async fn rerank(
        &self,
        query: &str,
        documents: Vec<StoredFact>,
        top_k: Option<usize>,
    ) -> Result<Vec<StoredFact>>;
}