当前位置: 首页 > article >正文

langchain初步认识

​LangChain提供了一系列方便的工具、组件和接口大大降低了 AI 应用开发的门槛也极大简化了大模型应用程序的开发过程。为什么需要 LangchainLangChain 尝试解决的问题​prompt的结构如何标准化如果我想中途随时切换大模型怎样简单方便地操作LLM的输出是非结构化的它如何与结构化的程序接口相互交互预训练模型的知识落后如何让它知道最新的信息如何让这颗大脑拥有记忆如何给这颗“聪明脑”装上“五官”让它能够感知环境输入怎样给这颗“聪明脑”装上“手”和“脚”让它帮我执行具体的任务LangChain框架背后的核心思想是将自然语言处理序列分解为各个部分允许开发人员根据自己的需求高效地定制工作流程。​Langchain的核心模块Langchain有6大核心模块Models模型是各种类型的模型和模型集成。Prompts提示包括提示管理、提示优化和提示序列化。Memory记忆用来保存和模型交互时的上下文状态。Indexes索引用来结构化文档以便和模型交互。包括文档加载程序、向量存储器、文本分割器和检索器等。Agents代理决定模型采取哪些行动执行并且观察流程直到完成为止。Chains链一系列对各种组件的调用。以下是我的学习记录1.invoke() 这个接口response llm.invoke(你好) # ≈ response llm(你好)逻辑上就是”传入输入拿到输出”。但实际开发中必须显式调用.invoke()原因我踩过坑才知道有次我想切换到异步模式结果发现自家写的纯函数没法直接换得全部重写。 LangChain 生态内万物皆 Runnable调用必 invoke这样后续切都无缝。.ainvoke().stream()注框架的规范一开始看着绕后期都是护城河。2.Chain 的管道符 |顺序不能调换chain prompt | llm | parser这个顺序我一开始没在意调换过报错了。为什么不能换LCEL 是图执行模式左边输出作为右边输入。prompt 输出的是 PromptValuellm 吃这个llm 输出的是 AIMessageparser 吃这个。换了就格式不匹配。我当时的理解方式chain prompt | llm | parser ≈ result parser(llm(prompt(input)))这样想就清爽了。但写代码时必须保留管道符它是 LangChain 的标准协议。3.Memory 这个坑需要注意基础篇的 Chain 是线性的prompt 写问题 → llm 回答 → parser 确定格式。但 Memory 不一样它是独立的状态要持续记录上下文。我一开始想把 Memory 也塞进 Chain 里用管道符连起来。结果发现不行Memory 得用单独包裹。RunnableWithMessageHistory核心代码就这几行prompt ChatPromptTemplate.from_messages([ (system, 你非常可爱说话末尾会带个喵), MessagesPlaceholder(variable_namehistory), # 这行是关键 (human, {input}) ]) runnable_with_memory RunnableWithMessageHistory( runnablechain, get_session_historyget_session_history, input_messages_keyinput, history_messages_keyhistory )注占位符名字要统一最好复制粘贴别手敲。6.缓存这个功能开发时必开生产必关调试 Agent 的时候每次 invoke 都在烧钱。效果相同输入命中缓存不花钱几乎不耗时。但注意生产环境必须关掉。缓存只是结果复用没有任何智能放线上就是埋雷。7.流式输出配置就两行llm ChatOpenAI( modeldeepseek-chat, streamingTrue, # 允许流式 callbacks[StreamingStdOutCallbackHandler()] # 回调处理器 )但有个坑开启流式后print(response)会重复输出。因为 callbacks 已经自动打印每个 token 了再 print 就是双份。我当时的解决方式print(AI: , end, flushTrue) # 只打印这个前缀 response agent_with_memory.invoke(...) # callbacks 会自动打印内容 print() # 换行flushTrue 保证”AI:“立即输出不等着缓存区满。总结后续继续分享学习中踩坑分享自己学习记录

相关文章:

langchain初步认识

​LangChain提供了一系列方便的工具、组件和接口,大大降低了 AI 应用开发的门槛,也极大简化了大模型应用程序的开发过程。为什么需要 LangchainLangChain 尝试解决的问题:​prompt的结构如何标准化如果我想中途随时切换大模型,怎样…...

5分钟上手Krita智能选区插件:AI一键抠图,释放创作潜能 [特殊字符]

5分钟上手Krita智能选区插件:AI一键抠图,释放创作潜能 🎨 【免费下载链接】krita-vision-tools Krita plugin which adds selection tools to mask objects with a single click, or by drawing a bounding box. 项目地址: https://gitcode…...

英语常见插入语/固定短语总结

