langchain `as_retriever` 方法

as_retriever 方法是一个用于将 VectorStore 对象转换为 VectorStoreRetriever 对象的便捷方法。VectorStoreRetriever 是一个检索类,用于从向量存储中查找和检索最相关的文档。这个方法接受多个可选参数来配置检索的行为。

用法介绍

参数
  • search_type (Optional[str]):

    • 定义检索器应该执行的搜索类型。
    • 选项包括:
      • "similarity": 默认选项,基于相似度的搜索。
      • "mmr": 基于最大边际相关性(Maximal Marginal Relevance)的搜索。
      • "similarity_score_threshold": 基于相似度分数阈值的搜索。
  • search_kwargs (Optional[Dict]):

    • 传递给搜索函数的关键字参数,可能包括:
      • k: 要返回的文档数量(默认值:4)。
      • score_threshold: 用于 similarity_score_threshold 的最低相关性阈值。
      • fetch_k: 传递给 MMR 算法的文档数量(默认值:20)。
      • lambda_mult: MMR 返回结果的多样性;1 为最小多样性,0 为最大多样性(默认值:0.5)。
      • filter: 根据文档元数据进行过滤。
返回值
  • VectorStoreRetriever: 为 VectorStore 初始化的检索器类。

示例用法

示例 1:检索更多具有较高多样性的文档

如果你的数据集中有许多相似的文档,可以使用 mmr 检索类型并调整 lambda_mult 参数以增加多样性。

retriever = docsearch.as_retriever(
    search_type="mmr",
    search_kwargs={
   'k': 6, 'lambda_mult': 0.25}
)
示例 2:为 MMR 算法考虑更多文档,但只返回前 5 个

你可以增加 fetch_k 以让 MMR 算法考虑更多文档,但最终只返回 k 个文档。

retriever = docsearch.as_retriever
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值