ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

LLMWare 使用 Docker 与 Docker Compose 快速搭建多数据库 RAG 实验环境

LLMWare 使用 Docker 与 Docker Compose 快速搭建多数据库 RAG 实验环境 LLMWare 使用 Docker 与 Docker Compose 快速搭建多数据库 RAG 实验环境【免费下载链接】llmwareUnified framework for building enterprise RAG pipelines with small, specialized models项目地址: https://gitcode.com/GitHub_Trending/ll/llmware本文基于 llmware 仓库中的 Docker 入门指南 展开介绍如何在 Linux 环境下安装 Python/Docker/Docker Compose并借助仓库内置的docker-compose-*.yaml文件快速拉起 Mongo、Postgres/PG Vector、Neo4j、Milvus、Qdrant、Redis 六种数据库容器最后通过仓库示例脚本验证向量嵌入写入链路是否打通。读完后你可以独立完成容器化 RAG 环境的搭建、验证与清理。1. 前置准备Python 与 Pipllmware 的 Python 运行环境通常随 Linux 发行版自带。安装并升级 Pip 的命令如下以 Debian/Ubuntu 的 apt 为例sudo apt-get update sudo apt-get -y install python3-pip pip3 install --upgrade pip如果系统尚未安装python3需要先安装 Python 解释器。仓库的容器镜像基于 Python 3.11 构建见下文 Dockerfile 中的python:3.11-bookworm基础镜像因此宿主机使用 3.11 及以上版本最为贴合。2. 安装 Docker 与 Docker Compose 并验证要使用 llmware 仓库中的 Docker Compose 文件需要安装最新版 Docker 与 Docker Compose。安装思路可概括为两步安装 Docker Engine必需添加 Docker 官方 apt 源安装docker-ce及相关包然后启用服务sudo systemctl enable --now docker。安装 Docker Compose可选但强烈建议下载 Compose 二进制插件并放入/usr/local/lib/docker/cli-plugins/或旧版docker-compose命令的下载方式二进制下载地址以 Docker 官方 compose releases 页面为准。安装完成后验证 Docker 服务状态sudo systemctl status docker看到active (running)即表示守护进程正常。若 Compose 是作为 CLI 插件安装的可用docker compose version验证若是独立二进制则用docker-compose version。3. 仓库内置的 Compose 文件矩阵文档指出 Compose 文件“当前支持 6 种数据库系统”。在仓库中这些编排文件全部位于 scripts/docker/ 目录下命名格式为docker-compose-数据库名.yaml。与文档所述六类数据库的对应关系如下数据库系统角色Compose 文件容器镜像版本暴露端口Mongo活动数据库文本集合docker-compose.yaml、docker-compose_mongo_milvus.yaml、docker-compose-qdrant.yamlmongo:5.0.1027017Postgres / PG Vector活动数据库 向量数据库docker-compose-pgvector.yamlankane/pgvector5432Neo4j向量数据库docker-compose-neo4j.yamlneo4j:5.15.0-community7474、7687Milvus向量数据库docker-compose.yaml、docker-compose_mongo_milvus.yamlmilvusdb/milvus:v2.3.0standalone19530、9091Qdrant向量数据库docker-compose-qdrant.yamlqdrant/qdrant:latest6333、6334Redis向量数据库docker-compose-redis-stack.yamlredis/redis-stack-server:latest6379两点角色划分需要牢记文档原话的展开Mongo 和 Postgres 用作“活动数据库”active database / collection db存储 Library 的文本集合chunks、文档元数据等PG Vector、Neo4j、Milvus、Qdrant、Redis 用作“向量数据库”vector db存储向量嵌入。其中 PG Vector 是 Postgres 的别名即同一个 Postgres 容器既可做活动数据库也可通过 pgvector 扩展承担向量检索。3.1 主 Compose 文件一栈拉起 Mongo Milvus Neo4jdocker-compose.yaml 是最完整的开发栈定义了以下服务llmware 开发容器使用镜像provocoai/llmware:dev-01通过network_mode: service:mongodb与 mongodb 容器共享网络命名空间从源码结构看这样容器内可直接以本地回环访问 Mongo并以command: sleep infinity挂起等待人工进入调试mongodbmongo:5.0.10数据卷llmware-mongodb:/data/db端口27017:27017注释中预留了MONGO_INITDB_ROOT_USERNAME/PASSWORD等环境变量用于开启认证Milvus standalone 三件套etcdquay.io/coreos/etcd:v3.5.5负责元数据、miniominio/minio:RELEASE.2023-03-20T20-16-18Z负责对象存储、milvusmilvusdb/milvus:v2.3.0milvus run standalone启动depends_on声明了对 etcd 与 minio 的依赖并对 9091 端口的/healthz做 90 秒起跳的健康检查dev-neo4jneo4j:5.15.0-communityNEO4J_AUTHnone关闭认证仅限开发数据目录挂载$HOME/neo4j/data。3.2 单库 Compose 文件的关键配置各单库文件都刻意保持“最小可用”配置值得注意的细节docker-compose-pgvector.yaml镜像为ankane/pgvector预装 pgvector 扩展的 Postgres 发行版设置POSTGRES_DBpostgres、POSTGRES_USERpostgres、空密码与POSTGRES_HOST_AUTH_METHODtrust并挂载./init.sql到/docker-entrypoint-initdb.d/供容器首次启动时初始化扩展。trust认证只适用于本地实验docker-compose-qdrant.yaml同时编排了 mongodb qdrant 两个服务——即“活动数据库 向量数据库”一次性拉起qdrant 服务通过内联configs指定log_level: INFO数据持久化在qdrant_data卷docker-compose-redis-stack.yaml使用redis/redis-stack-server:latest并通过REDIS_ARGS--enable-debug-command yes --enable-module-command yes显式开启模块命令——这是 Redis 作为向量库redis-stack 自带向量检索模块可被 llmware 驱动使用的前提docker-compose_mongo_milvus.yaml主文件的精简子集仅含 mongodb etcd minio milvus 四个服务适合只测 Mongo/PG 活动库配 Milvus 向量库的场景。3.3 附带的 Dockerfile仓库还提供 scripts/docker/Dockerfile 用于构建 llmware 自身镜像关键步骤包括基于python:3.11-bookworm安装git、bash、postgresql、libpq-dev、build-essential、musl-dev等编译与数据库客户端依赖将 llmware 仓库克隆到镜像内/llmware并执行pip install --no-cache-dir -r requirements.txt创建非 root 用户llmwareUID/GID 1000并切换USER工作目录设为/llmware默认命令为/bin/bash。这解释了主 Compose 文件为何能把sleep infinity容器当作开发环境直接使用——镜像内已含完整的 llmware 依赖。4. 启动并检查容器进入仓库目录确认能看到docker-compose-*.yaml系列文件位于scripts/docker/下。启动任意一个 Compose 文件docker-compose -f docker-compose-pgvector.yaml up -d-f参数换成目标文件名即可Compose 插件语法docker compose -f ... up -d等效。然后检查容器是否运行docker ps注意docker ps只列出当前运行中的容器加-a标志docker ps -a可列出所有容器包括已停止的。对于多服务栈如 MongoMilvus建议用docker compose -f file ps查看带健康检查状态的完整拓扑Milvus 的健康检查有 90 秒start_period启动初期短暂非 healthy 属正常现象。5. 用嵌入示例验证数据库连通性文档推荐的验证方式是修改仓库中的嵌入示例。原文档引用fast_start/example-2-build_embeddings.py在当前仓库中该文件位于 solutions/rag/example-2-build_embeddings.py。需要改动的三处行号以当前仓库版本为准活动数据库第 143 行LLMWareConfig().set_active_db(sqlite)改为mongo或postgres二选一取决于你拉起的是哪个活动库容器向量数据库第 153 行LLMWareConfig().set_vector_db(chromadb)改为pg_vector、neo4j、milvus、qdrant或redis之一库名第 162 行library setup_library(example2_library)。配置层面对取值有白名单校验从源码结构看llmware/configs.py 中set_active_db()与set_vector_db()都会把传入值与cls._supported[collection_db]/cls._supported[vector_db]支持的列表比对不支持的名称会抛出LLMWareException提示selected db is not supported因此填错别名会在启动阶段立即报错而不是静默写入错误数据库。运行该示例后终端会输出嵌入生成进度示例内部调用library.install_new_embedding(embedding_model_name..., vector_db..., batch_size100)完成后用Query(library).semantic_query(...)执行一次语义查询验证。若出现如下错误llmware.exceptions.EmbeddingModelNotFoundException: Embedding model for example2_library could not be located说明该库名下已有残留的嵌入记录冲突按文档建议为第 162 行传入的库名换一个唯一名称即可。另外注意示例默认使用mini-lm-sbertsentence-transformers 类嵌入模型需先pip3 install torch transformers若改用 OpenAI 嵌入模型则按示例注释改为text-embedding-ada-002并配置 API Key。6. 停止与删除容器停止容器docker stop container_ID_OR_container_name删除容器删除不会自动删除数据卷如需彻底清理数据再执行docker volume rm或docker compose -f file down -vdocker rm container_ID_OR_container_name传入容器 ID 或名称均可。查找容器的 ID / 名称docker ps -a7. 实践注意事项与适用边界结合各 Compose 文件的实际配置使用这些编排文件前需注意以下前提与限制均为开发配置PG Vector 使用trust空密码认证、Neo4j 设置NEO4J_AUTHnone、Mongo 默认未启用MONGO_INITDB_ROOT_*认证、MinIO 使用默认minioadmin/minioadmin凭据见 docker-compose.yaml。这些配置只适用于本地实验环境不可直接用于生产端口冲突六个数据库的端口27017 / 5432 / 7474、7687 / 19530、9091、9000、9001 / 6333、6334 / 6379若与宿主机已有服务冲突需修改对应 Compose 文件的ports映射数据持久化各文件均使用具名卷llmware-mongodb、llmware-etcd、llmware-minio、llmware-milvus、qdrant_data、redis_data等或绑定挂载$HOME/neo4j/data保存数据重复up -d不会丢数据资源占用Milvus 栈包含 etcd、MinIO、Milvus 三个服务且健康检查周期较长建议在内存不低于 8GB 的机器上运行完整主栈或使用单库文件做更轻量的验证版本锁定镜像版本以当前 Compose 文件为准Mongo 5.0.10、Neo4j 5.15.0、Milvus v2.3.0 等升级镜像版本时留意与 llmware 驱动的兼容性。按以上步骤你可以在一台干净的 Linux 机器上完成环境准备 → 容器拉起 → 活动库/向量库配置 → 嵌入写入与语义查询验证 → 容器清理的完整闭环为后续在 llmware 中开展 RAG 管道开发提供可复现的数据库底座。【免费下载链接】llmwareUnified framework for building enterprise RAG pipelines with small, specialized models项目地址: https://gitcode.com/GitHub_Trending/ll/llmware创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表