建设信用卡官网网站,网站开发外包业务怎么接,wordpress文章 代码块,吉林省住房城乡建设厅网站在企业数字化转型浪潮中#xff0c;如何有效管理和利用内部知识资产已成为关键挑战。随着大型语言模型(LLM)技术的成熟#xff0c;检索增强生成(RAG)应用正逐渐成为连接企业知识与AI能力的重要桥梁。然而#xff0c;传统RAG实现常面临检索质量不佳、实时更新困难等痛点问题。…在企业数字化转型浪潮中如何有效管理和利用内部知识资产已成为关键挑战。随着大型语言模型(LLM)技术的成熟检索增强生成(RAG)应用正逐渐成为连接企业知识与AI能力的重要桥梁。然而传统RAG实现常面临检索质量不佳、实时更新困难等痛点问题。本文将通过实战案例详细介绍如何基于模型上下文协议(MCP)构建一套高性能企业RAG系统帮助企业快速打造智能知识库应用。MCP与传统RAG对比优势传统RAG方案的局限传统RAG实现通常采用简单的Embedding检索LLM生成架构存在以下限制紧耦合架构检索逻辑与LLM调用紧密耦合难以独立优化单一检索策略通常只采用向量检索缺乏多种检索方式结合缺乏标准化接口各实现间接口差异大难以实现功能复用维护成本高系统升级需要修改大量底层代码MCP解决方案的优势基于MCP的RAG系统通过标准化协议将知识检索服务解耦为独立模块带来以下优势标准化工具调用MCP提供统一接口规范降低集成成本解耦设计将模型调用与业务逻辑分离便于独立升级和维护灵活扩展轻松添加新数据源和功能模块如混合检索、多模态内容等工程实践友好符合软件工程最佳实践便于团队协作开发图片源自 dailydoseofds项目背景与需求现代企业面临的知识管理挑战主要表现在以下几个方面•知识分散企业文档分布在多个系统中缺乏统一检索入口•检索效率低传统关键词检索无法理解语义难以准确找到所需信息•知识更新慢知识库更新依赖人工整理无法及时反映最新情况•使用门槛高专业术语和复杂查询语法提高了普通员工使用难度针对这些问题我们需要设计一个系统满足以下核心需求智能检索支持自然语言提问理解问题意图和上下文知识自动化处理实现文档智能拆分、FAQ自动提取灵活扩展支持多种数据源和模型集成易于部署与维护架构简洁便于技术团队掌握和迭代项目目标本项目旨在构建一个基于MCP的企业RAG系统实现以下具体目标技术目标• 构建支持MCP协议的知识库服务和客户端• 实现文档智能切分、FAQ自动提取功能• 支持复杂问题的拆解和混合检索策略应用目标• 提供统一的知识库管理和检索入口• 显著提升企业内部知识检索准确率(目标90%以上)• 减少70%知识库维护工作量• 支持企业各类文档的智能处理和检索项目系统设计与实现本项目系统设计参考自alibabacloud-tablestore-mcp-server[1]由于alibabacloud-tablestore-mcp-server项目使用Tablestore存储和Java实现的MCP Server不方便于后期扩展和迭代。本项目改造为Milvus存储和Python实现MCP Server和MCP Client代码全部重写cursor帮忙不少。以下设计和流程皆为alibabacloud-tablestore-mcp-server内容在此感谢xjtushilei 开源的alibabacloud-tablestore-mcp-server。我们构建的基于MCP的RAG系统主要包含三个核心部分知识库服务(MCP Server)基于Milvus向量数据库实现的后端服务负责文档存储和检索客户端工具(MCP Client)与MCP Server通信的客户端实现知识库的构建和检索功能大模型集成通过LLM实现文档切分、FAQ提取、问题拆解和回答生成等核心功能流程图主要分为两部分知识库构建和检索。知识库构建文本切段对文本进行切段切段后的内容需要保证文本完整性以及语义完整性。提取 FAQ根据文本内容提取 FAQ作为知识库检索的一个补充以提升检索效果。导入知识库将文本和 FAQ 导入知识库并进行 Embedding 后导入向量。知识检索RAG问题拆解对输入问题进行拆解和重写拆解为更原子的子问题。检索针对每个子问题分别检索相关文本和 FAQ针对文本采取向量检索针对 FAQ 采取全文和向量混合检索。知识库内容筛选针对检索出来的内容进行筛选保留与问题最相关的内容进行参考回答。相比传统的 Naive RAG在知识库构建和检索分别做了一些常见的优化包括 Chunk 切分优化、提取 FAQ、Query Rewrite、混合检索等。流程流程图本Agent整体架构分为三个部分知识库内部包含 Knowledge Store 和 FAQ Store分别存储文本内容和 FAQ 内容支持向量和全文的混合检索。MCP Server提供对 Knowledge Store 和 FAQ Store 的读写操作总共提供 4 个 Tools。**功能实现部分**完全通过 Prompt LLM 来实现对知识库的导入、检索和问答这几个功能。项目结构项目结构分为两部分milvus-mcp-clientPython 实现的 Client 端实现了与大模型进行交互通过 MCP Client 获取 Tools根据大模型的反馈调用 Tools 等基本能力。通过 Prompt 实现了知识库构建、检索和问答三个主要功能。**milvus-mcp-server** Python 实现的 Server 端基于 MCP 框架实现的服务提供了连接 Milvus 向量数据库的接口支持知识库的存储和检索功能。项目实战从零搭建MCP-RAG系统接下来我们将从环境搭建、服务部署到功能测试全面介绍如何搭建一个基于MCP的RAG系统。环境准备首先确保满足以下系统要求• Docker 和 Docker Compose• 至少 4CPU、4GB内存和20GB磁盘空间• 克隆代码git clone -b rag_0.1.1 https://github.com/FlyAIBox/mcp-in-action.git部署MCP ServerMCP Server基于Milvus向量数据库提供了知识库的存储和检索功能。对于需要进行开发或调试的场景可以选择本地部署# 进入项目目录cd mcp-rag# 先启动Milvus及依赖服务docker compose up -d etcd minio standalone# 创建Python虚拟环境python -m venv env-mcp-ragsource env-mcp-rag/bin/activate # 安装依赖pip install -r requirements.txt# 启动服务python -m app.mainMCP Server的核心APIMCP Server提供四个核心工具支持知识库的读写操作storeKnowledge存储文档到知识库searchKnowledge在知识库中搜索相似文档storeFAQ存储FAQ到FAQ库searchFAQ在FAQ库中搜索相似问答对让我们看看这些API的实际实现原理async defstore_knowledge(self, content: str, metadata: Dict[str, Any] None) - Dict[str, Any]: 存储知识内容到Milvus # 确保服务准备就绪 awaitself.ready_for_connections() try: knowledge_content KnowledgeContent( contentcontent, metadatametadata or {} ) self.milvus_service.store_knowledge(knowledge_content) return {status: success, message: Knowledge stored successfully} except Exception as e: logger.error(fError storing knowledge: {e}) return {status: error, message: str(e)}这段代码展示了storeKnowledge工具的实现接收文本内容和元数据创建知识内容对象然后通过Milvus服务存储到向量数据库中。基于MCP Client实现RAG客户端接下来我们需要实现一个RAG客户端通过MCP协议与Server通信实现知识库的构建和查询功能。1. 知识库构建• 文本切分对长文本进行智能切分保证语义完整性• FAQ提取从文档自动生成常见问题解答对• 向量化存储将文本片段和FAQ转换为向量并存入Milvus文本切分代码示例def _chunk_text(self, text: str) - List[str]: 将文本分割成chunk保证语义完整性 chunks [] # 处理文本小于chunk_size的简单情况 iflen(text) self.chunk_size: chunks.append(text) return chunks # 使用重叠策略分割文本 start 0 while start len(text): # 获取chunk结束位置 end start self.chunk_size # 调整结束位置避免在句子中间切断 if end len(text): # 寻找句子边界句号、问号、感叹号 sentence_end max( text.rfind(. , start, end), text.rfind(? , start, end), text.rfind(! , start, end) ) # 如果找到句子结束使用它作为chunk结束 if sentence_end start: end sentence_end 1# 包含句号 # 添加chunk chunks.append(text[start:min(end, len(text))]) # 移动开始位置到下一个chunk考虑重叠 start end - self.chunk_overlap # 确保进度 if start len(text) or start 0: break return chunksFAQ提取通过LLM实现async def_extract_faqs(self, text: str) - List[Dict[str, str]]: 从文本中提取FAQ # 对过长文本进行分块处理 iflen(text) 8000: chunks self._chunk_text(text) faqs [] for chunk in chunks: chunk_faqs awaitself._extract_faqs(chunk) faqs.extend(chunk_faqs) return faqs # FAQ提取的提示模板 system_prompt 你是一位专业的知识提取专家。你的任务是从文本中提取可能的常见问题(FAQ)。 这些问题应该是用户可能会问的关于文本内容的自然问题答案应该能在文本中找到。 提取的FAQ应该覆盖文本中最重要的概念和信息。 请遵循以下规则 1. 每个FAQ由一个问题和一个答案组成 2. 问题应该简短明了直接针对主题 3. 答案应该全面但简洁提供文本中的相关信息 4. 提取的FAQ数量应该基于文本长度和内容丰富度通常不超过10个 5. 确保提取的FAQ相互之间不重复 6. 按照重要性排序最重要的问题应该放在前面 输出格式必须是一个JSON数组每个FAQ是一个包含question和answer字段的对象例如 [ { question: 问题1?, answer: 答案1 }, { question: 问题2?, answer: 答案2 } ] 只输出JSON格式不要有任何其他文本。 user_prompt f从以下文本中提取常见问题(FAQ) {text} 请提取最相关、最有价值的FAQ并按JSON格式返回。 # 使用LLM提取FAQ response self.llm_client.sync_generate( prompttext, system_promptsystem_prompt, temperature0.3 ) # 解析LLM响应获取FAQ # ...2. 知识检索优化与传统RAG不同我们在检索环节引入了问题拆解、混合检索和结果筛选三个优化机制。• 问题拆解将复杂问题拆解为多个子问题• 混合检索同时检索文本库和FAQ库提高召回率• 结果筛选对检索结果进行排序和筛选优先保留高质量内容问题拆解示例async def_decompose_question(self, question: str) - List[str]: 将复杂问题分解为更简单的子问题 system_prompt 你是一位问题分析专家。你的任务是将复杂问题分解为更简单的子问题以便更好地检索相关信息。 请遵循以下规则 1. 分析用户的问题识别其中包含的不同方面或概念 2. 将复杂问题拆分成更简单、更具体的子问题 3. 确保子问题覆盖原始问题的所有关键方面 4. 提供2-4个子问题具体数量取决于原始问题的复杂度 5. 子问题应该是明确的、有针对性的 6. 子问题之间应该尽量避免重复 输出格式必须是一个JSON数组包含所有子问题的字符串例如 [子问题1, 子问题2, 子问题3] 如果原始问题已经足够简单不需要分解则返回只包含原始问题的JSON数组 [原始问题] 只输出JSON格式不要有任何其他文本。 user_prompt f请将以下问题分解为更简单的子问题以便检索{question} # 使用LLM生成子问题 response self.llm_client.sync_generate( promptuser_prompt, system_promptsystem_prompt, temperature0.3 ) # 解析响应获取子问题列表 # ...结果筛选与生成回答的关键代码async def_filter_context(self, question: str, context_items: List[Dict[str, Any]]) - List[Dict[str, Any]]: 根据问题相关性筛选上下文 # 简单筛选去重和截断 seen_contents set() filtered_items [] # 优先处理FAQ类型 faq_items [item for item in context_items if item[type] faq] knowledge_items [item for item in context_items if item[type] knowledge] # 先处理FAQ项 for item in faq_items: # 去重处理 # ... # 再处理知识项 for item in knowledge_items: # 去重处理 # ... # 限制上下文项总数 max_context_items 6 iflen(filtered_items) max_context_items: filtered_items filtered_items[:max_context_items] return filtered_items实际效果展示部署完成后让我们看看系统的实际运行效果1. 知识库构建python -m app.main build --file test.md --title RAG基本介绍 --author 企业知识库 --tags LLM,RAG,知识库执行结果plaintext 2025-05-11 14:50:16 | INFO | app.knowledge_builder:build_from_text:52 - Split text into 2 chunks2025-05-11 14:50:59 | INFO | app.knowledge_builder:build_from_text:72 - Extracted 8 FAQs from text2025-05-11 14:51:00 | INFO | __main__:build_knowledge_base:48 - Stored 2/2 chunks to knowledge base2025-05-11 14:51:00 | INFO | __main__:build_knowledge_base:50 - Extracted and stored 8 FAQs借助attu查看知识库构建结果2. 知识检索问答python -m app.main query --question RAG相比企业传统的知识库有什么优势和缺点执行结果2025-05-11 15:01:46 | INFO | app.knowledge_retriever:query:39 - Decomposed question into 4 sub-questions2025-05-11 15:01:47 | INFO | app.knowledge_retriever:query:67 - Filtered 28 context items to 6问题: RAG相比企业传统的知识库有什么优势和缺点--------------------------------------------------------------------------------回答: 检索增强生成RAG是一种通过整合训练数据之外的权威知识库来优化大型语言模型LLM输出的技术。其核心在于允许LLM在生成响应前动态访问特定领域或组织的内部知识库例如实时数据源、文档或专业数据库而无需对模型本身进行重新训练。这种方式通过引入外部信息显著提升了生成内容的相关性、准确性及实用性同时保留了LLM的灵活性和泛化能力。知识检索问答实施建议与最佳实践根据实际项目经验我们总结了以下最佳实践文档处理策略• 合理设置文本切分的大小1000-1500字符和重叠率200-300字符• 根据文档类型调整切分策略技术文档和叙述性文档要区别对待• 保留文档原始格式信息作为元数据提升检索精度检索优化技巧• 使用混合检索语义关键词提高召回率• 在问题拆解环节设置合理的子问题数量2-4个• 限制总上下文数量5-8个避免信息过载系统集成要点• 选择合适的向量模型• 针对实时更新需求设计增量索引策略• 添加监控和日志记录及时发现并解决问题总结与展望基于MCP实现的RAG系统代表了知识库建设的新方向。通过模型上下文协议我们不仅解决了传统RAG系统中的诸多痛点还为企业提供了一种低成本、高效率的知识管理方案。未来随着大模型技术的进步和MCP标准的完善我们可以期待更多创新功能的出现• 多模态内容的支持图像、音频、视频等• 更精准的实时知识更新机制• 基于用户反馈的自适应检索优化对于企业而言现在正是开始探索和应用这一技术的最佳时机。通过MCP-RAG企业可以充分挖掘自身知识资产的价值为员工和客户提供更智能、更精准的信息服务。参考资源模型上下文协议(MCP)官方文档[2]Milvus向量数据库可视化客户端Attu[3]MCP-RAG实战代码仓库[4]欢迎感兴趣的开发者访问项目仓库体验和改进这一开源解决方案 https://github.com/FlyAIBox/mcp-in-action/tree/rag_0.1.1/mcp-rag想入门 AI 大模型却找不到清晰方向备考大厂 AI 岗还在四处搜集零散资料别再浪费时间啦2025 年AI 大模型全套学习资料已整理完毕从学习路线到面试真题从工具教程到行业报告一站式覆盖你的所有需求现在全部免费分享扫码免费领取全部内容一、学习必备100本大模型电子书26 份行业报告 600 套技术PPT帮你看透 AI 趋势想了解大模型的行业动态、商业落地案例大模型电子书这份资料帮你站在 “行业高度” 学 AI1. 100本大模型方向电子书2. 26 份行业研究报告覆盖多领域实践与趋势报告包含阿里、DeepSeek 等权威机构发布的核心内容涵盖职业趋势《AI 职业趋势报告》《中国 AI 人才粮仓模型解析》商业落地《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》领域细分《AGI 在金融领域的应用报告》《AI GC 实践案例集》行业监测《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。3. 600套技术大会 PPT听行业大咖讲实战PPT 整理自 2024-2025 年热门技术大会包含百度、腾讯、字节等企业的一线实践安全方向《端侧大模型的安全建设》《大模型驱动安全升级腾讯代码安全实践》产品与创新《大模型产品如何创新与创收》《AI 时代的新范式构建 AI 产品》多模态与 Agent《Step-Video 开源模型视频生成进展》《Agentic RAG 的现在与未来》工程落地《从原型到生产AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。二、求职必看大厂 AI 岗面试 “弹药库”300 真题 107 道面经直接抱走想冲字节、腾讯、阿里、蔚来等大厂 AI 岗这份面试资料帮你提前 “押题”拒绝临场慌1. 107 道大厂面经覆盖 Prompt、RAG、大模型应用工程师等热门岗位面经整理自 2021-2025 年真实面试场景包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题每道题都附带思路解析2. 102 道 AI 大模型真题直击大模型核心考点针对大模型专属考题从概念到实践全面覆盖帮你理清底层逻辑3. 97 道 LLMs 真题聚焦大型语言模型高频问题专门拆解 LLMs 的核心痛点与解决方案比如让很多人头疼的 “复读机问题”三、路线必明 AI 大模型学习路线图1 张图理清核心内容刚接触 AI 大模型不知道该从哪学起这份「AI大模型 学习路线图」直接帮你划重点不用再盲目摸索路线图涵盖 5 大核心板块从基础到进阶层层递进一步步带你从入门到进阶从理论到实战。L1阶段:启航篇丨极速破界AI新时代L1阶段了解大模型的基础知识以及大模型在各个行业的应用和分析学习理解大模型的核心原理、关键技术以及大模型应用场景。L2阶段攻坚篇丨RAG开发实战工坊L2阶段AI大模型RAG应用开发工程主要学习RAG检索增强生成包括Naive RAG、Advanced-RAG以及RAG性能评估还有GraphRAG在内的多个RAG热门项目的分析。L3阶段跃迁篇丨Agent智能体架构设计L3阶段大模型Agent应用架构进阶实现主要学习LangChain、 LIamaIndex框架也会学习到AutoGPT、 MetaGPT等多Agent系统打造Agent智能体。L4阶段精进篇丨模型微调与私有化部署L4阶段大模型的微调和私有化部署更加深入的探讨Transformer架构学习大模型的微调技术利用DeepSpeed、Lamam Factory等工具快速进行模型微调并通过Ollama、vLLM等推理部署框架实现模型的快速部署。L5阶段专题集丨特训篇 【录播课】四、资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容2025 年想抓住 AI 大模型的风口别犹豫这份免费资料就是你的 “起跑线”