【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,表示可运行序列。是一个编排解决方案,上一个执行的结果作为下一个的输入。

相关推荐
sleven fung14 小时前
MinerU与BabelDOC与KTransformers与OpenAI API库
开发语言·python·ai·langchain
糖果店的幽灵18 小时前
LangChain 1.3 完全教程:从入门到精通-Part 11: Tools(工具系统)
开发语言·langchain·c#
wuhen_n20 小时前
LangChain Memory 详解:实现 AI 连续对话不丢失上下文
前端·langchain·ai编程
wuhen_n21 小时前
LangChain Function Call 实战:让 AI 调用自定义工具
前端·langchain·ai编程
菜到离谱但坚持21 小时前
零门槛学LangChain:AI开发从入门到实战
python·langchain·prompt·rag
SuniaWang1 天前
《AgentX 专栏》08-工作流引擎:AgentWorkflow怎么把工具记忆流程串成一条流水线
java·ai·架构·langchain·工作流引擎·langgraph·agent架构
糖果店的幽灵1 天前
LangChain 1.3 完全教程:从入门到精通-Part 10: Memory(记忆系统)
windows·microsoft·langchain
糖果店的幽灵1 天前
LangChain 1.3 完全教程:从入门到精通-Part 8: Vector Stores(向量存储)
langchain
坊钰1 天前
【LangChain框架入门级】1
langchain
yumgpkpm1 天前
华为HUAWEI昇腾910B下千问Qwen3.6-27B在的推理加速实践
sql·华为·langchain·json·ai编程·ai写作·gpu算力