返回

根据得分检索源文档:LangChain Python 的分步指南

python

如何使用 LangChain Python 根据得分检索源文档

问题陈述

LangChain 查询会返回基于索引的文档块,并根据得分进行排序。但是,我们需要返回与匹配查询的平均得分最高的文档源(包含匹配块)。例如:对于“Aws 认证详细信息”的查询,我们需要返回与匹配查询的平均得分最高的文档源,并按层次顺序排列。

解决方案

LangChain Python 库提供了 API,可以用来检索具有最高平均得分的源文档。

步骤:

  1. 安装 LangChain Python 库:
pip install langchain
  1. 导入 LangChain 库:
import langchain
  1. 创建查询:
query = langchain.Query(text="Aws 认证详细信息")
  1. 执行相似度搜索:
results = client.similarity_search_with_score(query)
  1. 获取源文档的 ID:
source_document_id = results[0].source_document_id
  1. 获取源文档:
source_document = client.get_document(source_document_id)
  1. 打印源文档的内容:
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 的其他参数(如 limitoffset)控制结果数量和偏移量。

常见问题解答

Q:如何获取多个源文档?

A: 重复步骤 4-7,每次使用不同的 source_document_id

Q:如何对源文档进行排序?

A: 在执行相似度搜索时,使用 sort_by="average_score" 参数。

Q:如何限制返回的源文档数量?

A: 在执行相似度搜索时,使用 limit 参数。

Q:如何优化查询以提高准确性?

A: 使用相关关键词、短语和同义词进行查询。

Q:是否有其他方法可以检索源文档?

A: LangChain 提供了其他 API,例如 searchget_document_by_id