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":"你好啊"}))