真正通俗易懂的Langchain入门学习(四)

LangChain入门指南 LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,并集成额外的资源,例如 API 和数据库。官方文档:https://python.langchain.com/en/latest/ 阅读详情

三、核心模块深入:像搭积木一样组装AI能力


1. Models(模型层):给你的AI换个“大脑”

场景需求:

  • 需要更高精度的回答?→ 换GPT-4
  • 数据敏感必须本地部署?→ 用开源模型
  • 想节省成本?→ 选择按量付费的模型

实操演示:

# 使用OpenAI的GPT-4(需账户有访问权限)
from langchain.chat_models import ChatOpenAI
gpt4 = ChatOpenAI(model="gpt-4", temperature=0.5)

# 使用开源的Llama2(需先下载模型文件)
from langchain.llms import LlamaCpp
llama = LlamaCpp(
    model_path="./llama-2-7b-chat.ggmlv3.q4_0.bin",
    temperature=0.8
)

# 对比两者的诗歌生成
print("GPT-4:", gpt4.predict("用'月光'开头写一句诗"))
print("Llama2:", llama.predict("用'月光'开头写一句诗"))

输出对比:

GPT-4:月光如水洗尘心,星河若梦照古今  
Llama2:月光白如雪,照在青石街  

小贴士:

  • 云端模型:响应快、效果稳定,但需付费
  • 本地模型:数据隐私好,但需要显卡资源

2. Chains(任务链):把AI变成流水线工人

典型案例:自动客服工单处理系统

咨询类
投诉类
用户输入
分类链
知识库查询链
情绪安抚链
生成回复
格式美化链

代码实现:

from langchain.chains import TransformChain, LLMChain, SequentialChain

# 第一步:工单分类
classify_prompt = PromptTemplate(...)
classify_chain = LLMChain(...)

# 第二步:根据类型处理
def routing_logic(inputs):
    if "投诉" in inputs["type"]:
        return "complaint_chain"
    else:
        return "query_chain"

# 组装完整流程
full_chain = SequentialChain(
    chains=[classify_chain, complaint_chain, query_chain],
    routing=routing_logic  # 自定义路由逻辑
)

调试技巧:

# 查看每个步骤的输入输出
full_chain.run("你们的产品有问题!", verbose=True)

# 输出日志示例:
# [分类链] 输入:"你们的产品有问题!" → 输出:{"type": "投诉"}
# [投诉处理链] 输入:投诉内容 → 输出:安抚话术

3. Agents(智能代理):给你的AI发瑞士军刀

工具包配置:

from langchain.agents import Tool
from langchain.utilities import GoogleSearchAPIWrapper

# 创建三个工具
search = GoogleSearchAPIWrapper()
tools = [
    Tool(
        name="网络搜索",
        func=search.run,
        description="用于查询实时信息"
    ),
    Tool(
        name="计算器",
        func=lambda x: str(eval(x)),
        description="用于数学计算"
    ),
    Tool(
        name="翻译器",
        func=translate_api,
        description="中英互译"
    )
]

实战场景:全能旅行助手

agent.run("帮我查巴厘岛下周天气,预算1万元玩3天怎么安排?")

AI的思考过程(通过设置verbose=True可见):

1. 需要天气数据 → 调用「网络搜索」工具  
2. 计算每日预算:10000/3 ≈ 3333 → 调用「计算器」  
3. 生成行程建议 → 使用LLM本身能力  
4. 翻译酒店名称 → 调用「翻译器」  

常见问题:

  • 工具选择错误:在工具描述中强调使用场景
  • 无限循环:设置最大迭代次数max_iterations=5

4. Memory(记忆管理):让AI记住你的喜好

记忆类型对比表:

类型适用场景代码示例
对话缓存记忆短期聊天ConversationBufferMemory
实体记忆记住用户特定信息EntityMemory
知识图谱记忆复杂关系记忆KGMemory

用户偏好记忆案例:

