- 博客(32)
- 收藏
- 关注
原创 知伴:一个个性化AI学习陪伴平台的技术实践
如果AI在5轮对话内没让学生理解知识点,触发“找老师”:教师收到通知,学生进等待队列,教师查看对话并接管回复。LangGraph的状态持久化机制在这里处理会话恢复:每个步骤结束后,系统自动把当前图状态(变量、历史消息、下个待执行节点等)存成一个检查点,用thread_id区分会话,后续可以恢复。
2026-08-20 09:49:27
256
原创 第四篇:LangGraph边与完整架构总结 — 条件分支、循环控制与生产实践
图即工作流:用节点和边精确描述复杂业务逻辑状态即记忆:内置状态管理贯穿整个执行周期检查点即保障:持久化、恢复、回溯一应俱全流式即体验:实时输出提升用户交互感受人工即安全:关键节点可暂停、可审核LangGraph不是要替代LangChain,而是为需要精细控制执行流程的场景提供了一个强大的解决方案。两者可以共存——用LangChain的组件(LLM、Tools、Retriever),用LangGraph编排它们的执行。
2026-07-30 09:48:07
224
原创 第三篇:LangGraph节点全面解析 — 从参数注入到流式输出的实战指南
每个节点都是一个Python函数,接收状态(可能还有其他参数),执行特定逻辑,返回增量更新。- 使用 operator.add → ["value_A", "value_B"]当两个并行节点都返回完整状态时,LangGraph不知道如何合并冲突的字段。,学习条件分支、循环控制,并总结LangGraph的整体架构与最佳实践。:恢复时节点函数从头执行,不要在执行节点中放副作用操作。节点A返回 {"field": "value_A"}节点B返回 {"field": "value_B"}
2026-07-30 09:47:53
355
原创 第二篇:LangGraph状态管理深度剖析 — 从定义到持久化的完整指南
LangGraph提供了三种状态定义方式,各有适用场景。"""为每条消息添加时间戳前缀"""
2026-07-29 09:09:07
290
原创 第一篇:LangGraph 深度解析 — 概念、与LangChain的对比及快速入门实战
LangGraph是一个低级编排框架和运行时环境,专门用于构建、管理和部署长期运行的、有状态的智能体应用。将智能体的工作流建模为图(Graph)。与传统程序设计的"顺序执行"不同,LangGraph让你的应用像一个流程图 + 状态机那样运转——节点是处理单元,边定义流转路径,状态贯穿全局。
2026-07-29 09:08:46
169
原创 下篇:从检索到交互 — 物流RAG问答系统与WebUI全实现
下篇我们完成了:向量检索与上下文构建的工程实现Prompt模板设计思路ConversationalRetrievalChain的多轮对话能力Streamlit WebUI的全流程交互设计完全本地化部署(BGE-M3 + Qwen + FAISS)多轮对话支持开箱即用的WebUI这套代码结构同样适用于金融、医疗、法律、教育等领域的私有知识问答场景,只需替换PDF文档和调整分块参数即可快速迁移。两篇博客均提供了完整的技术剖析与工程实践参考,希望对你的RAG学习之旅有所帮助!
2026-07-27 09:11:06
178
原创 上篇:从PDF到向量库 — 物流行业RAG系统的知识库构建全解析
│ BGE-M3 Embedding│ → 768维向量(bge-m3默认1024维,可配置):用户问题 → 向量化 → FAISS相似度搜索(Top-K)→ 拼接上下文 → LLM生成。PDF加载 → 文本分块策略 → Embedding模型选型 → FAISS向量存储。:PDF文档 → 分块 → Embedding → 存入FAISS向量库。:相比Chroma,FAISS更轻量,不依赖外部服务,适合单机部署。:如果PDF包含扫描图片(无文本层),需配合OCR方案(如。速度更快,且能保留更多格式信息。
2026-07-27 09:10:49
349
原创 下篇:从环境部署到 WebUI 交付 — 工程化落地的全部细节
工具是 LangGraph 与外部能力交互的桥梁。检索工具计算工具(自定义函数):python@tool"""计算乘积"""工具路由配置是动态生成的:如果工具名包含"retrieve",则路由到,否则路由到generate。这种命名约定大大降低了硬编码维护成本。下篇我们补全了工程化落地的全部模块:环境隔离与依赖锁定PostgreSQL + pgvector 的 Docker 部署与客户端兼容性问题多模型切换的配置化设计工具定义与命名路由约定连接池、重试、日志等生产级保障。
2026-07-25 14:54:51
330
原创 上篇:从状态图到持久化 — LangGraph 智能分诊系统的架构与核心链路
有些问题可以直接回答,有些需要检索知识库,有些则需调用外部工具(如计算、查询档案)。Agent 是系统的“大脑”,它接收用户问题,结合历史消息和跨线程记忆,决定下一步动作。扩展,文档中详细描述了 Docker 内编译安装的步骤,这里不多赘述,但这是部署时的关键前置条件。——如果检索结果不相关,系统会自动改写查询并重新尝试,而非直接给出错误答案。支持向量检索,实现“记忆搜索”功能(如用户说“记住我的名字”时触发存储)。接下来,我们从状态图开始,拆解整个系统的骨架。实现线程内的对话检查点保存,支持会话恢复。
2026-07-25 14:51:38
229
原创 让Agent“记住”与“可控”:记忆管理与中间件实战指南
记忆管理(Checkpointer + Thread ID)让Agent拥有了连贯的对话能力,它通过持久化状态,解决了无状态Agent的“失忆”问题,是实现流畅用户体验的基础。中间件(Middleware)则为Agent提供了强大的治理能力,通过和等内置中间件,我们可以灵活地控制成本、保障安全并增强系统的健壮性。掌握这两项技能,意味着你不仅能让Agent“动起来”,更能让它在你设定的轨道上“安全、高效地跑起来”。
2026-07-10 19:31:07
334
原创 给Agent装上“万能接口”:MCP工具接入完全指南
协议本身是传输无关的,开发者可以根据需要实现自己的传输机制(如WebSocket、gRPC等)。选择建议:本地开发和调试推荐stdio;生产环境推荐HTTP+SSE。如果需要更复杂的逻辑,可以编写原生MCP Server。以下是一个简化的自定义Server示例,使用fast-mcp库:python"""查询城市天气"""# 调用真实天气API"""计算数学表达式"""启动MCP Server:bashServer启动后,会暴露/registry(工具发现)和/execute。
2026-07-10 19:20:04
589
原创 给Agent装上“手脚”:LangChain Tools 定义与使用完全指南
LangChain提供了多种方式来定义工具,以适应从简单到复杂的各种需求。当你的工具需要接收复杂或结构化的输入时(比如多个字段,或者有校验规则),可以借助Pydantic来定义输入模型,这能让LLM更准确地理解和生成参数。# Pydantic定义复杂参数"""天气查询参数"""city: str = Field(description="城市名称,如'北京'、'上海'")date: str = Field(description="查询日期,格式为YYYY-MM-DD")# 内部工具。
2026-07-09 17:15:10
203
原创 从“对话”到“行动”:AI Agent 究竟是何方神圣?
如果说2023年是AI大模型的“元年”,2024年是AI应用的“落地之年”,那么2026年,我们正站在一个被称为的浪潮之巅。它不再是简单的聊天框里的一问一答,而是被赋予了“行动力”的智能实体。
2026-07-09 16:46:07
352
原创 深入浅出 RAG(二):查询与生成阶段——从“找到”到“答对”的全链路优化
在本文中,我们深入剖析了 RAG 第二阶段——查询与生成阶段的全链路优化:查询理解与优化:通过改写、扩展、HyDE 等方式,让检索“问对问题”。检索策略:混合检索(向量 + BM25)结合多路召回,最大化召回率。重排序:利用 Cross-Encoder 对候选集精筛,提升 Top-N 的相关性。Prompt 构造:精心设计提示词模板,嵌入引用、角色、条件指令。生成与输出:参数调优、流式输出、置信度评估。进阶进化:Self-RAG、自适应检索、迭代检索等前沿方向。
2026-07-07 17:05:40
316
原创 律智云技术实践:一个法律服务平台的全栈架构设计与实现
律智云(LawCloud)项目是一个功能完整、架构清晰的法律科技平台。通过整合 AI 技术、现代 Web 开发框架和分布式系统设计,实现了法律文书自动生成、案件智能管理、在线法律咨询等核心功能。项目价值为普通用户提供便捷的法律信息查询和文书生成服务为律师提供高效的案件管理工具和智能辅助功能探索 AI 在法律领域的应用,提升法律服务效率技术价值实践了现代全栈开发技术栈(Vue 3 + FastAPI)实现了完整的权限管理和安全体系探索了 AI 工作流集成模式。
2026-07-07 00:47:18
175
原创 Milvus向量数据库详细执行流程
Milvus是一款开源的云原生向量数据库,专为海量向量数据集的高性能相似性搜索而设计。它诞生于2019年,目前是LF AI & Data Foundation旗下的顶级开源项目,采用Apache 2.0许可协议。简单来说,Milvus解决的是“模糊查找”问题:在亿级高维向量中,快速找到与目标向量最相似的那些结果。它是AI时代的关键基础设施,服务于推荐系统、图像搜索、RAG(检索增强生成)等场景。Milvus构建在Faiss、HNSW、DiskANN等流行向量搜索库之上,并进行了深度优化。
2026-07-06 18:06:19
434
原创 深入浅出 RAG:揭秘大模型“开卷考试”背后的技术
RAG 全称 Retrieval-Augmented Generation,直译为“检索增强生成”。它由 Meta 公司在 2020 年的论文 Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks 中首次提出。简单来说,RAG 是一种将信息检索系统与大语言模型相结合的技术框架。基本思想为:将传统的生成式大模型和实时信息检索技术相结合,为大模型补充来自外部的相关数据和上下文,来帮助大模型生成更加准确可靠的内容。
2026-07-06 10:49:45
408
1
原创 关于缓存穿透的详细讲解
正常情况是:查询数据,先看看缓存有没有,有就直接返回结果。没有就是去访问数据库,数据库查到就把结果放一份在缓存里,下次再查就非常速度了。缓存穿透就是查询一个不存在的值,查询id小于0的参数(正常数据库的主键值都是从0开始增长的,没有负数)。当查询数据的时候,首先是前往缓存redis中查询,如果redis不存在这个数据,就前往数据库中查询。因为这个数据压根就不存在,所以数据库返回空。redis无法拦截这种不存在的数据,就会穿透redis缓存直接打到数据库。相当于缓存完全失效了。
2026-06-16 15:34:14
258
1
原创 组件通信完全指南:父传子与子传父(React + Vue + TypeScript)
通信分向核心机制react实现vue3实现父传子Props子传父回调函数 / 自定义事件onXxx={handler} + 调用emit(‘xxx’, data) + 监听TypeScript 的关键作用父传子:用 interface ChildProps 确保父组件传递的数据类型正确,子组件内部使用 props 时也有智能提示。子传父:用函数类型 (data: Type) => void 或 defineEmits<{…}> 约束回调参数的类型,防止传错数据结构。
2026-06-09 08:37:53
274
原创 TypeScript 进阶指南:抽象类、接口、属性修饰符与泛型
从“AnyScript”到工业级代码,这一篇就够了如果你已经会用 string、number、boolean 等基础类型,恭喜你——你不再是 TypeScript 新手。但当项目规模膨胀到几十万行,你会发现仅仅靠基础类型远远不够。我们需要更强大的抽象能力、更严格的访问控制、可复用的“类型逻辑”。读完本文,你将写出既灵活又安全的 TypeScript 代码,并且能直接在组件开发中落地。
2026-06-08 16:29:20
386
原创 TypeScript的基础知识之入门
TypeScript 并没有改变 JavaScript 的运行规则,而是在编码阶段提供了一套强大的类型系统。通过本文,你已经掌握了:概念:TypeScript 是 JS 的超集,带来静态类型。类型声明:使用 : type 为变量、函数等标注类型。类型推断:TS 会自动推断常见情况,减少冗余代码。类型总览:包括基本类型、数组、元组、对象、any、unknown、void、never 等。常用类型实践:字符串、数字、布尔、数组、联合类型、类型别名、函数类型等。
2026-06-08 03:38:09
209
原创 项目1:情绪互助平台:用技术搭建一个温暖的倾诉社区
在快节奏的现代生活中,情绪困扰常常被人们压抑在心。一个安全、匿名、有回应的倾诉空间,能成为许多人情绪的出口。本文介绍我开发的一个开源项目——情绪互助平台,一个结合了 AI 辅助审核、管理员管控、实时消息通知和温暖 UI 的社区系统。项目包含完整的前端界面(原生 HTML/CSS/JS)和后端 API(FastAPI + SQLite),代码清晰易懂,适合学习全栈开发、社区产品设计和 AI 集成实践。情绪互助平台允许用户匿名发布自己的情绪需求,其他用户可以回应、评论,而 AI 会自动为每个通过审核的帖子生成一
2026-06-06 15:04:20
254
原创 Redis五种核心数据类型详解
Redis 是当今互联网后端系统中不可或缺的中间件,凭借其高性能、丰富的数据结构、持久化机制和高可用架构,被广泛应用于缓存、分布式锁、排行榜、消息队列等场景。本篇文章将带你深入了解 Redis 五种核心数据类型:✅ String✅ Hash✅ List✅ Set。
2026-06-01 09:43:32
223
原创 一条更新SQL语句是如何执行的?(这篇文章直接带你从里到外都明明白白)
看完这篇博客是否懂了MySQL更新语句是怎么执行的吗?简单来说就是MySQL 更新语句的核心是:先更新内存,同时记录 redo log(prepare),再写 bin log,最后将 redo log 改为 commit。这种方式称为“两阶段提交”,保证了 crash-safe 能力,同时支持主从复制和基于时间点的恢复。
2026-05-21 21:53:15
363
原创 基于Linux的CentOS 7下载MySQL 8的完整流程(包教会!)
关于Linux的CentOS 7安装 MySQL 8,包含以下步骤:安装工作:卸载,下载,检查,解压配置工作:基本设置,创建用户组和用户,数据目录初始化MySQL:配置文件,初始化启动服务,登录,修改密码,创建远程连接用户,退出和关闭。
2026-05-19 23:44:58
357
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