langchain-并行LCEL

langchain-并行LCEL

起男 24 2025-05-14

langchain-并行LCEL

from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
import os

from langchain_core.runnables import RunnableMap, RunnableLambda
from langchain_openai import ChatOpenAI
# 大模型
llm = ChatOpenAI(
    api_key=os.environ.get("ALI_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
    model="qwen-max"
)
# 标准输出
output_parser = StrOutputParser()
#模板
prompt_tem_fr = ChatPromptTemplate.from_messages([
    ("system","把对话翻译成法语"),
    ("user","{text}")
])
prompt_tem_en = ChatPromptTemplate.from_messages([
    ("system","把对话翻译成英语"),
    ("user","{text}")
])
#clel Runnable和只有一个方法的类都可用加入链条
chain_fr = prompt_tem_fr|llm|output_parser
chain_en = prompt_tem_en|llm|output_parser
#并行
parallel_chains = RunnableMap({
    "fr":chain_fr,
    "en":chain_en
})
# 合并结果
final_chain = parallel_chains|RunnableLambda(lambda x : f"英语:{x['en']}\n法语:{x['fr']}")
#调用
print(final_chain.invoke({"text":"你好啊"}))