from langchain.memory import ConversationEntityMemory

# 创建带实体识别的记忆
memory = ConversationEntityMemory(llm=llm)
memory.save_context(
    {"input": "我咖啡只喝美式"}, 
    {"output": "已记录您的咖啡偏好"}
)

# 后续对话
print(memory.load_memory_variables({"input": "推荐个饮品?"}))
# 输出:{'history': ..., 'entities': {'用户': {'咖啡偏好': '美式'}}}

记忆丢失问题解决:

  • 定期将记忆存储到数据库
  • 使用VectorStoreRetrieverMemory向量记忆

5. Indexes(数据索引):让AI读懂你的文档

企业知识库搭建四部曲:

  1. 文档加载:支持PDF/Word/网页

    from langchain.document_loaders import PyPDFLoader
    loader = PyPDFLoader("企业章程.pdf")
    pages = loader.load()
    
  2. 文本分割:防止超过模型token限制

    from langchain.text_splitter import RecursiveCharacterTextSplitter
    text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000)
    docs = text_splitter.split_documents(pages)
    
  3. 向量存储:把文字变成数学向量

    from langchain.embeddings import OpenAIEmbeddings
    from langchain.vectorstores import FAISS
    db = FAISS.from_documents(docs, OpenAIEmbeddings())
    
  4. 语义检索:

    query = "年假制度是怎样的?"
    similar_docs = db.similarity_search(query)
    

效果对比:

传统关键词搜索 → 匹配"年假"出现次数  
语义搜索 → 理解"带薪休假怎么计算"也能找到答案

6. 模块组合实战:智能会议助手

需求场景:

  1. 自动总结会议录音(语音转文字 + 摘要生成)
  2. 根据讨论内容生成待办事项
  3. 关联历史会议记录

代码架构:

# 1. 语音处理链
audio_chain = SpeechToTextChain() 

# 2. 摘要生成链
summary_chain = LLMChain(...)

# 3. 待办事项抽取链
todo_chain = TransformChain(...)

# 4. 记忆存储
memory = CombinedMemory(memories=[buffer_memory, entity_memory])

# 整合所有模块
assistant_chain = SequentialChain(
    chains=[audio_chain, summary_chain, todo_chain],
    memory=memory,
    input_variables=["audio_file"]
)

7. 调试与优化指南

常见问题诊断表:

现象可能原因解决方案
响应速度慢链过长/模型延迟高异步调用/换轻量模型
输出结果不稳定temperature值过高降低temperature至0.3-0.6
记忆丢失未正确传递memory对象检查chain的memory参数是否设置
工具调用失败API密钥失效/网络问题添加重试机制/异常捕获

性能优化技巧:

  • 缓存机制:对常见查询结果缓存
    from langchain.cache import InMemoryCache
    langchain.llm_cache = InMemoryCache()
    
  • 批量处理:同时处理多个输入
    inputs = [{"query": "巴黎天气"}, {"query": "伦敦天气"}]
    chain.apply(inputs)
    

8. 阶段练习:打造你的第一个智能应用

任务选择:

  • 选项1:电商客服机器人(需对接产品数据库)
  • 选项2:个人健康助手(记录运动饮食数据)
  • 选项3:学习监督员(检查作业生成错题集)

实现步骤提示:

  1. 画出功能流程图
  2. 列出需要的模块(如:需要Agent吗?需要哪种Memory?)
  3. 分模块编写测试代码
  4. 组装调试时使用verbose=True观察执行过程

示例代码框架:

# 健康助手骨架代码
from langchain import LLMChain, Agent, Memory

class HealthAssistant:
    def __init__(self):
        self.memory = ConversationEntityMemory()
        self.food_chain = LLMChain(...)
        self.exercise_agent = Agent(...)
    
    def log_meal(self, food):
        self.memory.save_context(...)
        return self.food_chain.run(food)
    
    def suggest_exercise(self):
        return self.exercise_agent.run(
            inputs={"memory": self.memory},
            tools=[BMI_calculator, workout_generator]
        )

