大模型应用的最佳实践Chains, SequentialChain使用示例

2024-05-14 22:04

本文主要是介绍大模型应用的最佳实践Chains, SequentialChain使用示例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

各种chain的介绍

  • 串联式编排调用链:SequentialChain

    • 流水线 胶水代码逻辑处理
    • 具备编排逻辑 串行 one by one的调用
    • 上一个chain的输出 作为 下一个chain的输入
  • 超长文本的转换 Transform Chain

    • pdf文件处理
    • 提供了套壳的能力 将python处理字符串的能力 套用进来 完成数据的格式化处理
  • 实现条件判断的路由链:RouterChain

    • 复杂逻辑 条件判断
    • 组合routerchain 目标链 通过条件判断 选择对应的目标链进行调用

Sequential Chain

串联式调用语言模型(将一个调用的输出作为另一个调用的输入)。

顺序链(Sequential Chain )允许用户连接多个链并将它们组合成执行特定场景的流水线(Pipeline)。有两种类型的顺序链:

  • SimpleSequentialChain:最简单形式的顺序链,每个步骤都具有单一输入/输出,并且一个步骤的输出是下一个步骤的输入。
  • SequentialChain:更通用形式的顺序链,允许多个输入/输出。

示例- 使用 SimpleSequentialChain 实现戏剧摘要和评论(单输入/单输出

image.png

chain1 定义 synopsis_chain

这是一个 LLMChain,用于根据剧目的标题撰写简介

python
复制代码
# 这是一个 LLMChain,用于根据剧目的标题撰写简介。llm = OpenAI(temperature=0.7, max_tokens=1000)template = """你是一位剧作家。根据戏剧的标题,你的任务是为该标题写一个简介。标题:{title}
剧作家:以下是对上述戏剧的简介:"""prompt_template = PromptTemplate(input_variables=["title"], template=template)
synopsis_chain = LLMChain(llm=llm, prompt=prompt_template)
chain2 定义review chain

这是一个LLMChain,用于根据剧情简介撰写一篇戏剧评论。

image.png

python
复制代码
# 这是一个LLMChain,用于根据剧情简介撰写一篇戏剧评论。
# llm = OpenAI(temperature=0.7, max_tokens=1000)
template = """你是《纽约时报》的戏剧评论家。根据剧情简介,你的工作是为该剧撰写一篇评论。剧情简介:
{synopsis}以下是来自《纽约时报》戏剧评论家对上述剧目的评论:"""prompt_template = PromptTemplate(input_variables=["synopsis"], template=template)
review_chain = LLMChain(llm=llm, prompt=prompt_template)

SimpleSequentialChain 完整流程图

image.png

完整代码示例

ini
复制代码
import os
from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChainfrom langchain.chains import SimpleSequentialChainapi_key = 'sk-xxx'
os.environ["OPENAI_API_KEY"] = api_keyserp_api = 'xxx'
os.environ["SERPAPI_API_KEY"] = serp_apillm = OpenAI(model_name="gpt-3.5-turbo-instruct", temperature=0.7, max_tokens=1000)def get_synopsis_chain():# 这是一个 LLMChain,用于根据剧目的标题撰写简介。template = """你是一位剧作家。根据戏剧的标题,你的任务是为该标题写一个简介。标题:{title}剧作家:以下是对上述戏剧的简介:"""prompt_template = PromptTemplate(input_variables=["title"], template=template)synopsis_chain = LLMChain(llm=llm, prompt=prompt_template)return synopsis_chaindef get_review_chain():# 这是一个LLMChain,用于根据剧情简介撰写一篇戏剧评论。# llm = OpenAI(temperature=0.7, max_tokens=1000)template = """你是《纽约时报》的戏剧评论家。根据剧情简介,你的工作是为该剧撰写一篇评论。剧情简介:{synopsis}以下是来自《纽约时报》戏剧评论家对上述剧目的评论:"""prompt_template = PromptTemplate(input_variables=["synopsis"], template=template)review_chain = LLMChain(llm=llm, prompt=prompt_template)return review_chaindef main():# 这是一个SimpleSequentialChain,按顺序运行这两个链synopsis_chain = get_synopsis_chain()review_chain = get_review_chain()overall_chain = SimpleSequentialChain(chains=[synopsis_chain, review_chain], verbose=True)review = overall_chain.run("三体人不是无法战胜的")print(review)if __name__ == "__main__":main()

输出内容 image.png

示例-使用 SequentialChain 实现戏剧摘要和评论(多输入/多输出)

image.png

python
复制代码
import os
from langchain_openai import OpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChainfrom langchain.chains import SequentialChainapi_key = 'sk-xx'
os.environ["OPENAI_API_KEY"] = api_keyserp_api = 'xxx'
os.environ["SERPAPI_API_KEY"] = serp_apillm = OpenAI(model_name="gpt-3.5-turbo-instruct", temperature=0.7, max_tokens=1000)def get_synopsis_chain():# # 这是一个 LLMChain,根据剧名和设定的时代来撰写剧情简介。template = """你是一位剧作家。根据戏剧的标题和设定的时代,你的任务是为该标题写一个简介。标题:{title}时代:{era}剧作家:以下是对上述戏剧的简介:"""prompt_template = PromptTemplate(input_variables=["title", "era"], template=template)# output_keysynopsis_chain = LLMChain(llm=llm, prompt=prompt_template, output_key="synopsis", verbose=True)return synopsis_chaindef get_review_chain():# 这是一个LLMChain,用于根据剧情简介撰写一篇戏剧评论。template = """你是《纽约时报》的戏剧评论家。根据该剧的剧情简介,你需要撰写一篇关于该剧的评论。剧情简介:{synopsis}来自《纽约时报》戏剧评论家对上述剧目的评价:"""prompt_template = PromptTemplate(input_variables=["synopsis"], template=template)review_chain = LLMChain(llm=llm, prompt=prompt_template, output_key="review", verbose=True)return review_chaindef main():# 这是一个SimpleSequentialChain,按顺序运行这两个链synopsis_chain = get_synopsis_chain()review_chain = get_review_chain()m_overall_chain = SequentialChain(chains=[synopsis_chain, review_chain],input_variables=["era", "title"],# Here we return multiple variablesoutput_variables=["synopsis", "review"],verbose=True)result = m_overall_chain({"title":"三体人不是无法战胜的", "era": "二十一世纪的新中国"})print(result)if __name__ == "__main__":main()

输出结果

image.png

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

在这里插入图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

在这里插入图片描述

这篇关于大模型应用的最佳实践Chains, SequentialChain使用示例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989977

相关文章

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

SpringBoot应用中出现的Full GC问题的场景与解决

《SpringBoot应用中出现的FullGC问题的场景与解决》这篇文章主要为大家详细介绍了SpringBoot应用中出现的FullGC问题的场景与解决方法,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录Full GC的原理与触发条件原理触发条件对Spring Boot应用的影响示例代码优化建议结论F

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

Python Transformer 库安装配置及使用方法

《PythonTransformer库安装配置及使用方法》HuggingFaceTransformers是自然语言处理(NLP)领域最流行的开源库之一,支持基于Transformer架构的预训练模... 目录python 中的 Transformer 库及使用方法一、库的概述二、安装与配置三、基础使用:Pi

Python 中的 with open文件操作的最佳实践

《Python中的withopen文件操作的最佳实践》在Python中,withopen()提供了一个简洁而安全的方式来处理文件操作,它不仅能确保文件在操作完成后自动关闭,还能处理文件操作中的异... 目录什么是 with open()?为什么使用 with open()?使用 with open() 进行

关于pandas的read_csv方法使用解读

《关于pandas的read_csv方法使用解读》:本文主要介绍关于pandas的read_csv方法使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录pandas的read_csv方法解读read_csv中的参数基本参数通用解析参数空值处理相关参数时间处理相关

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例

MySQL 分区与分库分表策略应用小结

《MySQL分区与分库分表策略应用小结》在大数据量、复杂查询和高并发的应用场景下,单一数据库往往难以满足性能和扩展性的要求,本文将详细介绍这两种策略的基本概念、实现方法及优缺点,并通过实际案例展示如... 目录mysql 分区与分库分表策略1. 数据库水平拆分的背景2. MySQL 分区策略2.1 分区概念

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地