这里我们看到 max_marginal_relevance_search返回了第二和第三句的文本,尽管第三句与我们的问题的相关性不太高,但是这样的结果其实应该是更加的合理,因为第一句和第二句文本本来就有着相似的含义,所以只需要返回其中的一句就可以了,另外再返回一个与问题相关性弱一点的答案(第三句文本),这样似乎增强了答案的多样性...
这是因为我们在创建这个向量数据库时重复加载了一篇文档(pdf),这导致similarity_search搜索出来文档存在重复的可能性,要解决这个问题,可以使用max_marginal_relevance_search方法,该方法可以让结果的相关性和多样性保持均衡,关于具体实现的原理可以参考我之前写的博客:让Langchain与你的数据对话(三):检索(Retrieval)。
只有select_examples的方法不同。 其中SemanticSimilarityExampleSelector调用了vectorstore的similarity_search方法来实现相似度的搜索。 而MaxMarginalRelevanceExampleSelector则是调用vectorstore的max_marginal_relevance_search方法来实现搜索的。 两者的搜索算法不太一样。 因为使用了向量数据库,所以他们的调用方法和其他的也...
只有select_examples的方法不同。 其中SemanticSimilarityExampleSelector调用了vectorstore的similarity_search方法来实现相似度的搜索。 而MaxMarginalRelevanceExampleSelector则是调用vectorstore的max_marginal_relevance_search方法来实现搜索的。 两者的搜索算法不太一样。 因为使用了向量数据库,所以他们的调用方法和其他的也...
max_marginal_relevance_search:这个方法是基于最大边际相关性(MMR)来进行查询的,最大边际相关性(MMR)是一种用于检索或摘要的方法,它既考虑了查询和文档之间的相似度,又考虑了文档之间的多样性,从而避免返回重复或冗余的结果。它接受一个字符串或一个向量作为查询,以及一个可选的top_n参数,用于指定返回的doc对象的...
其中SemanticSimilarityExampleSelector调用了vectorstore的similarity_search方法来实现相似度的搜索。而MaxMarginalRelevanceExampleSelector则是调用vectorstore的max_marginal_relevance_search方法来实现搜索的。两者的搜索算法不太一样。因为使用了向量数据库,所以他们的调用方法和其他的也不太一样:...
1. 相似度搜索(Similarity Search) 最基本的检索方法,返回与查询向量最相似的文档。 docs = vectorstore.similarity_search(query) 2. 最大边际相关性搜索(MMR) 在相关性和多样性之间取得平衡的检索方法。 docs = vectorstore.max_marginal_relevance_search(query) ...
而MaxMarginalRelevanceExampleSelector则是调用vectorstore的max_marginal_relevance_search方法来实现搜索的。 两者的搜索算法不太一样。 因为使用了向量数据库,所以他们的调用方法和其他的也不太一样: examples = [ {"input": "happy", "output": "sad"}, ...
而MaxMarginalRelevanceExampleSelector则是调用vectorstore的max_marginal_relevance_search方法来实现搜索的。 两者的搜索算法不太一样。 因为使用了向量数据库,所以他们的调用方法和其他的也不太一样: examples= [ {"input":"happy","output":"sad"},
而MaxMarginalRelevanceExampleSelector则是调用vectorstore的max_marginal_relevance_search方法来实现搜索的。 两者的搜索算法不太一样。 因为使用了向量数据库,所以他们的调用方法和其他的也不太一样: examples = [{"input": "happy", "output": "sad"},{"input": "tall", "output": "short"},{"input":...