本地大模型编程实战(31)用Map-Reduce从大文本中提取摘要

在执行从文本中提取摘要的任务时,难免遇到大文本的情况:文本的长度超出了 LLM(大语言模型) 的token限制。 LangGraph 提供了 map-reduce 工作流,它先把大文本拆成小文档分别提取摘要,然后再提炼/压缩提取的摘要,直到最后提取的摘要的token长度满足既定要求。 本次演练使用 qwen2.5:7b 开源大模型。 ...

四月 26, 2025 · 3 分钟 · 火云

本地大模型编程实战(29)用大语言模型LLM查询图数据库NEO4J(2)

上一篇文章 用大语言模型LLM查询图数据库NEO4J(1) 介绍了使用GraphQACypherChain查询NEO4J。用它实现简单快捷,但是不容易定制,在生产环境中可能会面临挑战。 本文将基于langgraph 框架,用LLM(大语言模型)查询图数据库NEO4J。它可以定义清晰复杂的工作流,能应对比较复杂的应用场景。 以下是即将实现的可视化LangGraph流程: ...

四月 24, 2025 · 5 分钟 · 火云

本地大模型编程实战(21)支持多参数检索的RAG(Retrieval Augmented Generation,检索增强生成)(5)

在实现 RAG(Retrieval Augmented Generation,检索增强生成) 系统的时候,在检索(retrieve)知识库时通常一个参数。 本文将演练更复杂一点的情况:通过两个参数进行知识库的检索。为此会在 langgraph链 中增加一个 analyze_query 节点,它用来基于用户问题推理检索的参数。 本次构建的 LangGraph 链结构如下图: 使用 qwen2.5 、 deepseek 以及 llama3.1 做实验,用 shaw/dmeta-embedding-zh 做中文嵌入和检索。 ...

二月 18, 2025 · 3 分钟 · 火云

本地大模型编程实战(20)用langgraph和智能体实现RAG(Retrieval Augmented Generation,检索增强生成)(4)

上一篇文章我们演练了一个 用 langgraph 实现的 RAG(Retrieval Augmented Generation,检索增强生成) 系统。本文将要在此基础上,增加自动记录聊天历史的功能,另外,我们还将使用一个 Agent(智能体) 来实现几乎同样的功能,我们来一起体会一下用 langgraph 和 Agent(智能体) 实现 RAG系统 的区别。 本次构建的 LangGraph 链结构如下图: 如上图,query_or_respond 是一个条件节点,它通过能否根据用户的问题生成 工具调用(tool_calls) ,来判断是否需要检索矢量知识库:如果 工具调用 为空,则直接由大语言模型处理;否则通过 工具调用 调用 tools 进行检索。 实现类似功能的智能体结构如下图: 我们可以直观的发现:用 Agent(智能体) 实现更加简单。 使用 qwen2.5 、 deepseek 以及 llama3.1 做实验,用 shaw/dmeta-embedding-zh 做中文嵌入和检索。 ...

二月 17, 2025 · 4 分钟 · 火云

本地大模型编程实战(19)用langgraph实现RAG(Retrieval Augmented Generation,检索增强生成)(3)

上一篇文章我们演练了一个 用 langgraph 实现的 RAG(Retrieval Augmented Generation,检索增强生成) 系统。本文将要创建的系统将更加智能:如果在知识库中未找到靠谱的文档,则用 LLM(大语言模型) 自身的能力弥补。 另外,检索和生成部分增加了更多的细节控制。本次构建的 LangGraph 链如下图: 如上图,query_or_respond 是一个条件节点,它通过能否根据用户的问题生成 工具调用(tool_calls) ,来判断是否需要检索矢量知识库:如果 工具调用 为空,则直接由大语言模型处理;否则通过 工具调用 调用 tools 进行检索。 使用 qwen2.5 、 deepseek 以及 llama3.1 做实验,用 shaw/dmeta-embedding-zh 做中文嵌入和检索。 ...

二月 16, 2025 · 4 分钟 · 火云