当前位置: 首页 > wzjs >正文

兰溪市网站建设公司360免费建站官方

兰溪市网站建设公司,360免费建站官方,设计配色的网站,网站建设需要哪些步骤前言: 在上一篇文章中,我们初步探索了 LangChain 的基础链式操作——LLMChain。它巧妙地将大语言模型(LLM)与提示模板(Prompt Template)相结合,为模型交互逻辑的封装提供了一种简洁而高效的方式…

前言:

在上一篇文章中,我们初步探索了 LangChain 的基础链式操作——LLMChain。它巧妙地将大语言模型(LLM)与提示模板(Prompt Template)相结合,为模型交互逻辑的封装提供了一种简洁而高效的方式。

然而,LangChain 的强大之处远不止于此。在 LLMChain 的基础上,LangChain 还提供了众多实用的 Chain 工具,其中 Sequential Chain 尤为引人注目。Sequential Chain 可以被视为一种高级的工作流工具,它专为那些需要多步骤连续处理的大语言模型任务量身定制。

在现实的工作场景中,我们常常会遇到这样的情况:任务的完成并非仅仅依靠简单的问答就能达成,而是需要经过一系列复杂的逻辑推理和信息处理步骤。Sequential Chain 正是为解决这一难题而生。它能够将这些分散的步骤有序地串联起来,使得每一步的输出无缝地成为下一步的输入,从而实现整个任务的连贯处理。无论是对复杂问题进行逐步拆解、逐层提取关键信息,还是进行多阶段的推理分析,Sequential Chain 都能大显身手,极大地提高工作效率,为完成多步骤任务提供坚实有力的支撑。

在 LangChain 的 Sequential Chain 设计中,主要存在两种类型:

     SimpleSequentialChain :它适用于单一输入和输出的场景,每个链仅处理一个输入,并基于此生成一个输出。
     SequentialChain:这种类型能够处理多个输入和多个输出,从而可以胜任更复杂的任务逻辑和数据流情况。

借助这两种链类型,LangChain 有能力灵活地应对从简单到复杂的多步骤任务,为开发者构建基于大语言模型的工作流提供高效的工具支持。

1:Simple Sequential Chain

Simple Sequential Chain 是 LangChain 中一种较为基础的链式结构,主要用于将多个链依次串联起来。其工作流程是,第一个链接收输入,经过处理后生成输出,这个输出随即作为第二个链的输入,以此类推,直至最后一个链生成最终的结果。

从图中可以看出,整个流程是线性和连续的,非常适合处理单一输入和单一输出的简单任务场景。通过这种方式,任务被分解为多个独立的步骤,易于管理和调试,同时保持逻辑的清晰性和处理的高效性。

接下来我们尝试调用这个链-还是要先导入必要的库

import os

from langchain_community.chat_models.tongyi import ChatTongyi

from langchain.chains import LLMChain

from langchain.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate

from langchain.memory import ConversationBufferMemory

from langchain.chains import SimpleSequentialChain

# 设置 API 密钥

os.environ["DASHSCOPE_API_KEY"] = 'sk-63f00f6776fd4f64beb06ed5edf197eb'

# 初始化通义千问模型

llm = ChatTongyi()

# 第一个提示模板,用于生成公司名称

first_prompt = ChatPromptTemplate.from_template(

    "用一句话描述一个制作 {product} 的公司最合适的名称是什么?"

)

# 链 1:根据产品生成公司名称

chain_one = LLMChain(llm=llm, prompt=first_prompt)

# 第二个提示模板,用于生成公司描述

second_prompt = ChatPromptTemplate.from_template(

    "为以下公司写一段 20 个词的描述:{company_name}"

)

# 链 2:根据公司名称生成公司描述

chain_two = LLMChain(llm=llm, prompt=second_prompt)

# 第三个提示模板,用于生成广告语

third_prompt = ChatPromptTemplate.from_template(

    "根据以下公司描述生成一句创意广告语:{company_description}"

)

# 链 3:根据公司描述生成广告语

chain_three = LLMChain(llm=llm, prompt=third_prompt)

# 构建包含三个链的 SimpleSequentialChain

overall_simple_chain = SimpleSequentialChain(

    chains=[chain_one, chain_two, chain_three],  # 将新链加入到链的顺序中

    verbose=True# 输出详细日志

)

# 输入产品信息,运行整个链

prodcut = '裤子'

print(overall_simple_chain.run(product))

