四海网络网站建设建站中国电子商务研究中心官网

张小明 2025/12/26 21:18:23
四海网络网站建设建站,中国电子商务研究中心官网,上海学校网站建设,标志设计分析最近在用传统RAG系统做知识库问答的时候#xff0c;突然遇到了一个尴尬的问题。 我问系统#xff1a;“根据我们的研究数据#xff0c;全球气温变暖的主要原因是什么#xff1f;” 系统给出的答案支离破碎#xff0c;虽然提到了几个因素#xff0c;但完全没有把整个因果链…最近在用传统RAG系统做知识库问答的时候突然遇到了一个尴尬的问题。我问系统“根据我们的研究数据全球气温变暖的主要原因是什么”系统给出的答案支离破碎虽然提到了几个因素但完全没有把整个因果链条串起来。我意识到问题不在大模型本身而在于它能获取到的信息都是散落的碎片。后来才明白这正是传统RAG的痛点——它只能在文本块之间检索却看不到整个知识图谱的全貌。一、传统RAG的天花板如果你用过RAG系统可能也遇过类似的问题跨文档的信息无法连贯检索文档越多回答质量反而下降融合多个数据源的知识特别困难想象一下用传统搜索方式在食谱书里找炒鸡蛋和西红柿鸡蛋面的做法速度快得很。但如果你想知道为什么西红柿和鸡蛋搭配得这么完美关键词搜索就显得无力了。这正是传统语义检索方式的局限——它很擅长精确匹配但不擅长理解隐藏在信息后面的深层逻辑。二、GraphRAG出现了微软推出了一套新方案来解决这个问题GraphRAG图检索增强生成。核心思路很简单——与其把知识存成散乱的文本块不如把它组织成一张知识图谱其中实体是节点实体之间的关系是边。这样做有什么好处呢当大模型需要回答一个复杂问题时它不再是盲目地找相似的文本段落而是能够看到实体之间的关系理解信息之间的逻辑连接跨多个社区综合回答简单说GraphRAG让大模型从查字典升级到了读书。三、它是怎么工作的GraphRAG的工作流程分为两个阶段索引阶段和查询阶段。1、索引阶段构建知识的骨架首先系统会把源文档分成可管理的文本单元。然后大模型出手了它会自动识别实体和关系——从文本中提取出人、地点、公司等实体以及它们之间的联系构建知识图——用节点代表实体用边代表关系检测社区——使用Leiden算法找出紧密相关的实体集群生成摘要——为不同级别的社区生成分层摘要这个过程中有两个关键步骤特别值得关注图抽取的目标是从原始数据中识别有意义的信息把它们组织成图的形式。图摘要则是把复杂的图结构简化去掉冗余信息突出关键内容。就像整理一个杂乱的书架既要保留重要的书又要删除过期的杂志。2、查询阶段精准找到答案当用户提问时系统会判断问题的复杂程度选择合适的社区级别在选定的社区中检索相关信息从多个相关社区综合生成答案最后整合成一个完整的回复这比传统RAG的做法要聪明得多。传统方式是匹配用户查询和文本块的相似度而GraphRAG是在理解的基础上进行推理。四、怎样实现它理论讲到这儿你可能想知道——这东西怎么落地市面上有现成的工具可用。微软有官方的GraphRAG实现但也有更灵活的方案。比如用Neo4j LangChain的组合就特别受欢迎。Neo4j是一个图数据库专门用来存储和查询图结构的数据。LangChain是一个大模型框架能把各种工具串联起来。把它们组合使用就能搭建一个强大的GraphRAG系统。五、代码实战一步步搭建你的GraphRAG我把整个实现过程整理成了可运行的代码。假设我们要构建一个关于科技公司的知识图。第一步准备环境和数据# 安装必要的库 # pip install langchain neo4j langchain-openai langchain-experimental from langchain_core.documents import Document # 准备你的数据可以是公司信息文档 content 小米科技有限责任公司是一家专注于研发和推出创新技术的公司。 小米推出了智能家居产品和5G技术。 华为技术有限公司与清华大学建立了深度合作。 华为参与了5G标准的制定。 小米与美团合作开发物流解决方案。 # 转化为Document对象 documents [Document(page_contentcontent)] print(f加载了{len(documents)}份文档)第二步连接Neo4j并创建知识图from langchain_community.graphs import Neo4jGraph from langchain_experimental.graph_transformers import LLMGraphTransformer from langchain_openai import ChatOpenAI # 连接到Neo4j数据库使用免费的Neo4j Aura graph Neo4jGraph( urlneo4js://your-db-uri, # 替换为你的Neo4j URI usernameneo4j, passwordyour-password, # 替换为你的密码 databaseneo4j ) # 初始化LLM graph_llm ChatOpenAI(temperature0, model_namegpt-4o-mini) # 创建图转换器定义你要提取的实体和关系类型 graph_transformer LLMGraphTransformer( llmgraph_llm, allowed_nodes[公司, 产品, 技术, 教育机构, 合作伙伴], allowed_relationships[推出, 参与, 合作, 位于, 开发], ) # 执行转换从文档中提取实体和关系 graph_documents graph_transformer.convert_to_graph_documents(documents) # 将图数据导入Neo4j graph.add_graph_documents(graph_documents) print(f成功导入{len(graph_documents)}个图文档) print(f提取的实体: {[node.id for node in graph_documents[0].nodes]}) print(f提取的关系: {[(rel.source.id, rel.type, rel.target.id) for rel in graph_documents[0].relationships]})第三步用GraphRAG查询知识图from langchain.chains import GraphCypherQAChain llm ChatOpenAI(modelgpt-4o-mini, temperature0) # 创建Cypher查询链 cypher_chain GraphCypherQAChain.from_llm( graphgraph, cypher_llmllm, qa_llmllm, validate_cypherTrue, verboseTrue, # 设置为True可以看到生成的Cypher查询过程 allow_dangerous_requestsTrue ) # 测试几个问题 queries [ 小米科技有限责任公司推出了哪些创新技术, 华为技术有限公司与哪些教育机构建立了合作, 都有哪些公司在我的数据库中 ] for query in queries: print(f\n问题: {query}) response cypher_chain.invoke(query) print(f答案: {response[result]}) print(- * 50)六、更进一步混合知识库系统如果你想同时使用GraphRAG和传统RAG我也准备了代码。这样可以兼得两种方法的优势。第四步建立向量数据库传统RAGfrom langchain_text_splitters import RecursiveCharacterTextSplitter from langchain_openai import OpenAIEmbeddings from langchain_milvus import Milvus # 分割文本 text_splitter RecursiveCharacterTextSplitter( chunk_size250, chunk_overlap30 ) splits text_splitter.split_documents(documents) # 创建向量嵌入 embeddings OpenAIEmbeddings(modeltext-embedding-3-large) # 连接到Milvus向量数据库使用免费的Zilliz云服务 vectorstore Milvus.from_documents( documentssplits, collection_namecompany_rag_milvus, embeddingembeddings, connection_args{ uri: https://your-milvus-uri, # 替换为你的Milvus URI user: your-username, password: your-password, } ) print(f向量数据库已创建包含{len(splits)}个文本块)第五步构建传统RAG代理from langchain.prompts import PromptTemplate from langchain_core.output_parsers import StrOutputParser # 定义RAG提示词 prompt PromptTemplate( template你是一个问答助手。 使用以下检索到的上下文来回答问题。如果你不知道答案就说你不知道。 最多使用三句话保持简洁 问题: {question} 上下文: {context} 答案:, input_variables[question, context], ) # 构建RAG链 rag_chain prompt | graph_llm | StrOutputParser() # 执行查询 question 我的知识库中都有哪些公司信息 retriever vectorstore.as_retriever(search_kwargs{k: 2}) # 检索相关文档 docs retriever.invoke(question) # 生成回答 generation rag_chain.invoke({ context: \n\n.join([doc.page_content for doc in docs]), question: question }) print(fRAG系统的回答: {generation})第六步多代理系统——让两种方法协同工作from langgraph.graph import StateGraph, MessagesState, START, END from langchain_core.messages import HumanMessage from typing import Literal from typing_extensions import TypedDict class AgentState(MessagesState): next: str class Router(TypedDict): 路由到不同的子代理 next: Literal[graph_kg, vec_kg, FINISH] # 图数据库代理 def graph_kg_agent(state: AgentState): messages state[messages][-1] response cypher_chain.invoke(messages.content) return { messages: [HumanMessage(contentresponse[result], namegraph_kg)] } # 向量数据库代理 def vec_kg_agent(state: AgentState): messages state[messages][-1] retriever vectorstore.as_retriever(search_kwargs{k: 2}) docs retriever.invoke(messages.content) generation rag_chain.invoke({ context: \n\n.join([doc.page_content for doc in docs]), question: messages.content }) return { messages: [HumanMessage(contentgeneration, namevec_kg)] } # 主管代理判断用何种方式回答 def supervisor(state: AgentState): system_prompt 你是一个任务主管管理两个工作者 - graph_kg: 基于知识图擅长回答全局、综合性问题 - vec_kg: 基于向量检索擅长回答细节问题 根据用户问题判断应该使用哪个工作者。 messages [{role: system, content: system_prompt}] state[messages] response graph_llm.with_structured_output(Router).invoke(messages) next_worker response[next] if next_worker FINISH: next_worker END return {next: next_worker} # 构建图 builder StateGraph(AgentState) builder.add_node(supervisor, supervisor) builder.add_node(graph_kg, graph_kg_agent) builder.add_node(vec_kg, vec_kg_agent) # 设置工作流 builder.add_edge(START, supervisor) for worker in [graph_kg, vec_kg]: builder.add_edge(worker, supervisor) builder.add_conditional_edges(supervisor, lambda state: state[next]) # 编译并运行 multi_agent_graph builder.compile() # 测试多代理系统 test_queries [ 都有哪些公司在我的数据库中, # 应该用graph_kg 小米推出了什么技术 # 应该用graph_kg ] for query in test_queries: print(f\n用户问题: {query}) for output in multi_agent_graph.stream( {messages: query}, stream_modevalues ): last_message output[messages][-1] print(f{last_message.name}: {last_message.content}) print(- * 50)七、快速上手的步骤第一步准备Neo4j实例。可以用免费的Neo4j Aura云服务注册即用不需要本地部署。第二步用LLM把文档转换成图。这里可以自定义节点类型和关系类型比如节点公司、产品、技术、市场关系推出、合作、开发、位于系统会自动提取文档中对应的实体和关系构建知识图。第三步可视化和验证。登录Neo4j平台就能看到生成的完整知识图。确保数据准确后就可以用来回答问题了。八、更进一步混合知识库这是我最近在做的一个有意思的尝试——同时使用GraphRAG和传统RAG。想法是这样的GraphRAG擅长回答宏观、全面的问题比如这个公司有哪些合作伙伴。而传统RAG擅长处理细节问题比如某个产品的具体参数是什么。所以我搭建了一个多代理系统用supervisor来判断用户问题的类型然后路由到不同的知识库graph_kg基于知识图的代理处理全局性问题vec_kg基于向量的代理处理细节问题向量数据库我选择了云端的Milvus这样避免了本地部署的麻烦。两个代理各司其职大模型在它们之间充当主管协调分工。实际测试效果还不错。问数据库里有哪些公司时graph_kg会遍历整个知识图给出完整列表。问某个公司推出了哪些创新技术时它会基于实体之间的关系进行推理。九、总结从传统RAG到GraphRAG这不仅是技术的升级更是思维方式的转变。我们不再只是被动地检索信息片段而是主动构建知识的结构。大模型也不再只是做语言匹配而是真正在理解和推理。虽然GraphRAG还不是完美的毕竟也依赖于大模型的抽取质量但方向是清楚的——让AI系统更像人类思考一样理解信息之间的关系看到知识的全貌。如果你的业务涉及复杂的知识库问答值得尝试一下。而且现在有免费的云服务可以用技术上的壁垒已经不那么高了。把上面的代码复制下来替换成你自己的API密钥和数据库URI就可以跑起来了。想入门 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 大模型的风口别犹豫这份免费资料就是你的 “起跑线”
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