下一步学习预告

在第四部分项目实战中,你将:
🔧 用1小时搭建智能客服系统
📊 实现自动分析Excel生成可视化报告
🤖 创建能记住300轮对话的聊天机器人
…
现在先做个选择题检验学习效果吧!

Q:当需要处理“用户咨询→数据库查询→生成报告”流程时,应该使用?
A) 单个LLM直接处理
B) Chain串联多个步骤
C) 训练新模型

(答案:B。Chain就像流水线,适合多步骤任务)

LangChain学习及应用(超详细) Model I/O 部分是与语言模型进行交互的核心组件,包括输入提示(Prompt Template)、调用模型(Model)、输出解析(Output Parser)。简单来说,就是输入、处理、输出这三个步骤。LLM 因其具有海量参数,需要花费相当的物力与时间成本进行预训练和微调,同时商用 LLM 还需要进行各种安全测试与风险评估等。因此 LLM 会存在知识滞后的问题。在专有领域,LLM 无法学习到所有的专业知识细节,因此在面向专业领域知识的提问时,无法给出可靠准确的回答。 阅读详情

相关推荐

langchain入门学习笔记

langchain快速入门

1725

LangChain 中文入门教程

LangChain官方文档假如我们想要用openai api对一段文本进行总结,我们通常的做法就是直接发给 api 让他总结。但是如果文本超过了 api 最大的 token 限制就会报错。这时,我们一般会进行对文章进行分段,比如通过tiktoken计算并分割,然后将各段发送给 api 进行总结,最后将各段的总结再进行一个全部的总结。LangChain可以很好的帮我们处理这个过程,代码也很简单。

qq_56591814的博客 6万+

极客LangChain实战课之 LangChain系统安装和快速入门

大语言模型是一种人工智能模型,通常使用深度学习技术,比如神经网络,来理解和生成人类语言。这些模型的“大”在于它们的参数数量非常多,可以达到数十亿甚至更多,这使得它们能够理解和生成高度复杂的语言模式。你可以将大语言模型想象成一个巨大的预测机器,其训练过程主要基于“猜词”:给定一段文本的开头,它的任务就是预测下一个词是什么。模型会根据大量的训练数据(例如在互联网上爬取的文本),试图理解词语和词组在语言中的用法和含义,以及它们如何组合形成意义。它会通过不断地学习和调整参数,使得自己的预测越来越准确。

牛牛 2631

LangChain框架学习总结

LangChain是一个用来基于语言模型开发应用的框架。我们相信,最强大、最与众不同的应用程序不仅会通过API调用语言模型,而且还会:数据感知:将语言模型连接到其他数据源代理性:允许语言模型与其环境交互LangChain为开发者提供了很多模块化的组件,但从组件的效果来看,它们的最终目的只有一个:协助开发者构造更合理、信息更为丰富的Prompt,来从LLM获得更为准确和详细的回答。LangChain自身并没有太高的技术壁垒,但它可以为我们省下许多的开发时间。

junerli的博客 3535

PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现

PBR:双向反射分布函数(BRDF)介绍与Cook-Torrance模型的实现 BRDF简介 再介绍BRDF之前我们要引入渲染方程这个东西: 其中L表示辐射率,其公式为: 它表示了一个拥有辐射强度Φ的光源在单位面积A,单位立体角ω上的辐射出的总能量。 辐射率是辐射度量学上表示一个区域平面上光线总量的物理量,它受到入射光线与平面法线间的夹角θ的余弦值cosθ的影响:当直接...

小龙虾的博客 1万+

Cisco Packet Tracert 无线路由器配置

Cisco Packet Tracert 无线路由器配置

yushan_caoyu的博客 2万+

史上最全LangChain 学习教程

为什么LangChain能在大模型应用开发占据半壁江山?本文是超详细的LangChain入门级教程,帮助你深入浅出地理解什么是LangChain。