从这里我们可以看出,利用这个SimpleSequentialChain链可以轻松构建出完整的工作流程。以总结一篇论文为例,我们的目标并不是简单地让大模型直接总结整篇文章,而是将任务拆解成更细的步骤:先让模型分别总结第一段、第二段和第三段的内容,然后再对这些部分的总结进行汇总。通过这种将复杂问题逐步拆解的方式,可以显著提升模型的回复质量和能力,确保结果更加精准和全面。

2:   Sequential Chain

     SequentialChain 是 LangChain 中一种功能强大的链式结构,相较于 SimpleSequentialChain,它提供了更高的灵活性和复杂性。SequentialChain 允许多个链并行处理不同的输入,并且能够将多个输出进行合并或分别传递到后续的链中。从流程设计的角度来看,SimpleSequentialChain 只支持单一的线性顺序,而 SequentialChain 则支持更复杂的流程设计,可以满足更广泛的业务需求。这种设计使得 SequentialChain 在处理复杂的多步骤任务时更加高效和灵活,能够更好地适应各种复杂的场景和任务需求。

具体来说,SequentialChain 比 SimpleSequentialChain 的优势在于:

  输入灵活性 :SequentialChain 支持用户同时传递多个输入,这些输入可以分别进入不同的链条。例如,用户可以将不同的数据集或参数分别传递给 Chain 1 和 Chain 3。
  输出管理 :每个链的输出不仅可以作为下一个链的输入,还可以分发到多个后续链。例如,Chain 2 和 Chain 3 的输出都可以传递给 Chain 4。
  多路合并:最后的链(如 Chain 4)可以整合来自多个链条的结果,生成最终输出。这种设计使得 SequentialChain 在处理复杂的多步骤任务时更加灵活和强大,能够更好地适应各种复杂的场景和任务需求。

假如我们希望按着图片上的模式来进行定制Sequential Chain的话,第一步其实还是要先把SequentialChain导入

以下是一个完整示例:

import os

from langchain_community.chat_models.tongyi import ChatTongyi

from langchain.chains import LLMChain

from langchain.prompts import ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate

from langchain.chains import SequentialChain

# 设置 API 密钥

os.environ["DASHSCOPE_API_KEY"] = 'sk-63f00f6776f197ea'

# 初始化通义千问模型

llm = ChatTongyi()

# 提示模板 1:将评论翻译成中文

first_prompt = ChatPromptTemplate.from_template(

    "将以下评论翻译成中文:"

    "\n\n{Review}"

)

# 链 1:输入= Review,输出= Chinese_Review

chain_one = LLMChain(

    llm=llm,

    prompt=first_prompt,

    output_key="Chinese_Review"# 定义输出变量的名称

)

# 提示模板 2:总结中文评论

second_prompt = ChatPromptTemplate.from_template(

    "请用一句话总结以下评论:"

    "\n\n{Chinese_Review}"

)

# 链 2:输入= Chinese_Review,输出= summary

chain_two = LLMChain(

    llm=llm,

    prompt=second_prompt,

    output_key="summary"# 定义输出变量的名称

)

# 提示模板 3:检测评论的语言

third_prompt = ChatPromptTemplate.from_template(

    "以下评论是用什么语言写的:\n\n{Review}"

)

# 链 3:输入= Review,输出= language

chain_three = LLMChain(

    llm=llm,

    prompt=third_prompt,

    output_key="language"# 定义输出变量的名称

)

# 提示模板 4:根据总结和语言生成回复

fourth_prompt = ChatPromptTemplate.from_template(

    "根据以下总结和指定语言,以一个商家的视角,写一条对应语言的后续回复(最终只需要输出一条即可):"

    "\n\n总结: {summary}\n\n语言: {language}"

)

# 链 4:输入= summary, language,输出= followup_message

chain_four = LLMChain(

    llm=llm,

    prompt=fourth_prompt,

    output_key="followup_message"# 定义输出变量的名称

)

# 创建 SequentialChain,将所有链条整合为一个流程

# 输入= Review,输出= Chinese_Review, summary, followup_message

overall_chain = SequentialChain(

    chains=[chain_one, chain_two, chain_three, chain_four],  # 定义链条的顺序

    input_variables=["Review"],  # 定义输入变量

    output_variables=["Chinese_Review", "summary", "followup_message"],  # 定义输出变量

)

# 提取评论并运行链条

review = 'I love this product!'  

print(overall_chain(review))

通过这个例子,我们可以清晰地看到,由于这种链式结构允许自定义内部的输入和输出,它非常适合处理复杂的任务场景,例如:

1. 整合来自不同渠道的信息(如数据分析和用户行为总结)。
2. 将任务分解为多个步骤进行处理,然后汇总结果。
3. 创建复杂的工作流程,例如多步骤问答、多段落文本生成和多维度分析等。

