充分利用Zilliz Cloud和Milvus:云上管理的向量数据库指南

91 阅读2分钟
# 引言

随着人工智能和大数据技术的迅猛发展,高效管理和处理大规模数据成为关键需求。Zilliz Cloud提供了一种强大的解决方案,通过云上管理的向量数据库Milvus,为开发者和企业提供高性能的数据存储和查询能力。本篇文章将示范如何使用Zilliz Cloud的核心功能,让您在数据处理和架构设计上无往不利。

# 主要内容

## 部署Zilliz Cloud实例

在开始之前,您需要在Zilliz Cloud上启动一个实例。请参考官方文档完成相应的设置和配置。

## 安装必要的Python包

首先,确保您已经安装了`langchain-community``pymilvus`,这两个包是与Milvus进行交互所必需的。

```bash
%pip install --upgrade --quiet langchain-community pymilvus

获取OpenAI API Key

我们将使用OpenAI的嵌入技术,因此需要获取相应的API Key。此Key将用于生成文本的向量表示。

import getpass
import os

os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")

配置连接Zilliz Cloud

请注意,由于网络限制问题,您可能需要使用API代理服务提高访问的稳定性。

ZILLIZ_CLOUD_URI = "https://your-instance-uri:19536"  # 使用API代理服务提高访问稳定性
ZILLIZ_CLOUD_USERNAME = "your-username"
ZILLIZ_CLOUD_PASSWORD = "your-password"
ZILLIZ_CLOUD_API_KEY = "your-api-key"  # 对于无服务器群集,可以使用API Key代替用户名和密码

文档加载和向量存储初始化

借助langchain-community包,我们可以轻松地通过文本分割和嵌入生成将文档加载到Milvus中。

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("your-document-path.txt")
documents = loader.load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
docs = text_splitter.split_documents(documents)

embeddings = OpenAIEmbeddings()

vector_db = Milvus.from_documents(
    docs,
    embeddings,
    connection_args={
        "uri": ZILLIZ_CLOUD_URI,
        "user": ZILLIZ_CLOUD_USERNAME,
        "password": ZILLIZ_CLOUD_PASSWORD,
        # "token": ZILLIZ_CLOUD_API_KEY,  # API Key 可用于无服务器群集,替代用户名和密码
        "secure": True,
    },
)

查询向量数据库

通过Milvus,您可以执行高效的相似性搜索。例如,查询文档中有关特定主题的信息:

query = "What did the president say about Ketanji Brown Jackson"
docs = vector_db.similarity_search(query)

print(docs[0].page_content)

常见问题和解决方案

  • 连接问题:如果遇到连接超时或无法访问实例,考虑使用API代理服务。确保网络连接稳定,检查防火墙设置。
  • API Key管理:在使用OpenAI等服务时,妥善管理和存储您的API Key,避免泄露。

总结和进一步学习资源

通过掌握Zilliz Cloud与Milvus,您能够在云环境中高效存储和查询大规模数据。进一步的学习资源包括:

参考资料

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


---END---