News Category Dataset
收藏RAG Vector Search with Milvus using News Category Dataset
项目概述
本项目演示如何使用Milvus向量数据库和预训练语言模型构建检索增强生成(RAG)管道。项目基于“新闻类别数据集”,展示了如何预处理数据、生成嵌入向量并执行向量搜索。
项目结构
plaintext rag-vector-search/ ├── src/ │ ├── preprocess.py # 预处理数据和创建嵌入向量的脚本 │ ├── milvus_setup.py # 设置Milvus并插入向量的脚本 │ ├── rag_pipeline.py # 创建RAG管道的脚本 │ ├── app.py # Flask应用,用于UI交互 ├── data/ # 存储嵌入向量和元数据的目录 │ ├── embeddings.npy # 存储生成的嵌入向量的文件 │ ├── metadata.csv # 存储元数据(类别、标题、简短描述)的文件 ├── templates/ │ ├── index.html # Flask应用的HTML模板 ├── docs/ # 文档目录 │ ├── innerworkings.md # 详细解释仓库内部工作原理的文件 ├── README.md # 项目概述和逐步指南 ├── .gitignore # 忽略仓库中的文件和目录 └── requirements.txt # Python依赖项
开始使用
先决条件
确保您的系统上安装了以下内容:
- Python 3.8或更高版本
- pip(Python包安装程序)
- 虚拟环境设置(可选但推荐)
安装
-
克隆仓库: bash git clone https://github.com/your-username/rag-vector-search.git cd rag-vector-search
-
创建虚拟环境(可选但推荐): bash python3 -m venv venv source venv/bin/activate # 在macOS/Linux上
或
.venvScriptsactivate # 在Windows上
-
安装依赖项: bash pip install -r requirements.txt
设置Milvus
要使用此项目,您需要安装并运行Milvus。最简单的设置方法是使用Docker。
先决条件
- Docker:确保您的系统上安装了Docker。
设置步骤
-
下载官方Milvus Docker Compose文件: bash wget https://github.com/milvus-io/milvus/releases/download/v2.4.6/milvus-standalone-docker-compose.yml -O docker-compose.yml
-
启动Milvus: bash docker-compose up -d
-
验证Milvus是否运行: bash docker-compose ps
-
停止Milvus: bash docker-compose down
如果要在停止Milvus后删除数据,运行: bash sudo rm -rf volumes
连接到Milvus
应用程序将使用.env文件中指定的环境变量自动连接到Milvus。确保为MILVUS_HOST和MILVUS_PORT设置了正确的值。
示例.env配置:
env
MILVUS_HOST=127.0.0.1
MILVUS_PORT=19530
OPENAI_API_KEY=your_openai_api_key
设置环境变量
为了安全管理API密钥和数据库连接,项目使用.env文件存储环境变量。
-
创建
.env文件: bash cp .env.example .env -
填写
.env文件: plaintext OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx MILVUS_HOST=127.0.0.1 MILVUS_PORT=19530 -
保存
.env文件。
逐步工作流程
-
预处理数据集: bash python src/preprocess.py
-
设置Milvus: bash python src/milvus_setup.py
-
构建RAG管道: bash python src/rag_pipeline.py
-
与Flask应用交互: bash python src/app.py
访问
http://127.0.0.1:5000/以使用应用。
文档
详细解释仓库内部工作原理的文件位于docs/innerworkings.md。
许可证
本项目基于MIT许可证。
贡献
欢迎贡献!请打开问题或提交拉取请求以提出改进建议。




