RAG+Vllm的知识库部署检索方案

轻量级快速方案(推荐起步)

架构组件

组件 选型建议 说明
嵌入模型 BAAI/bge-large-zh-v1.5Qwen3-Embedding-0.6B 中文支持好
向量数据库 Chroma(轻量)或 FAISS(高性能) 本地部署,无需额外服务
文档切分 RecursiveCharacterTextSplitter 按段落/句子智能切分

核心代码实现

python

复制代码
# 1. 知识库准备(一次性)
from langchain.document_loaders import TextLoader, DirectoryLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.embeddings import HuggingFaceEmbeddings
from langchain.vectorstores import Chroma

# 加载控规文档
loader = DirectoryLoader("./控规文档/", glob="*.txt", loader_cls=TextLoader)
documents = loader.load()

# 智能切分(适合控规文件特点)
text_splitter = RecursiveCharacterTextSplitter(
    chunk_size=800,          # 每块800字符
    chunk_overlap=200,       # 重叠200,保留上下文
    separators=["\n\n", "\n", "。", ";", ",", " "]
)
chunks = text_splitter.split_documents(documents)

# 中文嵌入模型
embeddings = HuggingFaceEmbeddings(
    model_name="BAAI/bge-large-zh-v1.5",
    model_kwargs={"device": "cuda"}
)

# 存入向量库
vectorstore = Chroma.from_documents(chunks, embeddings, persist_directory="./chroma_db")

python

复制代码
# 2. 查询接口(每次请求)
def rag_query(user_query: str, system_prompt: str) -> str:
    # 检索相关文档片段
    retriever = vectorstore.as_retriever(search_kwargs={"k": 5})
    relevant_docs = retriever.get_relevant_documents(user_query)
    
    # 构建上下文
    context = "\n\n---\n\n".join([doc.page_content for doc in relevant_docs])
    
    # 增强后的提示词
    augmented_prompt = f"""【参考知识库内容】
{context}

【用户问题】
{user_query}

【要求】
请严格依据上述知识库内容进行回答。如果知识库中没有相关信息,请明确说明。"""

    # 调用 vLLM
    import requests
    response = requests.post(
        "http://192.168.3.215:7899/v1/chat/completions",
        headers={"Authorization": "Bearer sk-*****"},
        json={
            "model": "Qwen/Qwen3-8B",
            "messages": [
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": augmented_prompt}
            ],
            "temperature": 0.0,
            "max_tokens": 8192
        }
    )
    return response.json()["choices"][0]["message"]["content"]
相关推荐
Peter·Pan爱编程1 天前
OpenClaw进阶实战(二):本地模型量化与加速——GGUF、vLLM、OpenVINO实战
人工智能·openvino·vllm
执笔论英雄2 天前
【vllm】vllm根据并发学习调度
java·学习·vllm
共绩算力2 天前
vLLM高吞吐推理系统全景拆解
人工智能·vllm·共绩算力
HyperAI超神经2 天前
在线教程丨华中科大与小红书 hi lab开源dots.mocr,SOTA级OCR模型完美还原文档结构,图形也能转 SVG
人工智能·深度学习·学习·机器学习·gpu·orc·vllm
知福致福4 天前
向vllm部署的qwen3服务发送请求时禁用thinking模式
vllm
做个文艺程序员4 天前
vLLM 部署避坑全记录:从显存 OOM 到推理延迟优化
人工智能·vllm
weixin_446260854 天前
wsl安装vllm日记
vllm
陕西小伙伴网络科技有限公司7 天前
AMD显卡运行qwen3.5-使用VLLM
vllm
柯南小海盗8 天前
大模型GPU选型与部署资源评估完全指南:从RTX 4090到H20,从vLLM到SGLang
语言模型·vllm·sglang