langchain使用milvus
时间: 2025-05-27 19:33:27 浏览: 13
### 如何在 Langchain 中集成和使用 Milvus
#### 1. **Langchain 和 Milvus 的基本概念**
Langchain 是一个用于构建大语言模型应用的框架,而 Milvus 是一款专门设计用于向量数据库管理的工具。通过将两者结合,可以高效地存储、索引和检索高维向量数据[^1]。
---
#### 2. **安装必要的依赖**
为了使 Langchain 能够与 Milvus 正常交互,需要先安装 `langchain` 和 `pymilvus` 库。以下是命令:
```bash
pip install langchain pymilvus
```
如果计划使用 OpenAI 或其他嵌入模型,则还需要额外安装对应的 SDK,例如 `openai`。
---
#### 3. **连接到 Milvus 数据库**
在 Langchain 中,可以通过创建一个 `Milvus` 实例来完成与 Milvus 的连接。以下是一个简单的代码片段:
```python
from langchain.vectorstores import Milvus
from pymilvus import connections, utility
# 连接至 Milvus 服务
connections.connect("default", host="localhost", port="19530")
# 如果集合已存在则删除它(仅限测试环境)
if utility.has_collection("my_collection"):
utility.drop_collection("my_collection")
# 初始化 Milvus 向量存储实例
vectorstore = Milvus(
embedding_function=None, # 可选:指定嵌入函数
connection_args={"host": "localhost", "port": "19530"},
collection_name="my_collection"
)
```
此部分展示了如何建立基础连接以及初始化一个新的集合[^2]。
---
#### 4. **定义 Schema 并加载数据**
在实际操作中,通常需要为文档字段定义模式(schema)。下面是一段示例代码,演示如何加载文本数据并将其转换为向量形式存入 Milvus:
```python
from langchain.embeddings.openai import OpenAIEmbeddings
# 使用 OpenAI Embedding Function
embeddings = OpenAIEmbeddings()
texts = ["这是一条测试记录.", "这是另一条不同的记录."] # 输入文本列表
# 将文本添加到 Milvus 集合中
ids = vectorstore.add_texts(texts=texts, embeddings=embeddings)
print(f"成功插入 {len(ids)} 条记录.")
```
这里利用了 OpenAI 提供的嵌入功能生成每段文字的特征表示,并最终保存到目标集合里[^3]。
---
#### 5. **执行相似性搜索**
一旦完成了数据导入工作之后,就可以开始尝试查询最接近给定条件的结果集啦!
```python
query_text = "寻找相关内容"
search_results = vectorstore.similarity_search(query=query_text, k=2, search_params={})
for result in search_results:
print(result.page_content)
```
上述脚本实现了基于输入字符串进行最近邻查找的功能,其中参数 `k` 控制返回结果的数量[^4]。
---
### 总结
以上便是关于怎样借助 Langchain 工具包实现同 Milvus 协作的一个简要介绍。从初步搭建直至具体应用场景均有涉及,希望能够帮助您更好地理解整个流程。
阅读全文
相关推荐


















