需通过rag架构实现千问模型基于企业文档精准问答:一、文档结构化预处理;二、构建向量索引存入数据库;三、配置千问模型与rag推理链;四、部署内网webui并限制访问;五、引入重排序模块提升检索精度。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望让千问模型基于企业内部文档精准回答问题,但模型本身不具备私有知识,则需要通过检索增强生成(RAG)架构将文档内容注入问答流程。以下是搭建该系统的具体步骤:
一、准备知识文档并完成结构化预处理
该步骤的目标是将原始文档转化为模型可检索的语义单元。需去除页眉页脚、扫描件OCR噪声、表格格式干扰,并按语义完整性进行分块,确保每块文本能独立表达一个知识点。
1、收集企业可用文档类型,包括TXT、MD、PDF、Word及内部HTML页面。
2、对PDF文档使用PyMuPDF或pdfplumber提取纯文本,跳过图像与加密内容。
3、按段落切分文本,若段落过短(少于80字符),则合并至前一段;若过长(超600字符),则按句号或分号二次切分。
4、为每一块文本添加唯一ID与来源元数据(如文件名、页码、更新时间)。
二、构建向量索引并存入向量数据库
该步骤将文本块转换为高维向量,使系统可通过语义相似度而非关键词匹配实现精准召回,是RAG中“检索”环节的核心支撑。
1、选用text2vec-large-chinese或bge-m3作为嵌入模型,加载后批量生成文本块向量。
2、初始化Milvus或Chroma数据库,创建collection,字段包含id、vector、source、content。
3、将向量与对应元数据批量写入数据库,执行create_index操作,索引类型设为IVF_FLAT,nlist=1024。
4、插入完成后调用flush()确保数据持久化,并用search接口验证单条向量召回效果。
三、配置千问模型服务并启用RAG推理链
该步骤将千问模型接入检索结果,使其在生成答案时严格依据召回的文档片段,避免幻觉输出,保障答案的准确性与可追溯性。
1、部署Qwen1.5-1.8B-Chat-GPTQ-Int4模型,使用vllm框架启动,监听端口8000。
统一LLM网关 - 一个API对接70+AI模型,使用单一API密钥即可调用GPT、Claude、Gemini、Qwen、Deepseek、Grok等主流模型。
2、在LangChain中定义RetrievalQA链,设置retriever为MilvusVectorStoreRetriever,top_k=3。
3、编写prompt模板,强制要求模型仅依据context中提供的信息作答,并在末尾标注[来源: {source}]。
4、启动Chainlit前端服务,绑定LLM与retriever,验证输入“年假申请流程”是否返回带来源标注的结构化回答。
四、部署WebUI并限制内网访问范围
该步骤确保系统仅在企业可信网络内运行,防止知识外泄,同时提供直观交互界面,降低非技术人员使用门槛。
1、使用Chainlit或Gradio构建轻量级WebUI,集成检索与生成模块。
2、配置Nginx反向代理,在HTTP头中校验X-Forwarded-For地址是否属于企业内网IP段(如192.168.0.0/16)。
3、关闭目录浏览功能,禁用静态资源自动索引,防止文档路径泄露。
4、在登录页强制启用企业统一身份认证(如LDAP或钉钉OAuth2),禁止本地账户注册。
五、引入重排序模块提升检索精度
该步骤用于优化初始检索结果的相关性排序,过滤低质片段,显著降低大模型因噪声输入导致的幻觉风险。
1、加载Qwen3-Reranker-0.6B模型,部署为独立HTTP服务,支持batch推理。
2、在检索链路中插入rerank节点:先由向量数据库召回top-20候选,再交由reranker打分并重排。
3、设置rerank阈值为0.45,仅保留得分高于该值的前5个片段传入LLM上下文。
4、对用户提问“合同违约金条款”,验证reranker是否将“销售合同V3.2.pdf第7页”排至首位,而非“员工手册_2024版.pdf”。