2402_89042144的博客 1029

iOS马甲包过审实战:如何用5天时间搞定4.3审核(附完整代码混淆方案)

本文提供了一套为期五天的高效实战方案,专门解决iOS应用因重复或抄袭问题而被App Store的4.3条款拒绝的难题。方案涵盖深度分析、代码混淆、资源翻新及环境隔离等系统性步骤,并附有完整的代码混淆示例,旨在帮助开发者在合规框架内重塑应用,显著提升过审成功率。

weixin_29234239的博客 139

LangChain 入门学习

LangChain是一个开源框架,帮助开发者构建基于大语言模型(LLMs)的应用程序。它提供三大核心功能:1)连接外部数据和系统;2)组合多个LLM操作;3)实现自主决策代理。主要组件包括模型调用接口、提示词模板、功能链和代理系统。安装简单,通过pip即可完成,推荐配合LangSmith平台进行调试。典型应用场景包括文档问答系统(RAG)、自动任务执行等。框架优势在于统一不同模型的调用方式,简化开发流程,并支持连接私有数据源。通过链式组合基本组件,开发者可以快速构建复杂的AI应用。

TTKunn的博客 1545

SAP 对接CBS(http方式)

CLEAR:lv_xml_crc32_string. CONCATENATEcrc32_passwordcrc32_keyi_stringINTOlv_xml_crc32_string. CONDENSElv_xml_crc32_string. CALLFUNCTION'SCMS_STRING_TO_XSTRING' EXPORTING text=lv_xml_crc32_string encoding='8400' "GB...

3591

Mem0 vs LangMem vs Letta:三大AI记忆框架实战对比(附代码示例)

本文深入对比了Mem0、LangMem和Letta三大AI记忆框架的核心特性与适用场景。Mem0提供开箱即用的记忆管理服务,适合快速集成;LangMem深度融入LangGraph生态,适合复杂工作流;Letta则采用虚拟内存系统,旨在突破上下文窗口限制。文章通过实战代码示例,为开发者选择适合其业务需求的AI记忆解决方案提供了清晰指南。

g9h0i1的博客 667

真正通俗易懂的Langchain入门学习(六)

客服助手上线后,客户问题解决率提升40%,响应时间缩短至15秒内”每个LangChain专家都曾是面对报错不知所措的新手。都在为未来的AI创新产品积累能量。你此刻的每一个小实验。

caridle的专栏 1017

dell r630 配置raid_DELL服务器RAID配置图文教程

名称解释:Disk Group:磁盘组,这里相当于是阵列,例如配置了一个RAID5,就是一个磁盘组VD(Virtual Disk): 虚拟磁盘,虚拟磁盘可以不使用阵列的全部容量,也就是说一个磁盘组可以分为多个VDPD(Physical Disk): 物理磁盘HS:Hot Spare 热备Mgmt:管理【一】创建逻辑磁盘1、按照屏幕下方的虚拟磁盘管理器提示,在VD Mgmt菜单(可以通过CTRL+P...

weixin_33253741的博客 3507

真正通俗易懂的Langchain入门学习(一)

通过此提纲,你可在2-3周内掌握基础开发能力,并逐步构建复杂应用。

caridle的专栏 1008

ArcGIS Maps SDK for Unity实战:把真实世界地形‘搬进’游戏场景的保姆级教程

本文详细介绍了如何使用ArcGIS Maps SDK for Unity将真实世界地形导入游戏场景的完整流程。从高程数据获取、TPKX格式转换到Unity中的地形集成与优化,提供了保姆级教程,帮助开发者快速实现高精度地形建模,特别适用于开放世界游戏和数字孪生项目。

weixin_30621465的博客 340

在Simulink中进行基于强化学习控制策略的三相逆变器仿真

本文详细介绍了在Simulink中实现基于强化学习控制策略的三相逆变器仿真的完整流程。主要内容包括:1)准备工作,确保MATLAB/Simulink及相关工具箱安装;2)构建三相逆变器基础模型,包含电源、全桥电路、LC滤波器和负载;3)重点阐述强化学习控制器设计,涉及状态空间、动作空间定义,奖励函数设计和算法选择;4)实现控制逻辑,包括环境创建、代理配置和训练过程;5)仿真设置与结果分析。文章强调了模型调试优化的重要性,并建议结合文献研究提升控制效果。该方案为开发自适应电力电子控制系统提供了实用指南。

