天学会AI应用开发:LangChain封装AI执行链
在前一篇文章中,我们已初步体验了LangChain的基础调用方法。然而,LangChain的真正价值远不止于此——它能够将多个AI组件封装为可执行的链式任务,实现复杂流程的自动化编排。就像把一个个独立零件组装成高效流水线,让大模型依次完成每一步操作,无需人工干预。 一、构造大模型实例 在开始之前,先
在前一篇文章中,我们已初步体验了LangChain的基础调用方法。然而,LangChain的真正价值远不止于此——它能够将多个AI组件封装为可执行的链式任务,实现复杂流程的自动化编排。就像把一个个独立零件组装成高效流水线,让大模型依次完成每一步操作,无需人工干预。

一、构造大模型实例
在开始之前,先导入所需的工具模块。这里需要引入LangChain的OllamaLLM模块,从而与本地运行的Ollama大模型建立连接:
from langchain_ollama import OllamaLLM
接下来,创建一个OllamaLLM实例。其中model参数是必填项,用于指定要加载的大模型名称,例如:
# 连接本地离线大模型(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表示填满整个上下文。keep_alive:模型在内存中常驻的时长,频繁调用时建议开启。默认"5m"表示5分钟,"-1"表示永久常驻,"0"表示用完即关。validate_model_on_init:初始化时是否校验模型是否存在,默认True表示启动时检查。
举例来说,以下代码创建了一个定制了多个参数的大模型实例:
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
)
二、构建提示词模板
导入PromptTemplate模块,这是构建提示词模板的核心工具:
from langchain_core.prompts import PromptTemplate
PromptTemplate的from_template方法接受一个字符串作为模板。字符串开头是提示词内容,末尾用{input}占位,表示用户输入的问题将在此处插入。
例如,以下代码构建了一个简单的提示词模板:
prompt = PromptTemplate.from_template("""
你是专业助手,请简洁回答:
{input}
""")
提示词的第一句“你是专业助手,请简洁回答”为模型划定了回答风格——简明扼要,避免冗长。后面的{input}是占位符,实际调用时会将用户输入的问题替换进去。
三、组装 AI 执行链
为什么LangChain要引入“执行链”这一概念?这需要从传统调用方式说起。按照程序设计顺序控制流程,每次接口调用都需要经历三步:封装请求内容→执行接口调用→解析应答内容,写成代码大致如下:
# 无链 → 手写每一步,巨繁琐!
prompt_text = prompt.format(input="你的问题") # 1 手动拼模板
response = llm.invoke(prompt_text) # 2 手动调模型
result = parser.parse(response) # 3 手动解析
可以看到,虽然上一行代码的输出就是下一行代码的输入,但每次都需要拆成三个语句依次调用,非常繁琐。
LangChain的执行链正是为解决这一痛点而设计。它将“构建提示词、调用模型、记忆(可选)、检索(可选)、解析应答”等操作,按顺序串联成一条自动流水线。只需一次性启动组装好的执行链,LangChain就会自动完成全流程,无需再写多条语句。
组装执行链之前,先导入所需的工具包:
from langchain_core.runnables import RunnableSequence
from langchain_core.output_parsers import StrOutputParser
然后,用RunnableSequence将三个操作串联起来:
chain = RunnableSequence(
prompt
| llm
| StrOutputParser()
)
实际上,RunnableSequence这个类名完全可以省略,直接用管道操作符|连接各环节,代码更简洁:
chain = (
prompt
| llm
| StrOutputParser()
)
甚至还能进一步简化,去掉外围的圆括号,变成一行代码:
chain = prompt | llm | StrOutputParser()
这样一来,组装过程中所有方法调用和参数传递都消失了,只剩下各环节的实例名称,代码量大幅减少,可读性也显著提升。
四、通过执行链调用离线大模型
现在,将前面三步串联起来,实现一个完整的AI对话功能。
首先,在命令行执行下面的pip安装命令,确保所有依赖包都已安装:
pip install langchain langchain-core langchain-ollama
接着,启动Ollama并加载离线大模型:
ollama serve
然后,编写下面的Python聊天测试代码,让用户在控制台输入问题,实现实时交互:
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()
运行这段代码,根据提示输入问题“LangChain是什么?”,输出结果如下:
===== 离线AI聊天助手(输入exit退出)=====
请输入问题:LangChain是什么?
AI思考中...
AI回复:Langchain 是一个基于 PyTorch 的开源语言模型推理框架,用于构建和训练大型的预训练模型。它提供了一个简单的 API 来处理输入数据,然后返回文本或代码作为输出。
通过调用LangChain的执行链,一个简单的AI对话功能已经跑通。接下来,我们还将继续探索如何给AI对话添加记忆功能,让模型能够记住上下文,实现更自然、连贯的连续对话。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:天学会AI应用开发:LangChain封装AI执行链要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点帝奥微电子推出DIO20182双通道运算放大器,输入偏置电流低至1pA,静态电流每通道仅300nA,支持1 4V至5 5V宽电压范围,适用于智能手表等便携设备中微弱光电流信号放大,实现血氧饱和度精准检测。
在企服行业对SaaS的争议中,79%从业者依然看好市场前景。成本压力主要来自拓客、履约和回款,这导致了“二分苦八分甜”的格局。为了缓解焦虑,需要采取具体行动,通过云化与协同生态来重塑商业模式,从而减少内耗,实现更健康的增长。
基于Coze平台,结合TextIn专有模型的OCR解析能力与DeepSeek大语言模型的语义理解,构建了零代码文档智能问答Agent。该方案可高效处理合同审核、技术支持等场景,通过工作流实现文档上传、结构解析与精准问答,提升信息检索效率。
字节开源AI开发平台扣子,具备低门槛、多模态交互和字节生态融合优势,支持私有化部署与深度定制,助力企业降本增效、保障数据安全,成为数字化转型新引擎。
- 日榜
- 周榜
- 月榜
热点快看
