LangChain 是一个强大的框架,可以与向量数据库(如 Milvus)无缝集成,用于构建基于检索的增强生成(RAG)系统。在测试工程师的场景中,可以将测试资产(如需求文档、测试用例、缺陷报告等)存储在 Milvus 中,然后通过 LangChain 提供的检索功能快速查询和生成相关内容。
功能目标
- 存储测试资产:将需求文档、测试用例和缺陷记录等内容转换为向量表示并存储到 Milvus。
- 检索测试资产:根据用户输入的查询,快速检索相关内容。
- 集成生成模型:结合检索结果,生成测试用例或分析缺陷原因。
架构流程
-
文档预处理:
- 清理和分割文档。
- 将段落或内容片段转化为易于向量化的文本。
-
向量化:
- 使用嵌入模型(如 OpenAI 的
text-embedding-ada-002
或 Hugging Face 模型)将文本转化为向量。
- 使用嵌入模型(如 OpenAI 的
-
存储:
- 将向量及其元数据存储到 Milvus 向量数据库。
-
检索与生成:
- 根据用户查询,通过向量相似性搜索检索相关内容。
- 将检索结果与生成模型结合,生成响应。
示例代码:
1. 安装必要的依赖
首先确保安装了以下依赖库:
pip install langchain pymilvus openai sentence-transformers
2. 启动 Milvus
可以通过 Docker 快速启动 Milvus:
docker run -d --name milvus -p 19530:19530 -p 9091:9091 milvusdb/milvus:v2.2.9
2.1 Docker容器化部署(推荐)
-
环境准备
- 启用Windows子系统Linux(WSL)和虚拟机平台:
bash
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启后安装Docker Desktop并启用WSL 2后端。 - 验证Docker安装:
bash
docker --version
docker-compose --version
- 启用Windows子系统Linux(WSL)和虚拟机平台:
-
获取并运行Milvus容器
- 拉取官方镜像:
bash
docker pull milvusdb/milvus:latest - 启动容器(映射端口19530和19121):
bash
docker run -d --name milvus -p 19530:19530 -p 19121:19121 milvusdb/milvus:latest
服务启动后,通过浏览器访问http://localhost:19121
验证。
- 拉取官方镜像:
-
持久化存储(可选)
- 挂载本地目录或使用Docker卷保存数据,避免容器删除后数据丢失。
2.2 预编译包部署(适合开发者)
-
下载二进制包
- 从GitHub仓库
matrixji/milvus
的windows-test-
版本中选择对应版本(如windows-test-v8
)。 - 或直接下载预编译的zip包(含
milvus.exe
、minio.exe
、etcd.exe
)。
- 从GitHub仓库
-
启动服务
- 解压zip包后依次运行:
bash
run_minio.bat 启动MinIO存储服务
run_etcd.bat 启动etcd元数据服务
run_milvus.bat 启动Milvus核心服务
- 解压zip包后依次运行:
-
测试连接
- 使用Python客户端验证:
python
from pymilvus import connections
connections.connect(host=‘localhost’, port=‘19530’)
- 使用Python客户端验证:
2.3 图形化界面(Attu)
-
安装Attu
- 下载Attu客户端(如
attu-2.4.6-windows-x86_64.zip
)并解压。 - 启动Attu:
bash
.\attu.exe
- 下载Attu客户端(如