返回
根据得分检索源文档:LangChain Python 的分步指南
python
2024-03-09 05:57:18
如何使用 LangChain Python 根据得分检索源文档
问题陈述
LangChain 查询会返回基于索引的文档块,并根据得分进行排序。但是,我们需要返回与匹配查询的平均得分最高的文档源(包含匹配块)。例如:对于“Aws 认证详细信息”的查询,我们需要返回与匹配查询的平均得分最高的文档源,并按层次顺序排列。
解决方案
LangChain Python 库提供了 API,可以用来检索具有最高平均得分的源文档。
步骤:
- 安装 LangChain Python 库:
pip install langchain
- 导入 LangChain 库:
import langchain
- 创建查询:
query = langchain.Query(text="Aws 认证详细信息")
- 执行相似度搜索:
results = client.similarity_search_with_score(query)
- 获取源文档的 ID:
source_document_id = results[0].source_document_id
- 获取源文档:
source_document = client.get_document(source_document_id)
- 打印源文档的内容:
print(source_document.content)
示例
from langchain import Client, Query
# 初始化 LangChain 客户端
client = Client()
# 创建查询
query = Query(text="Aws 认证详细信息")
# 执行相似度搜索
results = client.similarity_search_with_score(query)
# 获取源文档的 ID
source_document_id = results[0].source_document_id
# 获取源文档
source_document = client.get_document(source_document_id)
# 打印源文档的内容
print(source_document.content)
提示
- 确保已将 LangChain 文档编入索引,以便在查询中使用。
- 可使用
similarity_search_with_score
API 的其他参数(如limit
和offset
)控制结果数量和偏移量。
常见问题解答
Q:如何获取多个源文档?
A: 重复步骤 4-7,每次使用不同的 source_document_id
。
Q:如何对源文档进行排序?
A: 在执行相似度搜索时,使用 sort_by="average_score"
参数。
Q:如何限制返回的源文档数量?
A: 在执行相似度搜索时,使用 limit
参数。
Q:如何优化查询以提高准确性?
A: 使用相关关键词、短语和同义词进行查询。
Q:是否有其他方法可以检索源文档?
A: LangChain 提供了其他 API,例如 search
和 get_document_by_id
。