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

推荐订阅源

V
Visual Studio Blog
Y
Y Combinator Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
IT之家
IT之家
量子位
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
罗磊的独立博客
S
SegmentFault 最新的问题
博客园_首页
N
Netflix TechBlog - Medium
月光博客
月光博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
aimingoo的专栏
aimingoo的专栏
T
Tailwind CSS Blog
M
MIT News - Artificial intelligence
A
About on SuperTechFans
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
腾讯CDC
MyScale Blog
MyScale Blog

博客园 - aqi00

一文读懂 HarmonyOS 7.0 带来的十大API重要升级 鸿蒙版本的JSBridge兼容与安卓配套的H5啦 15天学会AI应用开发(二十)使用LangChain实现RAG检索功能 15天学会AI应用开发(十九)使用LangGraph实现持久记忆功能 鸿蒙版本的小小机器人APP开放源码啦 15天学会AI应用开发(十八)使用LangGraph实现精确记忆功能 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
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消耗)》。