使用Voyage AI构建智能语义检索系统:从入门到精通

150 阅读2分钟

引言

在现代自然语言处理(NLP)应用中,语义检索是一个至关重要的领域。本文将介绍如何使用Voyage AI的嵌入模型来构建一个简单却强大的语义检索系统。通过使用LangChain的集成包,我们可以高效地处理和检索与查询相关的文档。

主要内容

安装和设置

首先,我们需要安装LangChain Voyage AI集成包:

pip install langchain-voyageai

然后,导入VoyageAIEmbeddings类以加载嵌入模型。

from langchain_voyageai import VoyageAIEmbeddings

要使用Voyage AI的API,需要在其官网注册账户并获取API密钥。

创建嵌入模型

Voyage AI提供多种嵌入模型,以下是创建一个嵌入模型的示例:

embeddings = VoyageAIEmbeddings(
    voyage_api_key="[ Your Voyage API key ]", model="voyage-law-2"
)

准备文档并获取嵌入

我们将文本文档转换为嵌入表示,这使我们能够计算语义相似性。

documents = [
    "Caching embeddings enables the storage or temporary caching of embeddings, eliminating the necessity to recompute them each time.",
    "An LLMChain is a chain that composes basic LLM functionality...",
    "A Runnable represents a generic unit of work..."
]

documents_embds = embeddings.embed_documents(documents)

查询嵌入

类似地,我们也可以针对查询文本计算嵌入。

query = "What's an LLMChain?"
query_embd = embeddings.embed_query(query)

使用KNN进行语义检索

基于嵌入的余弦相似性,我们可以使用KNNRetriever类从文档中检索最相关的内容。

from langchain_community.retrievers import KNNRetriever

retriever = KNNRetriever.from_texts(documents, embeddings)

# 检索最相关的文档
result = retriever.invoke(query)
top1_retrieved_doc = result[0].page_content  # 返回最相关的文档
print(top1_retrieved_doc)

代码示例

完整的示例代码如下:

from langchain_voyageai import VoyageAIEmbeddings
from langchain_community.retrievers import KNNRetriever

# 使用API代理服务提高访问稳定性
embeddings = VoyageAIEmbeddings(
    voyage_api_key="[ Your Voyage API key ]", model="voyage-law-2"
)

documents = [
    "Caching embeddings enables the storage or temporary caching of embeddings...",
    "An LLMChain is a chain that composes basic LLM functionality...",
    "A Runnable represents a generic unit of work..."
]

documents_embds = embeddings.embed_documents(documents)
query = "What's an LLMChain?"
query_embd = embeddings.embed_query(query)

retriever = KNNRetriever.from_texts(documents, embeddings)
result = retriever.invoke(query)
top1_retrieved_doc = result[0].page_content
print(top1_retrieved_doc)

常见问题和解决方案

  1. 网络访问限制:由于某些地区的网络问题,可能需要使用API代理服务以保证访问稳定性。
  2. API权限问题:请确认API密钥正确并拥有相应权限。

总结和进一步学习资源

本文展示了如何使用Voyage AI的嵌入模型来构建一个简单的语义检索系统。对于更深入的学习,可以参考以下资源:

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---