开启左侧

【LangChain入门 6 Chain组件】单链和多链

[复制链接]
zuo 发表于 昨天 09:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
作者:CSDN博客
一、单链

1.1 LCEL的语法

| 为关键字,使用 | 作为链接符号
  1. from langchain_core.output_parsers import StrOutputParser
  2. from langchain_ollama import ChatOllama
  3. llm = ChatOllama( model="deepseek-r1:7b")
  4. parser = StrOutputParser()# 加了这段后,会讲Chunk类转化成字符串,也就是获取Chunk类中的content内容
  5. chain = prompt | llm | parser  # 使用LCEL语法创建链
  6. response = chain.invoke({"input":"宠物"})print(response)
复制代码
1.2 LLMChain

LLMChain 是 LangChain 中最基本且最常用的链式结构,广泛应用于 LangChain 的其他复杂链和代理程序中。它由以下两个主要部分组成:
    PromptTemplate:用于定义提示模板,将用户输入动态格式化为语言模型能够理解的提示。语言模型(LLM 或聊天模型):用于处理格式化后的提示,并生成响应。
  1. from langchain.chains import LLMChain
  2. from langchain_core.prompts import ChatPromptTemplate
  3. # 1 实例化模型
  4. llm = ChatOllama( model="deepseek-r1:7b")# 2 定义模板
  5. prompt = ChatPromptTemplate.from_template("给我取一个关于{input}的店名")# 3 构建Chain,将大模型与prompt组合在一起
  6. chain = LLMChain(prompt=prompt, llm=llm)# 4 执行Chain
  7. response = chain.invoke({"input":"宠物"})print(response)
  8. input_list =[{"input":"宠物"},{"input":"鲜花"}]
  9. response = chain.apply(input_list)# 批量输出
复制代码
三、多链组装

将多个链条融合在一起
LangChain 提供了强大的多链功能,允许用户通过组合多个链(Chain)来实现复杂的任务。这些链可以按顺序执行,也可以并行执行,从而实现高效的模型协作和协调

  • 串联多个链(Sequential Chains)
    通过 SimpleSequentialChain 或管道操作符 |,可以将多个链按顺序串联起来。前一个链的输出会自动作为下一个链的输入。LangChain 支持并行执行多个链,这在需要同时处理多个任务时非常有用分支和合并(Branching and Merging) LangChain 支持创建复杂的计算图,允许将一个组件的输出分叉为多个组件的输入,并在后续步骤中合并结
  1. from langchain_ollama import ChatOllama
  2. from langchain_core.prompts import ChatPromptTemplate
  3. from langchain.chains import SimpleSequentialChain, LLMChain
  4. prompt = ChatPromptTemplate.from_template("给我取一个关于{input}的店名")
  5. llm = ChatOllama( model="deepseek-r1:7b")
  6. prompt_second = ChatPromptTemplate.from_template("给我的跑车取一个关于{input}的名字")
  7. first_chain = LLMChain(prompt=prompt, llm=llm)# 创建第一个链
  8. second_chain = LLMChain(prompt=prompt_second, llm=llm)
  9. all_chain = SimpleSequentialChain(chains=[first_chain, second_chain],
  10.                                   verbose=True)
  11. response = all_chain.invoke({"input":"狗"})
复制代码
原文地址:https://blog.csdn.net/hjxu2016/article/details/146395479
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行更多+

Powered by Discuz! X3.4© 2001-2013 Discuz Team.( 京ICP备17022993号-3 )