三步掌握国家中小学智慧教育平台电子课本PDF免费下载技巧
2026/8/5 14:57:16
tags:/n - langchain
通过模板将变量插入 Prompt,创建灵活的提示词。
""" 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)LangChain 所有组件都实现了Runnable 接口,统一调用方式。
| 方法 | 说明 |
|---|---|
invoke() | 同步单次调用 |
ainvoke() | 异步调用 |
stream() | 流式调用 |
batch() | 批次调用 |
使用管道符|将多个 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)""" 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': '...'}""" 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智能体]]