LangChain入门:15.Sequential Chain:顺序链的使用

Sequential Chain是LangChain库中的一个强大工具,它允许我们将多个LLMChain按照特定的顺序连接起来,形成一个处理流程。这种链式结构使得我们可以将一个大任务分解为几个小任务,并依次执行,每个任务的输出成为下一个任务的输入。

示例目标

在这个示例中,我们将构建一个顺序链,目标是:

  1. 让大模型扮演植物学家的角色,提供特定鲜花的知识和介绍。
  2. 接着让大模型扮演鲜花评论者的角色,对鲜花进行评论。
  3. 最后让大模型扮演社交媒体运营经理的角色,撰写一篇鲜花运营文案。
实现步骤
  1. 导入所需的库和模块

    from langchain_openai import ChatOpenAI
    from langchain.chains import LLMChain, SequentialChain
    from langchain.prompts import PromptTemplate
    
  2. 创建第一个LLMChain
    生成鲜花的知识性说明。

    one_template = """
    你是一个植物学家。给定花的名称和类型,你需要为这种花写一个200字左右的介绍。
    花名: {name}颜色: {color}
    植物学家: 这是关于上述花的介绍:
    """
    one_prompt_template = PromptTemplate(template=one_template,input_variables=["name", "color"],
    )
    introduction_chain = LLMChain(llm=llm,prompt=one_prompt_template,output_key="introduction",
    )
    
  3. 创建第二个LLMChain
    根据鲜花的知识性说明生成评论。

    two_template = """
    你是一位鲜花评论家。给定一种花的介绍,你需要为这种花写一篇200字左右的评论。
    鲜花介绍:{introduction}
    花评人对上述花的评论:
    """
    two_prompt_template = PromptTemplate(template=two_template,input_variables=["introduction"],
    )
    review_chain = LLMChain(llm=llm,prompt=two_prompt_template,output_key="review",
    )
    
  4. 创建第三个LLMChain
    根据鲜花的介绍和评论撰写社交媒体文案。

    three_template = """
    你是一家花店的社交媒体经理。给定一种花的介绍和评论,你需要为这种花写一篇社交媒体的帖子,300字左右。
    鲜花介绍:{introduction}花评人对上述花的评论:{review}
    社交媒体帖子:
    """
    three_prompt_template = PromptTemplate(template=three_template,input_variables=["introduction", "review"],
    )
    social_media_chain = LLMChain(llm=llm,prompt=three_prompt_template,output_key="social_post_text",
    )
    
  5. 创建SequentialChain
    将前面三个链串起来。

    overall_chain = SequentialChain(chains=[introduction_chain, review_chain, social_media_chain],input_variables=["name", "color"],output_variables=["introduction", "review", "social_post_text"],verbose=True
    )
    
  6. 调用SequentialChain
    输入花的名称和种类,获取结果。

    result = overall_chain({"name": "玫瑰", "color": "红色"})
    print(result)
    
运行结果

运行上述代码将得到一系列输出,包括植物学家对玫瑰的介绍、鲜花评论者对玫瑰的评论,以及社交媒体运营经理为玫瑰撰写的社交媒体帖子。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/600651.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux:du和df区别

文章目录 1. 概述2. du 命令2. df 命令3. 区别总结 1. 概述 du 和 df 都是 Linux 系统中用于查看磁盘空间使用情况的命令,但它们的功能和用法有所不同。 2. du 命令 du 是 “disk usage” 的缩写,用于显示文件或目录的磁盘使用情况。du 命令用于查看指…

如何用matplotlib画图像的时候使用中文标签名

Matplotlib 中文显示不是特别友好,要在 Matplotlib 中显示中文,我们可以通过两个方法: 下载使用支持中文的字体库。设置 Matplotlib 的字体参数。 下载使用支持中文的字体库: Matplotlib 默认情况不支持中文,我们可以使用以下简…

Disk Drill Enterprise for Mac v5.5.1515数据恢复软件中文版

Disk Drill 是 Mac 操作系统固有的Mac数据恢复软件:使用 Recovery Vault 轻松保护文件免遭意外删除,并从 Mac 磁盘恢复丢失的数据。支持大多数存储设备,文件类型和文件系统。 软件下载:Disk Drill Enterprise for Mac v5.5.1515激…

博士推荐 | 拥有超过10年的数据解决方案经验,数据驱动的决策者

编辑 / 木子 审核 / 朝阳 伟骅英才 伟骅英才致力于以大数据、区块链、AI人工智能等前沿技术打造开放的人力资本生态,用科技解决职业领域问题,提升行业数字化服务水平,提供创新型的产业与人才一体化服务的人力资源解决方案和示范平台&#x…

jupyter python paramiko 网络系统运维

概述 通过使用jupyter进行网络运维的相关测试 设备为H3C 联通性测试 import paramiko import time import getpass import re import os import datetimeusername "*****" password "*****" ip "10.32.**.**"ssh_client paramiko.SSHCli…

【明道云】设置默认值时,发现单选项目无法与文本项目比较

【背景】 新建表单,其中字段B的默认值通过使用字段A在另一张表单B中搜索获得。 字段A在当前表的填写形式是下拉框,而用于比较的表单B的相应字段A1则是文本。因此在建立条件时发现由于组件类型不同,无法选到字段A作为比较条件。 【解决办法】…

基于Difussion图像、视频生成综述

2024年大年初七(02.16)OpenAI 发布视频生成模型 Sora 在各大平台转疯了,和2022年发布ChatGPT3.5时一样的疯狂。在开工第一天,我就去官网上看了 Sora 的技术报告,遗憾的是,在这份技术报告中只披露了一些模型…

rsync+inotify的实时同步

目录 一、inotify 二、rsyncinotify实时同步搭建 1. 实验环境配置 2. 配置 服务端192.168.91.103 1. 修改rsync源服务器配置文件 3. 配置 客户端192.168.91.102 1. 创建文件夹 ​编辑 2. 调整 inotify 内核参数 3. 安装inotify-tools 4. inotify对文件进行监控 5. 测…

新手创业三大法则!2024创业赚钱项目 2024做什么行业前景好!2024适合普通人创业的项目!

第一、寻找痛点。成功的创业项目往往解决了某个现实生活中的痛点。作为新手小白,需要关注自己周围的人们所遇到的问题,并思考通过何种方式来解决这些问题。这样做不仅能提供实际需求,还能使创业项目更有长期性。只有真正了解人们的需求和痛点…

蓝桥杯练习笔记(十八)

蓝桥杯练习笔记(十八) 一、用辅助栈来优化递归深度过大的问题 输入示例 0000100010000001101010101001001100000011 0101111001111101110111100000101010011111 1000010000011101010110000000001011010100 0110101010110000000101100100000101001001 0…

配置 施耐德 modbusTCP 分布式IO子站 PRA0100

模块官方介绍:https://www.schneider-electric.cn/zh/product/BMXPRA0100 1. 总体步骤 2. 软件组态:在 Unity Pro 软件中创建编辑 PRA 模块工程 2.1 新建项目 模块箱硬件型号如下 点击 Unity Pro 软件左上方【新建】按钮,选择正确的 DIO …

【论文解读】大模型事实性调查(上)

一、简要介绍 本调查探讨了大型语言模型(llm)中的事实性的关键问题。随着llm在不同领域的应用,其输出的可靠性和准确性变得至关重要。论文将“事实性问题”定义为llm产生与既定事实不一致的内容的概率。论文首先深入研究了这些不准确性的含义…