百度商桥要怎么添加到网站做网站应该注意哪些方面

文章提供了七阶段大模型学习路线图:从数学和编程基础开始,经历机器学习、深度学习、自然语言处理等阶段,到大规模语言模型及其应用,最后是持续学习与进阶。每个阶段都推荐了相关书籍、论文和在线课程作为学习资源,并附…

张小明 2025/12/23 6:03:07 网站建设

网站后台更新为什么前台不现实wordpress sae 插件

最近真的越来越多人开始用低代码平台了,不管是做内部管理系统、数据看板、业务流程,还是快速搭个原型,都比传统开发省事太多。这篇我直接分享 5 款免费低代码平台,欢迎大家点赞收藏👇斑斑低代码斑斑低代码是这几款里自…

张小明 2025/12/23 6:02:04 网站建设

swf做网站头深圳建企业网站公司

Wan2.2-T2V-A14B如何实现物体材质的真实感渲染? 在影视级视觉内容日益依赖AI生成的今天,一个关键问题正被反复提出:为什么大多数文本生成的视频看起来总像是“塑料玩具”? 无论是金属反光生硬、布料纹理模糊,还是液体缺…

张小明 2025/12/23 6:01:00 网站建设

做网站frontpage 2003免费图片编辑网站

💻 NVIDIA GPU 发展历程里程碑(1999 年至今)GPU型号 (Model Name)发布时间 (Launch Year)架构名称 (Architecture)流处理器数量 (CUDA Cores)FP32 峰值算力 (TFLOPS)目标市场 (Target Segment)首发价格 (MSRP)关键创新/意义GeForce 2561999NV…

张小明 2025/12/23 5:58:54 网站建设

网站之间的差异wordpress插件排行

YOLOv11分割标注转换终极指南:一键搞定掩码与多边形互转 【免费下载链接】ultralytics ultralytics - 提供 YOLOv8 模型,用于目标检测、图像分割、姿态估计和图像分类,适合机器学习和计算机视觉领域的开发者。 项目地址: https://gitcode.c…

张小明 2025/12/23 5:57:50 网站建设

水果网站首页设计专业建设 教学成果奖网站

C# 基于halcon的视觉工作流-章68 深度学习-对象检测 本章目标: 一、模型训练; 二、模型推理;本章与章67基本相同,不再进行重复描述。不同之处在于需用算子get_dl_model_param设置模型参数,如图片尺寸、批次大小、匹配率…

张小明 2025/12/23 5:56:47 网站建设