pub struct RetrievalSystemAdapter { /* private fields */ }Expand description
Adapter for RetrievalSystem to implement AsyncRetriever trait
§Graph Integration
This adapter wraps the RetrievalSystem which operates on a KnowledgeGraph. For full functionality, the RetrievalSystem needs to be initialized with a populated graph. The current implementation provides the trait interface but actual retrieval requires application-level graph management.
§Usage Pattern
use graphrag_core::core::retrieval_adapters::RetrievalSystemAdapter;
use graphrag_core::retrieval::RetrievalSystem;
use graphrag_core::config::Config;
let config = Config::default();
let system = RetrievalSystem::new(&config)?;
let adapter = RetrievalSystemAdapter::new(system);
// Search requires a populated knowledge graph in the retrieval system
// This would typically be managed at the application levelImplementations§
Source§impl RetrievalSystemAdapter
impl RetrievalSystemAdapter
Sourcepub fn new(system: RetrievalSystem) -> Self
pub fn new(system: RetrievalSystem) -> Self
Create a new retrieval system adapter
Note: The RetrievalSystem should be populated with a KnowledgeGraph before search operations will return meaningful results.
Sourcepub fn system(&self) -> &RetrievalSystem
pub fn system(&self) -> &RetrievalSystem
Get reference to underlying retrieval system
Sourcepub fn system_mut(&mut self) -> &mut RetrievalSystem
pub fn system_mut(&mut self) -> &mut RetrievalSystem
Get mutable reference to underlying retrieval system
This allows configuring the retrieval system after creation, such as setting the knowledge graph or updating configurations.
Trait Implementations§
Source§impl AsyncRetriever for RetrievalSystemAdapter
impl AsyncRetriever for RetrievalSystemAdapter
Source§type Result = RetrievalResult
type Result = RetrievalResult
The result type this retriever returns
Source§type Error = GraphRAGError
type Error = GraphRAGError
The error type returned by retrieval operations
Source§fn search<'life0, 'async_trait>(
&'life0 self,
_query: Self::Query,
_k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Self::Result>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn search<'life0, 'async_trait>(
&'life0 self,
_query: Self::Query,
_k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Self::Result>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Perform a search query
Source§fn search_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
query: Self::Query,
_context: &'life1 str,
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Self::Result>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn search_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
query: Self::Query,
_context: &'life1 str,
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Self::Result>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Perform a search with additional context
Source§fn search_batch<'life0, 'async_trait>(
&'life0 self,
queries: Vec<Self::Query>,
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<Self::Result>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn search_batch<'life0, 'async_trait>(
&'life0 self,
queries: Vec<Self::Query>,
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Vec<Self::Result>>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Perform multiple search queries concurrently
Source§fn update<'life0, 'async_trait>(
&'life0 mut self,
_content: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update<'life0, 'async_trait>(
&'life0 mut self,
_content: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Update the retriever with new content
Source§fn health_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn health_check<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Health check for retrieval system
Source§fn update_batch<'life0, 'async_trait>(
&'life0 mut self,
content_batches: Vec<Vec<String>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_batch<'life0, 'async_trait>(
&'life0 mut self,
content_batches: Vec<Vec<String>>,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Update the retriever with new content in batches
Auto Trait Implementations§
impl Freeze for RetrievalSystemAdapter
impl !RefUnwindSafe for RetrievalSystemAdapter
impl Send for RetrievalSystemAdapter
impl Sync for RetrievalSystemAdapter
impl Unpin for RetrievalSystemAdapter
impl UnsafeUnpin for RetrievalSystemAdapter
impl !UnwindSafe for RetrievalSystemAdapter
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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more