langChain 快速入门

langChain 快速入门

一、LangChain 表达式语言

在没有 LangChain 之前,你可能需要手动拼接字符串、调用 API、再手动解析返回的文本。LangChain 通过 LCEL(LangChain 表达式语言) 将这些步骤标准化。

一个基础的链通常由三个核心组件组成:

  1. PromptTemplate (提示词模板) 📝:将用户的原始输入格式化为结构化的指令。

  2. Model (模型) 🤖:大语言模型(LLM),负责逻辑推理。

  3. OutputParser (输出解析器) 🔍:将模型返回的字符串清洗或转换成你需要的格式(如 JSON 或纯文本)。

在 LangChain 中,我们使用类似 Unix 管道符的 | 符号将它们串联起来: 链 = 提示词 | 模型 | 解析器

二、示例:构建"翻译助手" (LCEL 基础)

我们将学习如何定义一个简单的模板,并利用 | 符号将它与模型连接,实现自动化的语言转换。

先从翻译助手 的核心------提示词模板 (PromptTemplate) 开始。

在 LangChain 中,提示词模板就像是一个"填空题"。它不仅包含你对 AI 的指令,还预留了变量位置,方便我们重复使用。

1. 定义提示词模板 📝

我们要告诉 AI:"你是一个专业的翻译官,请将以下文本从 {source_lang} 翻译成 {target_lang}。"

在代码中,它看起来是这样的(以 Python 为例):

Python

ini 复制代码
from langchain_core.prompts import ChatPromptTemplate

# 定义模板
system_template = "你是一个专业的翻译官,请将用户输入的文本从 {source_lang} 翻译成 {target_lang}。"
human_template = "{text}"

prompt_template = ChatPromptTemplate.from_messages([
    ("system", system_template),
    ("human", human_template),
])

这里我们使用了 system(系统消息,设定角色)和 human(用户消息,提供具体内容)。


2. 准备模型 (Model) 🤖

接下来我们需要一个"大脑"来执行翻译。在 LangChain 中,我们可以轻松切换不同的模型(如 OpenAI、Anthropic 或国产模型)。

Python

ini 复制代码
# 假设我们使用 ChatOpenAI(实际使用时需要配置 API Key)
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-3.5-turbo")

3. 使用 LCEL 串联 🔗

现在是见证奇迹的时刻!在 LCEL 中,我们使用管道符 | 将它们连接起来:

Python

ini 复制代码
# 这一行就是 LCEL 的精髓
chain = prompt_template | model

这个 chain 现在就像一个完整的"函数"。当我们调用它时,它会自动把输入填入模板,然后传给模型。

4. 运行你的第一个链 🚀

在 LangChain 中,我们使用 .invoke() 方法来触发这个链。我们将这三个参数放在一个字典(Dictionary)里传进去。

代码看起来是这样的:

Python

vbscript 复制代码
# 运行链
response = chain.invoke({
    "source_lang": "中文",
    "target_lang": "英文",
    "text": "你好,今天天气不错。"
})

print(response)

这时候你会发现,模型返回的是一个对象(通常是 AIMessage),里面包含了翻译后的文本,但也包含了一些元数据(比如 token 消耗量)。

5. 引入输出解析器 (Output Parser) 🔍

在大多数情况下,我们只想要翻译后的纯字符串 。这时就需要用到 StrOutputParser。它可以把复杂的模型输出直接变成简洁的文本。

Python

ini 复制代码
from langchain_core.output_parsers import StrOutputParser

parser = StrOutputParser()

现在,我们有了三个组件:

  1. prompt_template (格式化输入)

  2. model (处理逻辑)

  3. parser (清理输出)

6. 完整 LangChain 的链

ini 复制代码
final_chain = prompt_template | model | parser

这行代码完美展示了 LCEL (LangChain Expression Language) 的简洁之美。

通过加上 parser,整个链的流转变得非常清晰:

  1. PromptTemplate:把你的变量填入模板。

  2. Model:接收格式化后的文本并生成回复。

  3. Parser:从模型回复中提取出纯文本字符串。

现在,当你运行 final_chain.invoke(...) 时,你得到的不再是一个复杂的对象,而是一个直接可以使用的翻译结果字符串

相关推荐
渣渣苏2 分钟前
怎么量化一个Agent的性能?
人工智能·ai·agent·智能体
汤姆yu2 分钟前
自主进化 AI 新范式:Sakana AI 达尔文哥德尔机器深度研究
人工智能
嵌入式小企鹅2 分钟前
UiPath推出AI编程“总指挥台”,SiFive发布RISC-V第三代猛兽
人工智能·学习·google·程序员·ai编程·risc-v·开源工具
多年小白7 分钟前
【本周复盘】2026年5月11日-5月15日
人工智能·ai·金融·区块链
我是宝库23 分钟前
英文专业论文,可以用维普AIGC检测查AI率吗?
人工智能·aigc·英文论文·论文查重·turnitin系统·turnitin·维普aigc检测
我星期八休息26 分钟前
Linux系统编程—基础IO
linux·运维·服务器·c语言·c++·人工智能·算法
大拿爱科技1 小时前
低清视频修复怎么接入批处理?AI画质增强流程拆解
人工智能·自动化·aigc·音视频
zyk_computer1 小时前
AI 时代,或许 Rust 比 Python 更合适
人工智能·后端·python·ai·rust·ai编程·vibe coding
m0_634666731 小时前
OpenDeepThink:让大模型不再只沿着一条思路硬想
人工智能·深度学习·机器学习
Wilber的技术分享1 小时前
【大模型面试八股 3】大模型微调技术:LoRA、QLoRA等
人工智能·深度学习·面试·lora·peft·qlora·大模型微调