本地大模型编程实战(33)用SSE实现大模型的流式输出

SSE(Server-Sent Events)是一种基于 HTTP 协议的服务器向客户端单向推送数据的技术,允许服务器主动向已建立连接的客户端持续发送事件流(如实时通知、更新数据等),无需客户端频繁轮询。 核心特点:基于 HTTP 长连接,单向通信(仅服务器→客户端),数据以 “事件” 格式传输(包含事件类型、数据体等结构化信息),天然支持断线重连。 典型场景:大语言模型(LLM)客户端、股票行情实时更新、新闻推送、系统通知等只需服务器主动下发数据的场景。 它与websocket的主要区别是: 若场景仅需 “服务器推数据给客户端”(单向),优先选 SSE(实现简单、基于 HTTP 无额外协议成本) 若需 “客户端与服务器实时双向通信”(如聊天、互动),必须选 WebSocket(全双工能力是核心优势) 下面我们使用大语言模型qwen3实现翻译功能。它可以自动识别源语言,并翻译为目标语种。 像千问这种大模型是基于多语言训练的,所以它支持中文、英文、法文、西班牙等多个语种的翻译。 这是实现的效果: ...

九月 1, 2025 · 2 分钟 · 火云

本地大模型编程实战(32)用websocket显示大模型的流式输出

在与 LLM(大语言模型) 对话时,如果每次都等 LLM 处理完毕再返回给客户端,会显得比较卡顿,不友好。如何能够像主流的AI平台那样:可以一点一点吐出字符呢? 本文将模仿后端流式输出文字,前端一块一块的显示文字。主要的实现路径是: LLM 采用 qwen3 ,使用 stream 方式输出 后端使用 langchain 框架 使用 fastapi 实现后端接口 前后端之间使用 websocket 长连接通信 前端使用一个简单的 html5 网页做演示 下面是最终实现的效果: ...

四月 27, 2025 · 2 分钟 · 火云

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

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

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

本地大模型编程实战(30)从文本提取摘要

本文将演练如何使用 LLM(大语言模型) 提取文本摘要。 本次演练使用 qwen2.5:7b 开源大模型。 ...

四月 25, 2025 · 1 分钟 · 火云

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

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

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

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

本文将基于langchain 框架,用LLM(大语言模型)查询图数据库NEO4J。 使用 qwen2.5 做实验,用 llama3.1 查不出内容。 ...

四月 23, 2025 · 2 分钟 · 火云

本地大模型编程实战(27)初探langgraph的流式输出

对于 LLM(大语言模型),流式传输已成为一种越来越受欢迎的功能。其理念是在 LLM 生成令牌时就快速返回,而不是等待创建完整响应后再返回全部内容。 在简单的场景中,流式传输实际上非常容易实现,但当涉及到智能体之类的应用时,它会变得复杂,这些智能体有自己的运行逻辑,可能会阻止我们尝试进行流式传输。 本文将探讨 langchain 的流式输出,后面将实现智能体最终结果的流式输出。 本次演练将全部使用 qwen2.5:7b 开源大模型。 ...

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

本地大模型编程实战(26)用langgraph实现基于SQL数据构建的问答系统(5)

本文将扩展上一篇文章完成的 langgraph 链,继续使用基于 langgraph 链 ,对结构化数据库 SQlite 进行查询的方法。该系统建立以后,我们不需要掌握专业的 SQL 技能,可以用自然语言询问有关数据库中数据的问题并返回答案。主要完善一下两点内容: 自动记录消息历史 增加人工审核环节,防止 LLM(大语言模型) 运行危险的SQL语句 我们先看看完成的 langgraph 链的模样,主要有两步:创建SQL查询语句->执行SQL查询语句,在执行SQL查询前中断进行人工审核,上一篇文章的 链 没有人工审核: 本次实现的链 上一篇文章实现的链 使用 qwen2.5 、 llama3.1 做实验。 请注意: 构建 SQL 数据库的问答系统需要执行模型生成的 SQL 查询。这样做存在风险,请确保您的数据库连接权限始终尽可能小,这将减轻(但不能消除)构建模型驱动系统的风险。 ...

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

本地大模型编程实战(25)用langgraph实现基于SQL数据构建的问答系统(4)

本文将演练使用基于 langgraph 链 ,对结构化数据库 SQlite 进行查询的方法。该系统建立以后,我们不需要掌握专业的 SQL 技能,可以用自然语言询问有关数据库中数据的问题并返回答案。 使 大语言模型(LLM) 查询结构化数据与非结构化文本数据有所不同。查询非结构化数据时,通常需要将待查询的文本嵌入到向量数据库中;而查询结构化数据的方法则是让 LLM 编写和执行 DSL(例如 SQL)进行查询。 在 用langchain实现基于SQL数据构建问答系统(1) 中,我们已经用 langchain 的 create_sql_query_chain 实现了类似功能,在本文结束后,我们将能看到它们之间的区别。 我们先看看完成的 langgraph 链的模样,情况一目了然,主要有两步:创建SQL查询语句->执行SQL查询语句: 使用 qwen2.5 、 deepseek 以及 llama3.1 做实验。 请注意: 构建 SQL 数据库的问答系统需要执行模型生成的 SQL 查询。这样做存在风险,请确保您的数据库连接权限始终尽可能小,这将减轻(但不能消除)构建模型驱动系统的风险。 ...

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

本地大模型编程实战(24)用智能体(Agent)实现智能纠错的SQL数据库问答系统(3)

本文将实现这样一个 智能体(Agent) : 可以使用自然语言对 SQLite 数据库进行查询。即:用户用自然语言提出问题,智能体也用自然语言根据数据库的查询结果回答问题。 增加一个自动对查询中的专有名词进行纠错的工具,这将明显提升查询的准确性。 本次将使用 qwen2.5 、 llama3.1 做实验。 ...

二月 24, 2025 · 6 分钟 · 火云