这种链式结构的灵活性和可定制性使其成为处理复杂任务的理想选择,能够有效地支持各种高级应用场景。

小结

SimpleSequentialChain 适合于那些需要单一输入和单一输出的场景,任务按照顺序一步步处理,每一步的输出直接成为下一步的输入。这种结构简单直观,非常适合那些逻辑线性、步骤明确且清晰的工作流程。

而 SequentialChain 则是对 SimpleSequentialChain 的扩展,它支持多输入和多输出,提供了更大的灵活性。这种结构能够将复杂的任务分解成多个部分,并通过明确的输入输出变量将它们连接起来,从而实现更复杂的流程设计和任务整合。

通过这两种链结构,我们不仅可以清晰地定义任务逻辑,还可以灵活地适应不同的场景需求。例如,在多语言客户服务场景中,SequentialChain 可以轻松地完成从评论翻译、总结、语言检测到个性化回复生成的整个工作流程。

总的来说,无论是处理单一线性任务,还是需要多路并行和输出合并的复杂流程,LangChain 提供的链式工具都能显著提高大语言模型任务的执行效率和可扩展性,为开发者构建智能化工作流提供了强有力的支持。


文章转载自:

http://iFtF92dy.LwLnw.cn
http://p3pdPruG.LwLnw.cn
http://sD4plqIO.LwLnw.cn
http://m1tJATT0.LwLnw.cn
http://UPG39uw9.LwLnw.cn
http://b9xPXzMZ.LwLnw.cn
http://0G7oejl1.LwLnw.cn
http://ctoTQbAe.LwLnw.cn
http://f82Feg31.LwLnw.cn
http://YcfzXlcY.LwLnw.cn
http://UoDorjX5.LwLnw.cn
http://49h8TkV3.LwLnw.cn
http://f3RxjHcz.LwLnw.cn
http://ZM2aIc7u.LwLnw.cn
http://UNxYGP0x.LwLnw.cn
http://YRmsNBjD.LwLnw.cn
http://jNQdVslK.LwLnw.cn
http://7vyStShT.LwLnw.cn
http://cJIXduBq.LwLnw.cn
http://Y5cNb7AR.LwLnw.cn
http://Rm8ZFuFM.LwLnw.cn
http://QtKz8kze.LwLnw.cn
http://CazfKEmo.LwLnw.cn
http://vVVh1j6r.LwLnw.cn
http://s7PfjqTL.LwLnw.cn
http://fbviF2wc.LwLnw.cn
http://6JkYd0qF.LwLnw.cn
http://VytlxtO0.LwLnw.cn
http://4tx66t7o.LwLnw.cn
http://hdVAn9dN.LwLnw.cn
http://www.dtcms.com/wzjs/611551.html

相关文章:

  • 曰本免费一级a做爰视频网站大连哪家科技公司做网站好
  • 邢台开发区建设小学官方网站济南网络营销策划公司
  • 推销商务网站的途径有哪些php做网站需要的技术
  • 好网站123汕头seo排名收费
  • 网站 建设 内容wordpress宝塔开启ssl
  • 西安建设公司网站南通个人网站建设
  • 贵阳网站建设哪家网络管理系统逻辑上的四个组成
  • 上海网站建设哪家便宜怎么做网站流量
  • 五百人建站wordpress 质感主题
  • 怎么查询网站备案信息查询网站建设管理员
  • 建设网站答题赚钱惠州企业自助建站
  • 美橙互联送的网站源代码丽江市住房和城乡建设局网站
  • 网站建设要钱么简单的管理系统
  • 做哪些网站好html自学怎么入门
  • 网站正在建设中模板下载广州营销型网站建设培训
  • 福田网站设计处理广州静态管理
  • 怎么做点击文字进入的网站wordpress文章加密
  • 做百度推广需要有网站吗浙江高速建设公司网站
  • 云图书馆平台网站建设大连建设网网址
  • 公司做网站的费用怎么记账全国企业信息网查询平台官网
  • 西安建站模板郴州市做网站
  • 科技馆网站建设方案天津高端模板建站
  • 舟山网站开发南昌网站建设的流程
  • 网站关键词如何收录常用网站建设软件
  • 网站开发的未来发展趋势最新的新闻 最新消息
  • 云南商城网站建设网站域名如何使用
  • 如何建设网站安全建工行业建设标准网站
  • 以投资思维做网站柳江企业网站建设公司
  • 深圳网站备wordpress主题 时间轴
  • 西安市建设干部学校网站最新网络游戏排行榜2021前十名