LLMChain 是 LangChain 框架中的一个核心组件,用于将大语言模型(LLM)与提示词模板(Prompt Template)组合起来,形成可复用的对话链。它让你可以方便地定义输入输出格式,并自动处理模型调用和结果解析。

主要功能

  • 模板化调用:将提示词模板和 LLM 绑定,形成标准化的调用接口。
  • 自动格式化:根据模板自动格式化输入,调用模型,返回结果。
  • 链式处理:可以作为更复杂链(Chain)的组成部分,支持多步骤处理。

标题应用场景

  • 标准化问答接口
  • 多轮对话管理
  • 复杂任务分解
  • 批量数据处理

典型用法

# LLMChain 最常用的链,适合单输入单输出的场景

from langchain.chains import LLMChain  # 导入链
from langchain_openai import ChatOpenAI  # 导入腾讯混元模型的封装
from langchain.prompts import PromptTemplate  # 导入提示词模板
import os
from pydantic import SecretStr
from dotenv import load_dotenv

load_dotenv()  # 自动加载 .env 文件,便于管理密钥

# 初始化混元大模型,需在.env中配置HUNYUAN_API_KEY
llm = ChatOpenAI(
    api_key=SecretStr(os.environ.get("HUNYUAN_API_KEY", "")),  # 读取API密钥
    base_url="https://api.hunyuan.cloud.tencent.com/v1",  # 腾讯混元API地址
    model="hunyuan-lite",  # 指定模型
    temperature=0,  # 结果更稳定
)

# 构建提示词模板
prompt_template = "帮我给{food}想三个不同的菜品做法?"

# 创建LLMChain对象,串联大模型和提示词
llm_chain = LLMChain(
    llm=llm, 
    prompt=PromptTemplate.from_template(prompt_template),
    verbose=True # 是否开启日志,便于调试
)

# 执行链,传入参数
llm_chain({"food": "西红柿"})

结果:

> Entering new LLMChain chain...
Prompt after formatting:
帮我给西红柿想三个不同的菜品做法?

> Finished chain.

{'food': '西红柿',
 'text': '当然可以,以下是三个不同的西红柿菜品做法:\n\n1. 西红柿炒鸡蛋:\n所需材料:西红柿2个,鸡蛋3个,盐适量,糖适量,葱适量。\n步骤:\n- 鸡蛋打入碗中搅拌均匀;\n- 西红柿洗净切块;\n- 热锅凉油,油热后倒入打好的鸡蛋液,用铲子快速搅拌,使鸡蛋凝固成小块,炒至两面金黄色后盛出备用;\n- 锅中再加一些油,放入西红柿块,加入适量的糖,用中小火慢慢翻煮,使西红柿出汁;\n- 当西红柿煮至软烂,汤汁变多时,加入炒好的鸡蛋,加入适量的盐调味,翻煮一会儿使鸡蛋充分吸收西红柿的汤汁;\n- 最后撒上葱花即可出锅。\n\n2. 西红柿炖牛腩:\n所需材料:牛腩500克,西红柿2个,洋葱1个,盐适量,糖适量,生抽适量,老抽适量,八角适量,桂皮适量,香叶适量。\n步骤:\n- 牛腩洗净切块,用清水浸泡半小时,去除血水;\n- 西红柿洗净切块,洋葱切块备用;\n- 热锅凉油,放入切好的牛腩块,翻炒至表面微黄;\n- 加入切好的洋葱块,继续翻炒至洋葱变软;\n- 加入适量的水,放入八角、桂皮和香叶,大火烧开后转小火慢慢炖煮;\n- 当牛腩炖至七八分熟时,加入切好的西红柿块,继续炖煮;\n- 当西红柿煮至软烂,汤汁变多时,加入适量的盐、糖和生抽调味,继续炖煮至牛腩熟透;\n- 最后盛出即可。\n\n3. 西红柿凉拌:\n所需材料:西红柿2个,黄瓜1根,盐适量,糖适量,醋适量,生抽适量,香油适量,葱花适量。\n步骤:\n- 西红柿洗净切块,黄瓜洗净切片备用;\n- 将西红柿和黄瓜放入盆中,加入适量的盐、糖、醋、生抽和香油拌匀;\n- 拌匀后加入切好的葱花,再次拌匀即可出锅。\n\n以上三个菜品都是非常简单又美味的西红柿菜品,你可以根据自己的口味和喜好选择尝试。'}

这段代码演示了 LangChain 中最基础的 LLMChain 使用方式:通过PromptTemplate.from_template() 创建一个包含变量占位符 {food} 的提示词模板,然后使用 LLMChain 将腾讯混元大模型(ChatOpenAI)与这个模板绑定,形成可复用的单输入单输出处理单元,当传入具体参数(如 {“food”: “西红柿”})时,系统会自动将变量替换到模板中并调用大模型生成对应的菜品做法建议。技术要点包括:使用 SecretStr 安全封装 API 密钥,通过 load_dotenv() 自动加载环境变量,设置 temperature=0 确保输出一致性,启用 verbose=True 进行执行过程监控,以及通过 PromptTemplate 实现模板化提示词管理,这种模式为后续更复杂的链式处理奠定了基础。

LLMChain 是 LangChain 的基础构建块,让你可以轻松地将提示词模板和大语言模型组合,形成可复用、标准化的 AI 应用组件。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