pub struct MultiQueryRetriever { /* private fields */ }Expand description
MultiQueryRetriever
使用 LLM 生成多个查询变体,然后用基础检索器分别检索, 最后合并去重结果返回。
Implementations§
Source§impl MultiQueryRetriever
impl MultiQueryRetriever
Sourcepub fn new<L>(llm: L, base_retriever: Arc<dyn RetrieverTrait>) -> Self
pub fn new<L>(llm: L, base_retriever: Arc<dyn RetrieverTrait>) -> Self
创建 MultiQueryRetriever(接受任意实现 BaseChatModel 的 LLM)
Sourcepub fn new_arc(
llm: Arc<dyn BaseChatModel<Error = ProviderError> + Send + Sync>,
base_retriever: Arc<dyn RetrieverTrait>,
) -> Self
pub fn new_arc( llm: Arc<dyn BaseChatModel<Error = ProviderError> + Send + Sync>, base_retriever: Arc<dyn RetrieverTrait>, ) -> Self
P0-3: 从已包装的 Arc<dyn BaseChatModel<Error = ProviderError>> 构建
Sourcepub fn with_config(self, config: MultiQueryConfig) -> Self
pub fn with_config(self, config: MultiQueryConfig) -> Self
设置 MultiQuery 配置
Sourcepub fn with_num_queries(self, n: usize) -> Self
pub fn with_num_queries(self, n: usize) -> Self
设置生成的查询数量
Sourcepub fn with_k_per_query(self, k: usize) -> Self
pub fn with_k_per_query(self, k: usize) -> Self
设置每个查询返回的文档数
Sourcepub fn with_final_k(self, k: usize) -> Self
pub fn with_final_k(self, k: usize) -> Self
设置最终返回的文档数
Sourcepub async fn retrieve_multi(
&self,
query: &str,
) -> Result<Vec<Document>, MultiQueryError>
pub async fn retrieve_multi( &self, query: &str, ) -> Result<Vec<Document>, MultiQueryError>
生成多个查询变体并分别检索,合并去重后返回最终文档
Sourcepub async fn retrieve_multi_with_scores(
&self,
query: &str,
) -> Result<Vec<SearchResult>, MultiQueryError>
pub async fn retrieve_multi_with_scores( &self, query: &str, ) -> Result<Vec<SearchResult>, MultiQueryError>
生成多个查询变体并分别检索,合并去重后返回带分数的结果
Sourcepub async fn get_generated_queries(
&self,
query: &str,
) -> Result<Vec<String>, MultiQueryError>
pub async fn get_generated_queries( &self, query: &str, ) -> Result<Vec<String>, MultiQueryError>
获取 LLM 生成的查询变体(不执行检索)
Auto Trait Implementations§
impl !RefUnwindSafe for MultiQueryRetriever
impl !UnwindSafe for MultiQueryRetriever
impl Freeze for MultiQueryRetriever
impl Send for MultiQueryRetriever
impl Sync for MultiQueryRetriever
impl Unpin for MultiQueryRetriever
impl UnsafeUnpin for MultiQueryRetriever
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