LangChain - 链式调用

一、使用场景

复习下常规调用步骤:

from langchain.chat_models import init_chat_model
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
  1. 生成model
model = init_chat_model("claude-3-5-sonnet-20240620", model_provider="anthropic")
  1. 生成prompt模板
prompt_template = ChatPromptTemplate.from_template("tell me a joke about {topic}")

prompt = prompt_template.invoke({"topic": "bears"}))
# messages=[HumanMessage(content='tell me a joke about bears', additional_kwargs={}, response_metadata={})]
  1. 大模型调用
result = model.invoke(prompt)
  1. 解析输出格式
parser = StrOutputParser()
print(parser.invoke(result))
# Here's a joke about bears: Why don't bears wear shoes?

二、链式调用

LangChain提供链式调用的方法来简化上述代码

chain = prompt_template | model | StrOutputParser()
chain.invoke({"topic": "cat"})

以下是如何再接另一条链的调用方式:

analysis_prompt = ChatPromptTemplate.from_template("is this a funny joke? {joke}")

composed_chain = {"joke": chain} | analysis_prompt | model | StrOutputParser()

composed_chain.invoke({"topic": "bears"})

也可以使用lamda让调用链更美观:

composed_chain_with_lambda = (
    chain
    | (lambda input: {"joke": input})
    | analysis_prompt
    | model
    | StrOutputParser()
)

composed_chain_with_lambda.invoke({"topic": "bears"})

chain的输出会作为输入,嵌入到joke键值对中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值