【AI】Langchain框架学习02

langchain expression language(LCEL)

  • 串行简单链条
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from config.load_key import load_key
from langchain_openai import ChatOpenAI

# 提示词模板
prompt_template = ChatPromptTemplate.from_messages([
("system","Translate the following from English into {language}"),
("user", "{text}")
])

#构建阿里云百炼大模型客户端
llm = ChatOpenAI(
    model="qwen-plus"
    base_url "https://dashscope_aliyunes_com/compatible-mode/v1",
    openai_api_key=load_key("BAILIAN_API_KEY"),
)

# 结果解析器 StrOutputParser会AIMessage转换成为str,实际上就是获取AIMessage的content属性。
parser = StrOutputParser()
#构建链
chain = prompt_template |llm | parser
#直接调用链
print(chain.invoke({"text":"nice to meet you"."language":"chinese"}))

# 继续构建更复杂的链
analysis_prompt = ChatPromptTemplate.from_template("我应该怎么回答这句话?{talk} 。给我一个五个字以内的示例")
chain2 = {"talk":chain} | analysis_prompt | llm | parser
print(chain2.invoke({"text":"nice to meet you", "language":"chinese"}))
  • 并行复杂链条
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnableMap, RunnableLambda, RunnableWithMessageHistory

# 提示词模板
prompt_template_zh = ChatPromptTemplate.from_messages([
("system","Translate the following from English into Chinese"),
("user", "{text}")
])

prompt _template_fr = ChatPromptTemplate.from_messages([
("system","Translate the following from English into French"),
("user", "{text}")
])

# 构建链
chain_zh = prompt_template_zh | llm | parser
chain_fr = prompt_template_fr | llm | parser

#并行执行两个链
parallel_chains = RunnableMap({
"zh_translation": chain_zh
"fr_translation": chain_fr
})

#合并结果
final_ chain = parallel_chains | RunnableLambda(lambda x: f"Chinese: {x['zh_translation']}\nFrench: {x['fr_translation']}")
# 调用链
print(final_chain.invoke({"text": "nice to meet you"})

# 结果同时出现中文翻译与法语翻译
posted @ 2026-07-20 17:25  leah-xx  阅读(8)  评论(0)    收藏  举报