首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >15天学会AI应用开发(十五)使用LangChain封装AI执行链

15天学会AI应用开发(十五)使用LangChain封装AI执行链

作者头像
aqi00
发布2026-06-25 16:56:17
发布2026-06-25 16:56:17
10
举报
文章被收录于专栏:老欧说安卓老欧说安卓

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

一、构造大模型实例

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

代码语言:javascript
复制
from langchain_ollama import OllamaLLM

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

代码语言:javascript
复制
# 连接本地离线大模型(Ollama)
llm = OllamaLLM(model="qwen2:1.5b")

除了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表示启动程序时检查模型是否存在。

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

代码语言:javascript
复制
llm = OllamaLLM(
    model="qwen2:1.5b",
    base_url="http://localhost:11434",
    temperature=0.7,
    num_ctx=4096,
    num_predict=1024,
    keep_alive="-1",
    validate_model_on_init=True
)

二、构建提示词模板

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

代码语言:javascript
复制
from langchain_core.prompts import PromptTemplate

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

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

代码语言:javascript
复制
prompt = PromptTemplate.from_template("""
    你是专业助手,请简洁回答:
    {input}
""")

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

三、组装 AI 执行链

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

代码语言:javascript
复制
# 无链 → 手写每一步,巨繁琐!
prompt_text = prompt.format(input="你的问题")    # 1 手动拼模板
response = llm.invoke(prompt_text)               # 2 手动调模型
result = parser.parse(response)                  # 3 手动解析

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

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

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

代码语言:javascript
复制
from langchain_core.runnables import RunnableSequence
from langchain_core.output_parsers import StrOutputParser

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

代码语言:javascript
复制
chain = RunnableSequence(
    prompt
    | llm
    | StrOutputParser()
)

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

代码语言:javascript
复制
chain = (
    prompt
    | llm
    | StrOutputParser()
)

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

代码语言:javascript
复制
chain = prompt | llm | StrOutputParser()

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

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

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

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

代码语言:javascript
复制
pip install langchain langchain-core langchain-ollama

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

代码语言:javascript
复制
ollama serve

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

代码语言:javascript
复制
from langchain_core.prompts import PromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_ollama import OllamaLLM
def main():
    # 1. 连接本地Ollama离线模型,替换成你本地模型名
    llm = OllamaLLM(
        model="qwen2:1.5b",
        base_url="http://127.0.0.1:11434",
        temperature=0.7  # 随机性 0严谨~1创意
    )
    # 2. 构建对话模板
    prompt = PromptTemplate.from_template("""
        你是专业助手,请简洁回答:
        {input}
    """)
    # 3. 组装执行链
    chain = prompt | llm | StrOutputParser()
    # 4. 循环问答聊天
    print("===== 离线AI聊天助手(输入exit退出)=====")
    while True:
        user_text = input("请输入问题:")
        if user_text.lower() in ["exit", "quit", "退出"]:
            print("对话结束")
            break
        print("AI思考中...")
        response = chain.invoke(user_text)
        print(f"AI回复:{response}\n")
if __name__ == "__main__":
    main()

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

代码语言:javascript
复制
===== 离线AI聊天助手(输入exit退出)=====
请输入问题:LangChain是什么?
AI思考中...
AI回复:Langchain 是一个基于 PyTorch 的开源语言模型推理框架,用于构建和训练大型的预训练模型。它提供了一个简单的 API 来处理输入数据,然后返回文本或代码作为输出。

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老欧说安卓 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档