🚀 Qdrant 开发容器用于文件嵌入
本项目提供了一个运行 Qdrant 进行文件嵌入的开发环境配置。借助向量相似性搜索技术,它能对文本文档进行索引和搜索,解决了文件搜索和索引的难题,为开发者提供了便捷高效的解决方案。
🚀 快速开始
前提条件
- 启动开发容器前,需运行 Docker Desktop。
- 需使用安装了 Remote - Containers 扩展的 VS Code。
- 需具备互联网连接,用于下载依赖项。
操作步骤
- 确保系统上 Docker Desktop 正在运行。
- 在 VS Code 中打开此文件夹。
- 点击右下角的绿色“重新在容器中打开”按钮;或者按下
F1并输入"Dev Containers: Reopen in Container"。
✨ 主要特性
- 具备在后台运行的 Qdrant 向量数据库。
- 可使用 sentence - transformers 自动进行文件索引。
- 配备了包含所有必需依赖项的 Python 环境。
- 提前安装好了 VS Code Python 扩展。
📦 安装指南
本项目依赖 Docker Desktop 和安装了 Remote - Containers 扩展的 VS Code,具体安装步骤如下:
- 安装 Docker Desktop,确保其能正常运行。
- 在 VS Code 中安装 Remote - Containers 扩展。
💻 使用示例
基础用法
- 将您的文本文件放在
data/目录中。
- 容器会自动启动 Qdrant 服务。
- 容器构建完成后,您可以通过
http://localhost:6333访问 Qdrant。
- 从容器内部手动运行加载脚本:
python ingest.py
📚 详细文档
项目结构
qdrant_server_devcontainer/
├── .devcontainer/
│ ├── devcontainer.json
│ └── Dockerfile
├── requirements.txt
├── ingest.py
└── data/ # 在此处放置您的文本文件
使用说明
- 文件放置:将文本文件放在
data/目录中。
- 服务启动:容器会自动启动 Qdrant 服务。
- 访问服务:容器构建完成后,通过
http://localhost:6333访问 Qdrant。
- 数据加载:从容器内部手动运行加载脚本
python ingest.py。
🔧 技术细节
- Qdrant 使用动态分配的端口运行,可在容器构建输出面板中查看端口信息。
- 使用
all - MiniLM - L6 - v2进行文本嵌入。
- 创建了一个名为"local - docs"的集合,使用余弦相似度。
- 支持在数据目录中放置文本文件(.txt)、Markdown 文件(.md)和 PDF 文件(.pdf)。
🛠️ 故障排除
容器无法启动
- 确保 Docker Desktop 正在运行。
- 检查是否有其他进程占用动态分配的端口。
- 验证所有依赖项是否正确安装。
文件未被索引
- 检查文件是否在
data/目录中。
- 确认文件扩展名受支持(当前支持.txt、.md、.pdf)。
- 确保文件对容器可读。
📄 许可证
本项目采用 MIT License 许可协议。
📋 待办事项
- 处理大体积 PDF 文件。
- 使用并行处理按页面提取文本。
- 每个片段准备完成后立即嵌入和推送。
- 如果
torch.cuda.is_available()可用,添加 GPU 嵌入支持。
- 添加对 epub 文件的支持。