0 AI相关基础概念
- LangChain 是一个用于开发由大型语言模型(LLMs)驱动的应用程序的框架。
- **生成式AI:**使用大模型进行支持,在大量原始未标记的数据基础上对于深度学习模型进行预训练,从而让机器能够理解语言甚至图像,能根据需要自动生成内容。
- **大模型的训练阶段:**预训练(提升本身的知识量),SFT(Supervised Fine-Tuning监督微调,专注于选择某一方面),RLF(Reinforcement Learning with Human Feedback基于人类反馈的强化学习)
- prompt:使用大模型时,向模型提供的一些指令或者问题,这些指令作为模型输入,引导模型产生必要的输出。
1 基础LLM和聊天模型调用
Chat API调用
LangChain 将底层 API 调用抽象为统一的接口(如ChatOpenAI、LLM类),屏蔽了不同模型 API 的差异(如阿里云、百度、OpenAI 的接口格式不同)。
当前支持的模型:聊天模型 | 🦜️🔗 LangChain 框架
APP KEY
以通义千问为例,app key可以从阿里云百炼大模型服务平台中获取,存在一定的免费额度,app key建议新建一个.env文件存储,加上load_dotenv()预先加载即可。
Prompt 模板
ChatPromptTemplate 是 LangChain 中用于管理对话提示词的核心工具,专为多角色(如 system、user、assistant)对话场景设计,其优点主要体现在结构化、灵活性、复用性和生态集成能力上。
它的核心在于增加了提示词的灵活性,将其从”静态字符串“升级成了”可配置,可动态生成,可集成的结构化组件“。在需要处理多角色度化,动态调整提示词,复用模板或者集成langchain的其它功能时,能够显著提升代码质量。
| |
2 简单Agent
基础概念
AI agents:基于LLM的能够自主理解,自主规划决策,执行复杂任务的智能体。
AI agents流程
- 规划(planing):将任务分为子任务,对任务进行思考反思 — 给一个合适的prompt
- 记忆(memory):记住执行任务的上下文,有助于更好的理解当前任务 — 短期记忆 长期记忆
- 工具(tools):为智能体配备工具AI,比如计算器,搜索工具等
核心逻辑
Agent 的核心逻辑遵循 REACT 框架(Reason→Act→Observe→React),这是一种典型的链式流程。
| |
LangChain.tools
LangChain 的 Tools 是连接大模型与外部功能的核心组件。工具是一种封装函数及其模式的方式,以便可以将其传递给聊天模型。使用@tool装饰器创建工具,该装饰器简化了工具创建过程,支持以下功能:
- 自动推断工具的名称、描述和预期参数,同时支持自定义。
- 定义返回工件(例如图像、数据框等)的工具
- 使用注入的工具参数从模式(从而从模型)中隐藏输入参数。
旅游助手agent
这段代码实现了一个基于 LangChain 和 通义千问(ChatTongyi) 的智能旅行助手,具备联网搜索、预算计算和多轮对话记忆功能。
- 谷歌搜索工具(google_search):通过 Serper API 调用 Google 搜索,获取实时信息如天气、景点、政策等。Serper API key,也可以用其余搜索工具,采用相应的api key即可。
- 预算计算工具(calculate_budget):输入“天数,每日预算”格式,自动计算旅行总费用。
- 对话记忆(ConversationSummaryMemory):保留历史对话摘要,帮助模型理解上下文(如“刚才的城市”)
- 自定义提示词模板(ChatPromptTemplate):定义系统行为和工具使用逻辑,让模型决定何时调用工具。
- 智能体(Agent)初始化:通过
initialize_agent()将 LLM、工具和记忆整合为具备推理和工具调用能力的对话体。 - 交互循环(chat_loop):实现命令行多轮聊天界面,支持实时输入与退出(exit/退出)。
| |
后话
LangChain 实现智能体的推理、工具调用与记忆,但其核心架构仍是「线性链式执行」。在复杂多轮推理、长上下文管理和并发场景下存在一定缺陷。langchain运行过程中会出现官方提示当前功能仍然可用,但推荐迁移到更新的模块或框架。
LangGraph 是 LangChain 团队推出的下一代框架,它基于“有状态计算图(StateGraph)”思想,将每个步骤建模为节点,支持显式状态管理、并发执行、持久记忆与可视化调试,更适合用于创建实际需要的智能体。
为什么选择 LangGraph? - LangChain 框架官网
