RAG流水线部署指南:从本地原型到生产环境

📘 教程 2026-07-20 约 6 分钟阅读

RAG原型在笔记本上跑通了。但部署到生产环境面临延迟、扩展、文档更新和监控的挑战。

💡 你将学到

RAG原型在笔记本上跑通了。但部署到生产环境面临延迟、扩展、文档更新和监控的挑战。

📜 目录

RAG 流水线部署指南:从本地原型到向量数据库生产环境

RAG(检索增强生成)是将 LLM 与自有数据结合的最流行模式。以下是完整的部署指南。

架构概览

用户查询 → 嵌入模型 → 向量搜索 → 上下文检索 → 提示词组装 → LLM 生成 → 最终响应

第一步:选择你的向量数据库

数据库 GitHub Stars 模式 最佳适用场景
ChromaDB 18K 嵌入式/本地 原型开发、小型文档
Qdrant 25K 客户端-服务器 生产环境、中等规模
Weaviate 14K 客户端-服务器 混合搜索
Milvus 33K 分布式 企业级、大规模

建议:从 ChromaDB 开始,生产环境迁移到 Qdrant。

第二步:使用 ChromaDB 搭建本地原型

import chromadb
from chromadb.utils import embedding_functions

client = chromadb.Client()
collection = client.create_collection(
    name="my_docs",
    embedding_function=embedding_functions.SentenceTransformerEmbeddingFunction(
        model_name="all-MiniLM-L6-v2"
    )
)
collection.add(documents=["你的文档内容..."], ids=["doc1"])
results = collection.query(query_texts=["你的问题"], n_results=3)

第三步:使用 Qdrant 进行生产部署

from qdrant_client import QdrantClient
from qdrant_client.models import VectorParams, Distance

client = QdrantClient(host="localhost", port=6333)
client.create_collection(
    collection_name="production_docs",
    vectors_config=VectorParams(size=384, distance=Distance.COSINE)
)

第四步:生产环境 Docker Compose 配置

services:
  qdrant:
    image: qdrant/qdrant:latest
    ports: ["6333:6333"]
  llm-service:
    image: vllm/vllm-openai:latest
    command: --model Qwen/Qwen2.5-7B-Instruct
    ports: ["8000:8000"]
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]

性能基准测试

组件 本地(CPU) 生产环境(GPU) 提升幅度
嵌入 200ms/文档 15ms/文档 13倍
向量搜索 50ms 5ms 10倍
LLM 生成 15s 2s 7.5倍

监控检查清单

  1. 嵌入延迟 — 超过 100ms 时告警
  2. 向量搜索召回率 — 每月使用黄金查询集测试
  3. LLM 响应时间 — 超过 5s 时告警
  4. 用户反馈 — 每个回答提供点赞/点踩

常见问题

问:向量数据库多久更新一次? 答:动态数据实时更新,静态文档每晚批量更新。

问:最佳嵌入模型是什么? 答:BGE-small-en-v1.5(追求速度)或 BGE-base-en-v1.5(追求质量)。

问:如何处理大型文档? 答:将文档切分为 512 token 的片段,重叠 50 token。

相关文章

❓ 常见问题

How often to update vector DB?

Real-time for dynamic data, batch nightly for static docs.

Best embedding model?

BGE-small-en-v1.5 (speed) or BGE-base-en-v1.5 (quality).

How to handle large documents?

Chunk into 512-token segments with 50-token overlap.

相关文章
2026-08-01
PGVector教程:30分钟给PostgreSQL加AI搜索
2026-08-02
FastAPI for LLM 2026:一个下午搭好生产级AI后端
2026-07-17
AI Agent用户意图识别:先搞清楚用户想干嘛

本站文章由编辑人工撰写,收录的工具均经过实测或公开资料核验。文中链接指向工具官网或 GitHub 仓库,仅作信息参考,不构成付费推广。

💬 评论 (0)

暂无评论,来说两句吧~

登录后评论