惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
Google Developers Blog
博客园 - 叶小钗
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
博客园_首页
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 三生石上(FineUI控件)
Help Net Security
Help Net Security
Cloudbric
Cloudbric
AI
AI
N
News | PayPal Newsroom
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
SecWiki News
SecWiki News
H
Heimdal Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
S
Security @ Cisco Blogs
Google DeepMind News
Google DeepMind News
V
V2EX
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
S
Security Affairs
L
LangChain Blog
The Hacker News
The Hacker News
F
Full Disclosure
aimingoo的专栏
aimingoo的专栏
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
Webroot Blog
Webroot Blog
A
About on SuperTechFans
H
Hacker News: Front Page
Cyberwarzone
Cyberwarzone
WordPress大学
WordPress大学
L
LINUX DO - 热门话题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Attack and Defense Labs
Attack and Defense Labs
M
MIT News - Artificial intelligence

博客园 - aqi00

15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能 15天学会AI应用开发(十六)LangChain实现对话记忆功能 15天学会AI应用开发(十四)搭建LangChain的开发环境 15天学会AI应用开发(十三)上下文与RAG的阶段性总结 15天学会AI应用开发(十二)从PDF、WORD、网页构建RAG 15天学会AI应用开发(十一)从TXT文件构建RAG知识库 15天学会AI应用开发(十)把文本嵌入模型换成国产模型 15天学会AI应用开发(九)利用Chroma持久化向量数据 15天学会AI应用开发(八)使用向量数据库实现RAG功能 15天学会AI应用开发(七)有了大模型为什么还要引入RAG 15天学会AI应用开发(六)使用离线大模型对文本生成摘要 一文速览 HarmonyOS 6.1.1 推出的十个新特性 15天学会AI应用开发(五)使用AI摘要来压缩上下文消息 15天学会AI应用开发(四)根据Token长度截断历史对话 15天学会AI应用开发(三)把历史对话作为提示词会怎样 15天学会AI应用开发(二)为什么编写提示词这么重要 15天学会AI应用开发(一)搭建AI大模型应用开发环境 一文理清 HarmonyOS 6.0.2 涵盖的十个升级点 FFmpeg开发笔记(一百零二)国产的音视频移动开源工具FFmpegAndroid FFmpeg开发笔记(一百零一)跨平台的开源音视频移动框架MobileFFmpeg 一文速览 HarmonyOS 6.0.1 引入的十个新特性 一文读懂 HarmonyOS 6.1 带来的十大重要升级 新书《鸿蒙HarmonyOS 6应用开发:从零基础到App上线》出版啦 FFmpeg开发笔记(一百)国产的Android开源视频压缩工具VideoSlimmer FFmpeg开发笔记(九十九)基于Kotlin的国产开源播放器DKVideoPlayer FFmpeg开发笔记(九十八)基于FFmpeg的跨平台图形用户界面LosslessCut FFmpeg开发笔记(九十七)国产的开源视频剪辑工具AndroidVideoEditor FFmpeg开发笔记(九十六)采用Kotlin+Compose的视频编辑器OpenVideoEditor FFmpeg开发笔记(九十五)国产的开源视频美颜工具VideoEditorForAndroid FFmpeg开发笔记(九十四)基于Kotlin的国产开源推拉流框架anyRTC FFmpeg开发笔记(九十三)国产的Android开源视频编辑器EpMedia FFmpeg开发笔记(九十二)基于Kotlin的开源Android推流器StreamPack FFmpeg开发笔记(九十一)基于Kotlin的Android直播开源框架RootEncoder FFmpeg开发笔记(九十)采用FFmpeg套壳的音视频转码百宝箱FFBox FFmpeg开发笔记(八十九)基于FFmpeg的直播视频录制工具StreamCap FFmpeg开发笔记(八十八)基于Compose的国产电视直播开源框架MyTV FFmpeg开发笔记(八十七)采用Kotlin的手机开源播放器VLC-Android FFmpeg开发笔记(八十六)基于Node.js的国产视频编辑开源框架OpenCut FFmpeg开发笔记(八十五)基于PyQt和FFmpeg的开源视频剪辑器OpenShot FFmpeg开发笔记(八十四)使用国产的librestreaming实现RTMP直播 FFmpeg开发笔记(八十三)国产的视频裁剪框架AndroidVideoTrimmer FFmpeg开发笔记(八十二)使用国产直播服务器smart_rtmpd执行推流操作
15天学会AI应用开发(十五)使用LangChain封装AI执行链
aqi00 · 2026-07-19 · via 博客园 - aqi00

