pub struct SelfQueryRetriever<M: BaseChatModel> { /* private fields */ }Expand description
自查询检索器:LLM 拆解查询 → 白名单校验 → 过滤相似度检索。
实现 RetrieverTrait,可被 crate::RetrieverRunnable 包进 LCEL 链。
Implementations§
Source§impl<M: BaseChatModel> SelfQueryRetriever<M>
impl<M: BaseChatModel> SelfQueryRetriever<M>
Sourcepub fn new(
llm: impl Into<Arc<M>>,
store: Arc<dyn VectorStore>,
embeddings: Arc<dyn Embeddings>,
allowed_attributes: Vec<String>,
) -> Self
pub fn new( llm: impl Into<Arc<M>>, store: Arc<dyn VectorStore>, embeddings: Arc<dyn Embeddings>, allowed_attributes: Vec<String>, ) -> Self
创建自查询检索器。
llm:负责拆解自然语言查询的模型(支持结构化输出,或可文本回落)。store/embeddings:过滤相似度检索用的向量存储与嵌入模型。allowed_attributes:允许出现在过滤字段的白名单;空白名单 = 禁止一切 过滤,LLM 构造的过滤条件会被整条丢弃并记 warning。
Trait Implementations§
Source§impl<M: BaseChatModel> RetrieverTrait for SelfQueryRetriever<M>
impl<M: BaseChatModel> RetrieverTrait for SelfQueryRetriever<M>
Source§fn retrieve<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 str,
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Document>, RetrieverError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn retrieve<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 str,
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<Document>, RetrieverError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
检索相关文档 Read more
Source§fn retrieve_with_scores<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 str,
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<SearchResult>, RetrieverError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn retrieve_with_scores<'life0, 'life1, 'async_trait>(
&'life0 self,
query: &'life1 str,
k: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<SearchResult>, RetrieverError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
检索相关文档(带分数)
Auto Trait Implementations§
impl<M> !RefUnwindSafe for SelfQueryRetriever<M>
impl<M> !UnwindSafe for SelfQueryRetriever<M>
impl<M> Freeze for SelfQueryRetriever<M>
impl<M> Send for SelfQueryRetriever<M>
impl<M> Sync for SelfQueryRetriever<M>
impl<M> Unpin for SelfQueryRetriever<M>
impl<M> UnsafeUnpin for SelfQueryRetriever<M>where
Arc<M>: UnsafeUnpin,
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