pub struct InMemoryKnowledgeBase { /* private fields */ }Expand description
In-memory knowledge base backed by a tokio::sync::RwLock<HashMap>.
Search is keyword-based: tokenizes query into lowercase words, counts matches per chunk, and sorts by match count descending.
Always used behind Arc<dyn KnowledgeBase>, so no inner Arc needed.
Implementations§
Trait Implementations§
Source§impl Default for InMemoryKnowledgeBase
impl Default for InMemoryKnowledgeBase
Source§impl KnowledgeBase for InMemoryKnowledgeBase
impl KnowledgeBase for InMemoryKnowledgeBase
Source§fn index(
&self,
scope: &TenantScope,
chunk: Chunk,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + '_>>
fn index( &self, scope: &TenantScope, chunk: Chunk, ) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + '_>>
Index a chunk into the knowledge base under the given tenant scope.
Source§fn search(
&self,
scope: &TenantScope,
query: KnowledgeQuery,
) -> Pin<Box<dyn Future<Output = Result<Vec<SearchResult>, Error>> + Send + '_>>
fn search( &self, scope: &TenantScope, query: KnowledgeQuery, ) -> Pin<Box<dyn Future<Output = Result<Vec<SearchResult>, Error>> + Send + '_>>
Search the knowledge base, filtered by tenant scope.
Auto Trait Implementations§
impl !Freeze for InMemoryKnowledgeBase
impl !RefUnwindSafe for InMemoryKnowledgeBase
impl Send for InMemoryKnowledgeBase
impl Sync for InMemoryKnowledgeBase
impl Unpin for InMemoryKnowledgeBase
impl UnsafeUnpin for InMemoryKnowledgeBase
impl !UnwindSafe for InMemoryKnowledgeBase
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more