amy_mhd的博客 269

LangChain系列使用指南:LangChain快速入门

我们仅涉及了提示、模型和输出解析器的基础知识 - 要深入了解这里提到的所有内容,请参阅文档的此部分。我们只是简单介绍了检索的基础知识 - 想要深入了解这里提到的所有内容,请参阅文档的这一部分。我们只是简单介绍了代理的基础知识 - 想要深入了解这里提到的所有内容,请参阅文档的这一部分。我们将展示如何使用通过 API 提供的模型,如 OpenAI,以及本地开源模型,使用像 Ollama 这样的集成。这个链将接收一个问题,查找相关文档,然后将这些文档连同原始问题传递给一个 LLM,并要求它回答原始问题。

数智笔记 7268

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LangChain入门指南,学习Langchain看这篇足够了

LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。

huang9604的博客 5163

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

真正通俗易懂的Langchain入门学习(三)

➡️ 用多个链串联复杂任务(如:先情感分析再生成回复)➡️ 让AI学会使用工具(如调用计算器处理数学问题):让AI根据温度生成对应的诗句。✅ 基础链(Chain)的使用。➡️ 构建有记忆的对话机器人。✅ 环境搭建与密钥管理。

caridle的专栏 1871

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LangChain 82 LangGraph 从入门到精通四

在构建图表时,您需要传入一个状态模式。然后,每个节点都会返回操作以更新该状态。这些操作可以是在状态上设置特定属性(例如,覆盖现有值),也可以是向现有属性添加内容。是设置还是添加是通过注释您用于构建图表的状态对象来表示的。

AI架构师易筋 3378

真正通俗易懂的Langchain入门学习(二)

把LangChain想象成乐高积木底座——单独的语言模型是积木块,LangChain提供拼接规则和连接件,让你能搭建出城堡、飞船等复杂结构。现在你已经掌握了LangChain的基础逻辑,就像一个厨师了解了厨房的工具布局。用户:“把昨天的会议结论总结成邮件” → AI自动调取之前的会议摘要 → 生成邮件草稿。你问:“帮我查订单123456的状态” → 它回答:“抱歉,我无法访问订单系统”用户:“昨天的会议结论是什么?” → AI:“请提供会议记录”用户问:“我想去巴黎玩三天,预算5000元”

caridle的专栏 1137

LangChain 学习必备,从入门到实践的全新版指南!

当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

HJS123456780的博客 979

LangChain快速入门,收藏这一篇就够了!

这是一个相当多的内容要涵盖!让我们开始吧。

z551646的博客 1454

AI系统性学习—LangChain入门

LangChain是一个开源的Python库,它提供了构建基于大模型的AI应用所需的模块和工具。通过LangChain,开发者轻松地与大语言模型(LLM)集成,完成文本生成、问答、翻译、对话等任务。LangChain降低了AI应用开发的门槛,让任何人都可以基于LLM构建属于自己的创建应用。LLM和Prompt:LangChain对所有LLM大模型进行了API抽象,统一了大模型访问API,同时提供了Prompt提示模型管理机制。Chain:这些是对LLM或其他使用程序的调用序列。

weixin_43495948的博客 2969
上一篇: 真正通俗易懂的Langchain入门学习(三)
下一篇: 真正通俗易懂的Langchain入门学习(五)
caridle
博客等级 码龄21年 1849粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caridle

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值