一、表示“据我所知/依我所见”(信息来源) 短语中文意思例句1. as far as I know据我所知As far as I know, she still works there.2. as far as I can see依我看/据我所见As far as I can see, theres no problem.3. as far as Im concerned就我而言/…...

3步颠覆《流放之路》角色构建:从数据混乱到精准规划的实战革命

3步颠覆《流放之路》角色构建:从数据混乱到精准规划的实战革命 【免费下载链接】PoeCharm Path of Building Chinese version 项目地址: https://gitcode.com/gh_mirrors/po/PoeCharm 当你在《流放之路》中第5次洗练装备属性却仍未达到预期效果,当…...

为什么你的AI Agent像个傻子?因为你没给它装“Skill”

今年刚开年,AI Agent的热度又上来了。Cursor 让不少人觉得编程要变天,Claude Code 被捧成“最强打工人”,OpenClaw 这类开源项目更是让动手能力强的人直接开始折腾自动化。但身边真正用起来的人,最近普遍开始烦躁。让 Agent 跑个测…...

开源模拟器Ryujinx配置指南:解决卡顿问题与性能优化全攻略

开源模拟器Ryujinx配置指南:解决卡顿问题与性能优化全攻略 【免费下载链接】Ryujinx 用 C# 编写的实验性 Nintendo Switch 模拟器 项目地址: https://gitcode.com/GitHub_Trending/ry/Ryujinx Ryujinx作为一款采用C#语言开发的开源Nintendo Switch模拟器&…...

打破虚拟世界语言壁垒:VRCT实现VRChat跨语言交流的技术方案与实践指南

打破虚拟世界语言壁垒:VRCT实现VRChat跨语言交流的技术方案与实践指南 【免费下载链接】VRCT VRCT(VRChat Chatbox Translator & Transcription) 项目地址: https://gitcode.com/gh_mirrors/vr/VRCT 在全球化的虚拟社交平台VRChat中,语言差异…...

从48小时到15分钟:智能黑苹果配置工具的革命性突破

从48小时到15分钟:智能黑苹果配置工具的革命性突破 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 黑苹果配置长期以来被视为一项高门槛技…...

华为OD机考双机位C卷 - 游戏分组 (Java)

游戏分组 2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷 华为OD机试双机位C卷真题目录(Java)点击查看: 【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(Java题解) 题目描述 有n(n为2到24之间的偶数,包含2和24)位玩家参与一款在线对战游戏,游…...

10分钟搞定Linux打印机驱动:foo2zjs终极配置指南

10分钟搞定Linux打印机驱动:foo2zjs终极配置指南 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs 你是否曾经为Linux系统下找不到合适的打印…...

G-Helper:你的华硕笔记本性能调校终极方案

G-Helper:你的华硕笔记本性能调校终极方案 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, and oth…...

3个高效步骤打造智能研究助手:基于Gemini与LangGraph的全栈AI应用开发指南

3个高效步骤打造智能研究助手:基于Gemini与LangGraph的全栈AI应用开发指南 【免费下载链接】gemini-fullstack-langgraph-quickstart Get started with building Fullstack Agents using Gemini 2.5 and LangGraph 项目地址: https://gitcode.com/gh_mirrors/ge/g…...

掌握二叉搜索树:高效查找与有序遍历

一、先解答上次的思考题对这棵树:10/ \20 30\40层序遍历:10 20 30 40树的高度:3二、今天学习目标什么是 二叉搜索树 BSTBST 三个核心规则实现:查找、插入、中序遍历完整可运行代码三、什么是二叉搜索树 BST?Binary…...

CPU占用率过高排查步骤

CPU占用率过高排查指南:快速定位系统瓶颈 当电脑突然变卡、风扇狂转,很可能是CPU占用率过高导致的。这种情况不仅影响工作效率,还可能隐藏着病毒、软件冲突或硬件问题。本文将介绍一套系统化的排查步骤,帮助你快速定位问题根源。…...

【Vscode】Windows 7下Remote-SSH插件报错排查与SSH手动安装指南

1. Windows 7下Remote-SSH插件报错问题解析 最近有不少Windows 7用户反馈,在使用Vscode的Remote-SSH插件时遇到了"An SSH installation couldnt be found"的报错。这个问题的根源其实很简单:Windows 7系统默认没有预装SSH客户端。作为一个长期…...

BiliTools终极指南:2026年跨平台B站资源下载解决方案

BiliTools终极指南:2026年跨平台B站资源下载解决方案 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 你…...

无网环境方案:OpenClaw离线调用SecGPT-14B的实践

无网环境方案:OpenClaw离线调用SecGPT-14B的实践 1. 为什么需要离线AI助手 在网络安全和涉密机构的工作场景中,数据安全永远是第一位的。我最近参与了一个特殊项目,需要在完全断网的环境下部署AI助手,用于自动化安全巡检和日志分…...