上一篇文章末尾给出了LangChain的简单调用例子,当然LangChain还支持更丰富的功能设置,接下来就介绍如何使用LangChain封装AI执行链,以实现更复杂的功能调用。

一、构造大模型实例

在构造大模型实例之前,要先添加下面的导包语句,表示引入LangChain的大模型工具OllamaLLM:

在OllamaLLM的构造方法中,model参数是必填的,要指定当前引用的大模型名称,如下:

除了model参数以外,OllamaLLM还提供了多个可选参数,帮助开发者定制个性化的大模型调用需求。其中常用的核心参数说明如下:
model: 模型名称,比如:"qwen:7b"、"llama3"、"deepseek-r1"等等。
base_url: 服务地址,默认的本地地址为"http://localhost:11434"。
temperature: 模型温度,即随机性。取值范围0~1,默认0.8;值越低则越严谨越确定,值越高越跳跃越创意。
num_ctx: 上下文Token的最大数量,默认2048。值越大则能记忆越长的对话内容。
num_predict: 回答内容Token的最大数量,默认128。值为-1表示不限制输出长度,值为-2表示填满上下文(跟上下文的Token数一致)。
keep_alive: 模型常驻内存的时长(频繁调用必开),默认"5m"表示5分钟。值为"-1"表示永久常驻,值为"0"表示用完即关。
validate_model_on_init: 初始化时是否校验模型存在与否,默认True表示启动程序时检查模型是否存在。

比如下面代码构造了一个定制各种参数的大模型实例:

二、构建提示词模板

在构建提示词模板之前,要先添加下面的导包语句,表示引入LangChain的提示模板工具PromptTemplate:

PromptTemplate的from_template方法主要输入字符串形式的模板参数,字符串的开头为提示词内容,末尾为“{input}”表示给输入的问题文字占个位子。

比如下面代码构建了一个提示词模板:

可见上面模板的提示词内容为“你是专业助手,请简洁回答:”,这便告诉大模型回答时要简明扼要,不要啰哩叭嗦。同时后面的“{input}”提前在模板中占个位置,后续将把用户输入的问题替换掉这个占位符。

三、组装 AI 执行链

为什么LangChain一定要组装执行链呢?想想看,按照程序设计的顺序控制流程,每次接口调用都经历了三个步骤:封装请求内容→执行接口调用→解析应答内容,如同下面的顺序调用代码:

可见这个接口调用流程被分解成了三行代码,有点繁琐。虽然上一行代码的输出参数就是下一行代码的输入参数,但也不得不分成三个语句依次调用。

于是LangChain引入了执行链的概念,把“构建提示词、调用模型、记忆(可选)、检索(可选)、解析应答”等操作按顺序串成一条自动流水线,只要一次性启动组装好的执行链,LangChain就自动跑完全流程,无需拆成多条语句来调用。

在组装执行链之前,要先添加下面的导包语句,表示引入LangChain的执行链工具RunnableSequence,以及默认的应答内容解析器StrOutputParser:

然后编写下面代码串起“构建提示词、调用模型、解析应答”这三个操作:

为了方便起见,可省略掉构造方法的工具名称RunnableSequence,简化代码如下:

还能进一步省略掉外围的圆括号,变成如下的一行代码:

这下清爽多了,完全去掉了组装过程中的各种方法调用及其输入输出参数,只留下各环节用到的实例名称,极大地简化了代码篇幅。

四、通过执行链调用离线大模型

接下来结合构造大模型实例、构建提示词模板、组装 AI 执行链等三个步骤,通过执行链调用实现离线大模型的快速问答功能。

在编写Python代码前,要先在命令行执行下面的pip安装命令:

接着在命令行窗口执行下面命令,以便启动Ollama并加载离线大模型:

然后编写下面的Python聊天测试代码,由用户在控制台输入问题来实现聊天交互:

运行上面的Python代码,根据提示输入问题内容“LangChain是什么?”,输出日志结果如下:

由日志信息发现,通过调用LangChain的执行链,初步实现了简单的AI对话功能,下一篇文章将介绍如何给AI对话添加记忆功能。

本系列的AI应用开发文章目录为《15天学会AI应用开发全目录(零基础小白,零Token消耗)》。