03 提示词模板与 Chains
2026/8/5 14:57:38 网站建设 项目流程

tags:/n - langchain

  • 提示词
  • Chains
  • LCEL
  • 面试
    aliases:/n - Prompt Template
  • 链式调用

03 提示词模板与 Chains

一、提示词模板

通过模板将变量插入 Prompt,创建灵活的提示词。

ChatPromptTemplate 示例

""" ChatPromptTemplate 演示 运行方式:python 03_提示词模板.py """fromlangchain_core.promptsimportChatPromptTemplatefromlangchain_openaiimportChatOpenAIimportosfromdotenvimportload_dotenv load_dotenv()# 构造提示词模板chat_prompt_template=ChatPromptTemplate.from_messages([("system","你是一个专业的评论员"),("human","请评价{product}的优缺点,包括{aspect1}和{aspect2}。"),])# 填充变量chat_message_list=chat_prompt_template.invoke({"product":"iPhone 15","aspect1":"性能","aspect2":"外观",})# 调用模型llm=ChatOpenAI(model="qwen-plus",base_url="...",api_key="...")resp=llm.invoke(chat_message_list)print(resp.content)

二、Runnable 接口

LangChain 所有组件都实现了Runnable 接口,统一调用方式。

方法说明
invoke()同步单次调用
ainvoke()异步调用
stream()流式调用
batch()批次调用

三、Chains(链)

3.1 LCEL(LangChain 表达式语言)

使用管道符|将多个 Runnable 组件串联:

""" LCEL 管道式组合演示 运行方式:python 03_LCEL基础.py """fromlangchain_core.promptsimportPromptTemplatefromlangchain_openaiimportChatOpenAIfromlangchain_core.output_parsersimportStrOutputParser llm=ChatOpenAI(model="qwen-plus",base_url="...",api_key="...")prompt_template=PromptTemplate(template="讲一个关于{topic}的笑话",input_variables=["topic"],)parser=StrOutputParser()# LCEL 管道式组合chain=prompt_template|llm|parser# 一次调用,自动串联执行resp=chain.invoke({"topic":"人工智能"})print(resp)

3.2 RunnableParallel(并行执行)

""" RunnableParallel 演示:同一句话翻译成不同语言 运行方式:python 03_RunnableParallel.py """fromlangchain_core.promptsimportPromptTemplatefromlangchain_openaiimportChatOpenAIfromlangchain_core.runnablesimportRunnableParallelfromlangchain_core.output_parsersimportStrOutputParser llm=ChatOpenAI(model="qwen-plus",base_url="...",api_key="...")# 两个并行的翻译链english_chain=(PromptTemplate.from_template("翻译成英文: {topic}")|llm|StrOutputParser())korean_chain=(PromptTemplate.from_template("翻译成韩文: {topic}")|llm|StrOutputParser())# 并行执行map_chain=RunnableParallel(english=english_chain,korean=korean_chain)resp=map_chain.invoke({"topic":"人工智能是一种智能技术"})print(resp)# {'english': '...', 'korean': '...'}

3.3 LCEL 并行语法糖

""" LCEL 并行语法糖:两个模型赏析同一首诗 运行方式:python 03_LCEL并行.py """llm=ChatOpenAI(model="qwen-plus",base_url="...",api_key="...")paragraph_1_chain=(PromptTemplate.from_template("赏析这首诗:{poem}")|llm|StrOutputParser())paragraph_2_chain=(PromptTemplate.from_template("从哲学角度分析这首诗:{poem}")|llm|StrOutputParser())summary_chain=(PromptTemplate.from_template("对比这两种赏析:{paragraph_1} 和 {paragraph_2}")|llm|StrOutputParser())# LCEL 并行语法map_chain={"paragraph_1":paragraph_1_chain,"paragraph_2":paragraph_2_chain,}|summary_chain poem="菩提本无树,明镜亦非台,本来无一物,何处惹尘埃。"resp=map_chain.invoke({"poem":poem})print(resp)

相关笔记

[[01-LangChain概述]] · [[02-Model-IO与模型调用]] · [[04-RAG检索增强]] · [[05-Agents智能体]]

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询