自动化内容审核:OpenClaw+Qwen3-4B-Thinking搭建个人防火墙

自动化内容审核:OpenClawQwen3-4B-Thinking搭建个人防火墙 1. 为什么需要个人内容防火墙 作为一个长期活跃在社交媒体平台的内容创作者,我最近遇到了一个棘手的问题。某天深夜发布的一条科普视频,因为背景音乐中出现了某段敏感旋律&#xf…...

CustomTkinter:如何用Python轻松打造现代化桌面应用界面

CustomTkinter:如何用Python轻松打造现代化桌面应用界面 【免费下载链接】CustomTkinter A modern and customizable python UI-library based on Tkinter 项目地址: https://gitcode.com/gh_mirrors/cu/CustomTkinter 厌倦了传统Tkinter老旧的界面风格&…...

如何快速掌握MuseTalk:实时高质量AI唇同步的完整实践指南

如何快速掌握MuseTalk:实时高质量AI唇同步的完整实践指南 【免费下载链接】MuseTalk MuseTalk: Real-Time High Quality Lip Synchorization with Latent Space Inpainting 项目地址: https://gitcode.com/gh_mirrors/mu/MuseTalk MuseTalk是一款由腾讯音乐娱…...

BEYOND REALITY Z-Image保姆级教程:5分钟部署,零基础生成高清人像

BEYOND REALITY Z-Image保姆级教程:5分钟部署,零基础生成高清人像 1. 前言:为什么选择BEYOND REALITY Z-Image? 如果你正在寻找一款能够生成专业级写真人像的AI工具,BEYOND REALITY Z-Image可能是目前最值得尝试的选…...

YOLOv8与Cosmos-Reason1-7B的联合应用:智能视觉推理系统

YOLOv8与Cosmos-Reason1-7B的联合应用:智能视觉推理系统 1. 场景引入:当视觉检测遇上语义理解 你有没有遇到过这样的情况:监控摄像头检测到了一个人,但不知道他在干什么;或者自动驾驶系统识别出了车辆,却…...

轻量级跨平台C++ GUI框架EUI在Ubuntu24上初试

EUI详见以下页面: https://github.com/sudoevolve/EUI 1 在Ubuntu24.04上部署需要做的准备工作 1.1 从Github拉源码 git clone https://github.com/sudoevolve/EUI.git1.2 为EUI准备所需的库 以为我的Ubuntu24.04装的是毛坯系统,一开始用cmake构建的…...

3天打造个性化音乐服务:KuGouMusicApi全场景开发指南

3天打造个性化音乐服务:KuGouMusicApi全场景开发指南 【免费下载链接】KuGouMusicApi 酷狗音乐 Node.js API service 项目地址: https://gitcode.com/gh_mirrors/ku/KuGouMusicApi KuGouMusicApi是一套基于Node.js构建的酷狗音乐API服务(应用程序…...

Cursor Free VIP技术解析:突破AI编程助手限制的深度指南

Cursor Free VIP技术解析:突破AI编程助手限制的深度指南 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached your t…...

4步实现FanControl中文配置:让风扇调节效率提升60%

4步实现FanControl中文配置:让风扇调节效率提升60% 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fa…...

智能车浅谈——抗干扰技术硬件篇

文章目录前言干扰什么是干扰干扰窜入的主要途径干扰的分类硬件抗干扰技术控制系统的电源保护技术输入/输出传输线的抗干扰措施I/O接口的抗干扰措施接地技术总结智能车系列文章汇总前言 前面使用计算机控制技术简单分析了控制规律和过程通道,今天接着记录一下有关抗…...

智能车浅谈——控制规律篇

文章目录前言计算机控制系统常用控制规律PID控制比例(P)控制器比例积分(PI)控制器比例积分微分(PID)控制位置式PID增量式PID数字PID控制算法的改进PID参数整定小结串级控制模糊控制智能车系列文章汇总前言 之前已经记录了一些有关…...

智能车浅谈——电机控制篇

文章目录前言运动控制系统被控对象执行机构控制器反馈环节M法测速:T法测速小结直流调速系统桥式可逆PWM变换器(1)正向运行(2)反向运行总结智能车系列文章汇总前言 之前借用自动控制原理对智能车的方向控制做了一个简单…...

爬虫实践——selenium、bs4

目录 一、浏览器的一般设置 二、打开网页并获取网页源码的方式 1、基于requests库 2、基于urlib库 3、基于selenium 三、HTML解析 1、BeautifulSoup 2、Selenium动态渲染爬虫:模拟动态操作网页,加载JS(webdriver) 1) 8种find_element定位元素的方法: 2)frame、window切换:…...