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

在哪里建立个人网站/百度官方电话号码

在哪里建立个人网站,百度官方电话号码,opencms 做的网站,南昌网站建设公司资讯前言: 在上一篇文章中,我们初步探索了 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://www.whsansanxincailiao.cn/news/32030310.html

相关文章:

  • 做旅游网站的产品经理如何/软文拟发布的平台与板块
  • 汕头网站建设制作公司/无代码免费web开发平台
  • 响应式网站开发源码/网店运营教学
  • wordpress首页主题/seo也成搜索引擎优化
  • wordpress怎样分类目录添加标签/seo网址
  • iis默认网站打不开/网站建设技术解决方案
  • 公司申请网站建设申请理由/站内推广的方法和工具
  • 学会网站开发有什么好处/如何在微信上做广告
  • 做盗版小说网站赚钱嘛/写软文的平台有哪些
  • 平面设计素材网站排名/国内比百度好的搜索引擎
  • 网页设计基础课程设计/seo客服
  • 新手做站必看 手把手教你做网站/windows优化大师怎么彻底删除
  • 彩票网站做一级代理犯法吗/徐州自动seo
  • 如何把做的网站变成链接/seo友情链接
  • seo网站推广助理/seo搜索引擎优化工资
  • 北京培训机构/关闭站长工具seo综合查询
  • wordpress上传视频 http错误/湖南企业竞价优化公司
  • 做网站就上凡科建设/武汉seo推广优化
  • 播放器网站怎么做/微信公众号运营
  • 绵阳 网站 建设/自助建站网站哪个好
  • 做头像网站有哪些/长沙seo全网营销
  • 企业网站怎么做毕业设计/全球最受欢迎的网站排名
  • 中国工程监理人才网/武汉seo广告推广
  • wordpress hack 主题/seo综合查询网站
  • wordpress配置多语言/关键词搜索排名优化
  • 优客逸家网站源码/黑龙江新闻
  • 描述网站建设的基本流程/seo服务方案
  • wordpress 文件上传功能/百度seo排名优化价格
  • 沥林行业网站建设/百度统计工具
  • 工信委网站建设方案/电商运营方案计划书