【LangChain&LangGraph】LangChain快速上手

目标如下:

1.通过LangChain接入LLM

2.通过代码理解,如何定义链式结构

3.链式结构的底层逻辑

一:快速上手编码

调用LLM的流程:

接入并定义大模型->定义消息->调用大模型->输出结果

举个例子:

python 复制代码
import os
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage

# 1. 初始化模型(和你之前格式一模一样,只是换了提示场景)
model = ChatOpenAI(
    model="deepseek-v4-pro",
    base_url="https://api.deepseek.com/v1",
    api_key=os.getenv("DEEPSEEK_API_KEY"),
)

# 2. 定义消息:系统提示 + 用户消息
messages = [
    SystemMessage(content="你是一位耐心的学习助手,每次回答前都要先说'同学你好',然后再解答问题。"),
    HumanMessage(content="Python 是什么?用一句话解释。"),
]

# 3. 调用模型
result = model.invoke(messages)

# 4. 输出结果
print(result.content)

这段代码是基于 LangChain 框架调用 DeepSeek 大模型的基础示例,首先实现了库的导入与环境配置。代码引入了 os 模块用于读取环境变量,同时从 langchain_openai 导入 ChatOpenAI 模型类,再从 langchain_core.messages 导入会话所需的消息类型,为后续调用大模型做好了工具准备。

其次完成了大模型实例的初始化配置。借助 ChatOpenAI 兼容 OpenAI 接口的特性,通过指定模型名称、DeepSeek 专属接口地址,再从系统环境变量中读取密钥,既成功连接了 DeepSeek 大模型,又遵循了开发安全规范,避免将 API 密钥直接写在代码中,保护接口信息安全。

再者学习了 LangChain 中会话消息的定义规则。代码运用了两种核心消息格式,SystemMessage 作为系统提示消息,用于提前给人工智能设定角色身份和回复规则;HumanMessage 代表用户输入的对话内容,两种消息以列表形式组合,构成完整的对话上下文,能够精准引导模型的回复风格。

最后掌握了大模型的调用与结果输出方式。通过 model.invoke () 方法传入消息列表,即可向大模型发起请求并获取返回结果,直接打印结果能够查看模型完整的返回对象,包含回复文本、角色信息等元数据,也可以提取 content 属性单独获取纯文字回复,这是 LangChain 同步调用大模型最基础且通用的使用方式。

整体而言,这段代码完整演示了第三方兼容接口大模型的调用流程,涵盖环境变量密钥管理、系统提示词设置、结构化消息定义、模型基础调用等核心知识点,是入门 LangChain 对接国产大模型的基础范例。

然后我们可以交给链去执行,这样子就可以注释掉那些了

python 复制代码
import os
from langchain_openai import ChatOpenAI
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_core.output_parsers import StrOutputParser
model = ChatOpenAI(
    model="deepseek-v4-pro",
    base_url="https://api.deepseek.com/v1",
    api_key=os.getenv("DEEPSEEK_API_KEY"),
)

#定义消息
#用户消息HumanMessage
#系统提示消息,通常作为第一条消息传入
messages=[
    SystemMessage(content="请叫我刘总,然后再回复"),
    HumanMessage(content="hi!"),
]

#调用大模型
#result=model.invoke(messages)
#print(result)

#定义输出解析器,这个也是组件
parser=StrOutputParser()
#print(parser.invoke(result))
#定义链
#执行链
chain=model|parser
print(chain.invoke(messages))

二:Runnable和LCEL

Runnable接口是使用Langchain Component(组件)的基础,它提供了一系列的标准接口

接入原生大模型存在一个问题就是,切换大模型困难。

invoke:单次同步调用,输入单个参数,返回最终完整结果。

batch:批量同步调用,一次性传入多组参数,批量返回结果。

stream:流式同步调用,逐段返回输出,适合打字机实时效果。

ainvoke:异步单次调用,不阻塞主线程,适合并发场景。 abatch:异步批量调用,多组任务异步并行执行,效率更高。

astream:异步流式调用,异步 + 逐段输出,对话场景最常用。

LCEL是采用声明性方法,从现有的Runnalbe对象构建新的Runnalbe对象,称为RunnalbeSequence,表示可运行序列。是一个编排解决方案,上一个执行的结果作为下一个的输入。

相关推荐
星始流年2 天前
从 Tool 到 Skill——基于 LangChain 的服务端Skill实现
前端·langchain·agent
codedx2 天前
LangChain 和 LangGraph 构建的 Agent 项目模版
后端·langchain·agent
颜酱3 天前
LangGraph 入门指南
langchain
武子康4 天前
调查研究-186 LangChain 和 LangGraph 的区别:从快速构建 Agent 到生产级工作流编排
人工智能·langchain·llm
葫芦和十三7 天前
渐进发现|代码库不是文档库
langchain·agent·ai编程
柒和远方7 天前
LangGraph 深度解析:从增强型 LLM 到生产级 Agent
langchain·llm·agent
沪漂阿龙8 天前
《LangChain》成本、限流、缓存、降级:AI 应用上线要考虑的问题
人工智能·langchain
段一凡-华北理工大学8 天前
LangChain框架在高炉炼铁智能化领域的应用~系列文章09:工具调用Tool — 让AI学会操作高炉仪表盘
网络·人工智能·架构·langchain·高炉炼铁·高炉智能化·高炉智能体
Niuguangshuo8 天前
LangChain 学习之旅(五):Agent 与工具调用实战
学习·langchain
yangshicong8 天前
第16章:AI数据分析与Text-to-SQL
人工智能·python·sql·数据分析·langchain