【AI落地应用实战】Amazon Bedrock +Amazon Step Functions实现链式提示(Prompt Chaining)

一、链式提示 Prompt Chaining架构

Prompt Chaining 是一种在生成式人工智能(如大型语言模型)中广泛使用的技术,它允许用户通过一系列精心设计的提示(Prompts)来引导模型生成更加精确、丰富且符合特定需求的内容。

Prompt Chaining 的核心思想在于不是一次性给出一个复杂的指令或问题给模型,而是将大问题分解成一系列更小、更具体的子问题,每个子问题通过生成的文本作为下一个提示的基础,逐步引导模型向目标输出逼近。这种链式提示的方式能够有效提高模型的响应质量,减少错误,并使得生成的内容更加符合用户的预期。

Prompt Chaining的工作原理基于两个关键要素:任务分解和对话连续性。

  1. 任务分解:首先,用户需要将复杂的任务或问题分解成一系列可管理的子任务或子问题。这些子任务应该按照逻辑顺序排列,以便逐步引导模型向最终目标靠近。
  2. 对话连续性:在分解任务后,用户会向模型发送第一个提示,并接收其生成的响应。然后,用户会根据这个响应设计下一个提示,这个提示可能会引用或反馈前一个响应的内容,以保持对话的连续性和一致性。这个过程会重复进行,直到达到满意的结果。

在这里插入图片描述
以上是一个示例的链式提示架构,首先其设计了一系列通过Amazon Step Functions定义的状态机。每个状态机代表了一个示例或任务的执行流程,它能够引导程序完成特定的任务或操作。这些状态机会调用Amazon Bedrock中的基础模型来生成对应内容,最后Streamlit应用程序将展示这些状态机执行的结果,并展示给用户。

二、实践:Amazon Bedrock +Amazon Step Functions实现链式提示

2.1、依赖安装与代码准备

首先进入亚马逊云科技海外区官网,点击亚马逊控制台,搜索Cloud 9,打开Cloud9 控制台界面:
在这里插入图片描述
进入控制台后,点击打开Cloud9 IDE:
在这里插入图片描述
进入Cloud9 IDE之后,首先在终端中输入sudo npm install -g npm更新NPM,然后,使用npm安装cdk:
在这里插入图片描述
然后,使用git克隆,下载本次实践的代码:

git clone https://github.com/aws-samples/build-genai-agent-workflows-with-step-functions

出现build-genai开头的文件夹时,表明代码拉取成功:
在这里插入图片描述
最后,cd进入build-genai-agent-workflows-with-step-functions文件夹,并安装对应依赖:

cd build-genai-agent-workflows-with-step-functions/
pip install -r requirements.txt

在这里插入图片描述

2.2、通过 CDK 部署项目

CDK(AMazon Cloud Development Kit)是一个开源的软件开发框架,其提供了一种声明式的方法来构建、编写和部署基础设施,使得基础设施的创建和管理更加可靠、可重复和易于维护。
准备好代码和依赖后,下面在终端输入:cdk deploy --all开始部署,部署大致需要 5 分钟:
在这里插入图片描述
部署成功后,会给出预览的网址,单击链接,打开项目地址:
在这里插入图片描述
项目的效果如下,其将故事撰写任务分为多个子任务,首先为故事生成角色列表,然后为故事生成每个角色的情节,之后使用角色描述和情节生成短篇故事。
在这里插入图片描述

2.3、打开 Step Functions监控工作流运行细节

以上项目已经为我们成功创建了 Step Functions工作流,我们可以打开控制台,搜索并点击进入Step Functions:
在这里插入图片描述
在Step Functions控制台中找到PromptChainDemo-StoryWriter状态机:
在这里插入图片描述
打开任务,并查看streamlit开头的任务:
在这里插入图片描述
在图表视图里,就可以看到工作流的具体流程以及正在发生的事件:
在这里插入图片描述

故事撰写的完整工作流图示如下:

在这里插入图片描述
整个工作流设计了一个使用人工智能辅助创作故事的过程,其中包括角色和故事情节的生成、迭代、错误处理、故事合并和最终选择,其中它从“Start”开始,然后进入一系列步骤,每个步骤都以“Generate Characters”或“Generate Character Story Arc”开始,表明这些步骤是关于角色生成或故事情节构建的。整个工作流的连贯分析如下:

  1. 角色生成:首先,工作流涉及角色的创建,包括准备消息、格式化提示、调用模型、提取模型响应和准备输出。创作者需要准备输入给模型的信息,然后使用模型生成角色,最后提取并准备这些角色的输出。
  2. 角色故事映射:在角色生成后,有一个“Character Story Map”步骤,这意味着将角色与他们的故事线进行关联或映射。
  3. 故事情节生成:与角色生成类似,故事情节的生成也包括准备消息、格式化提示、调用模型、提取模型响应和准备输出。
  4. 合并角色故事:在角色和故事情节生成之后,有一个“Merge Character Stories”步骤,将不同角色的故事线合并成一个连贯的故事。
  5. 故事完整性:接下来是“Generate the Full Story”,这包括准备消息、包括之前的消息、格式化提示、调用模型、提取模型响应和准备输出,主要用于整合之前生成的所有元素,以形成一个完整的故事。
  6. 选择故事:最后,有一个“Select Story”步骤,这可能意味着从生成的多个故事中选择一个最终版本。

至此,我们就成功部署了一个基于 Amazon Bedrock,Amazon Cloud9,Amazon Step Functions,Amazon Lambda 和 Amazon Fargate 等 Serverless服务搭建的工作流。这个工作流使用Prompt Chaining将一个宏大的创作任务——Story Writer——分解成一系列角色创建、情节设计等步骤。每个步骤都通过调用LLM并传递特定的Prompt来执行。把一个复杂的任务分解成多个步骤,多次调用大语言模型,稳定可靠的完成任务。

现在进入亚马逊云科技海外区官网,除了免费的Amazon Step Functions、Amazon Lambda,还有丰富的亚马逊云服务器(Amazon EC2)、亚马逊云科技云存储(Amazon S3),负载均衡(Elastic Load Balancing),虚拟服务器VPS(Amazon Lightsail)、视频会议(Amazon Chime )等等100 余种云产品或服务免费试用。

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

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

相关文章

获取手机当前信号强度(dbm/asu值)解决 getGsmSignalStrength()总是返回99问题

能看到这篇文章说明网上哪些获取 (dbm/asu值)不适合你,不是他们的代码不正确,而是不符合你的情况 比如安卓6获取android手机信号强度 可以看这篇文章 https://blog.csdn.net/sinat_31057219/article/details/81134030 当然如果你…

vue 一个数组 获取最大值与最小值

<template><div>最小值: {{ minValue }}最大值: {{ maxValue }}</div> </template><script> export default {data() {return {numbers: [10, 2, 33, 4, 55, 6]};},computed: {minValue() {return Math.min(...this.numbers);},maxValue() {retu…

OAuth 2.0 介绍和使用示例

OAuth 2.0 是一种开放标准授权协议,用于安全地让第三方应用访问用户在另一个服务上的资源,而无需暴露用户的凭证。OAuth 2.0 主要用于 Web 应用程序、桌面应用程序、移动应用程序和物联网设备等场景。 OAuth 2.0 的含义 资源所有者(Resource Owner):通常是最终用户。客户…

计算机网络网络安全

1、计算机网络通信面临的两大威胁 被动攻击&#xff08;截获/流量分析&#xff09;&#xff1a;攻击者从网络上窃听他人的通信内容 主动攻击&#xff1a; &#xff08;1&#xff09;篡改&#xff08;更改报文流&#xff09;&#xff1a;攻击者恶意篡改网络上传送的报文。 &…

Javaweb项目|springboot医院管理系统

收藏点赞不迷路 关注作者有好处 文末获取源码 一、系统展示 二、万字文档展示 基于springboot医院管理系统 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringSpringMVCMyBatisVue 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 编号&#xff1a;…

Source insight 配置代码格式化

代码格式化工具&#xff1a;Artistic Style Files Download 配置 Source Insight 添加 Astyle 命令 Tools --> Custom Commands -->Add 在 Run 栏填入格式化命令&#xff1a; "D:\Program Files\astyle-3.5.2-x64\astyle.exe" -A3 -t -xV -w -Y -m0 -p -H …

【Vulnhub系列】Vulnhub_Raven2靶场渗透(原创)

【Vulnhub系列靶场】Vulnhub_Raven2 渗透 原文转载已经过授权 原文链接&#xff1a;Lusen的小窝 - 学无止尽&#xff0c;不进则退 (lusensec.github.io) 一、环境准备 从网盘下载该靶机&#xff0c;在vm中选择【打开】 然后设置好存储路径&#xff0c;开机后检查靶机的网络连…

Redis缓存数据库进阶——Redis缓存数据同步问题(8)

Redis缓存使用问题 数据一致性 只要使用到缓存&#xff0c;无论是本地内存做缓存还是使用 redis 做缓存&#xff0c;那么就会存在数据同步的问题。 我以 Tomcat 向 MySQL 中写入和删改数据为例&#xff0c;来给你解释一下&#xff0c;数据的增删改操作具体是如何进行的。 我…

从入门到精通:电商设计师的职业发展指南

在当今数字时代&#xff0c;电商设计师的作用越来越重要。从电子商务网站的整体造型设计到产品页面的具体布局&#xff0c;他们的工作范围是电子商务企业成功的关键因素之一。然而&#xff0c;并不是每个人都对这个职业有深刻的理解。因此&#xff0c;在本文中&#xff0c;我们…

【Git-驯化】一文学会git中对代码进行存储操作:git stash技巧

【Git-驯化】一文学会git中对代码进行存储操作&#xff1a;git stash技巧 本次修炼方法请往下查看 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合&#xff0c;智慧小天地&#xff01; &#x1f387; 免费获取相关内…

【无标题】DNS域名解析

回顾指令&#xff1a; samba机器&#xff1a; 安装samba Yum -y install samba 自建库&#xff0c;只下载不安装 Yum -y install --downloadonly --downloaddir./soft/ 配置samba Vim /etc/samba/smb.conf [smb_share] comment smb share service path /share/ guest…

linux nginx 修改php.ini 后如何生效

修改php.ini文件后&#xff0c;要使修改生效&#xff0c;你需要重启PHP服务或者重启Nginx&#xff08;如果使用FastCGI&#xff09;。 以下是一些常见的方法来使修改生效&#xff1a; 如果你使用的是PHP-FPM&#xff0c;可以这样做&#xff1a; # 重启PHP-FPM服务 sudo servic…

python爬虫的基础知识

1.学习爬虫的好处 提升编程技能&#xff1a;爬虫开发需要掌握编程基础&#xff0c;特别是网络请求、HTML/CSS/JavaScript解析、数据存储和异常处理等技能。通过学习爬虫&#xff0c;你可以巩固和提升你的编程技能&#xff0c;特别是Python等编程语言的应用能力。 数据驱动决策…

力扣高频SQL 50题(基础版)第二十四题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第二十四题1729.求关注者的数量题目说明实现过程准备数据实现方式结果截图 力扣高频SQL 50题&#xff08;基础版&#xff09;第二十四题 1729.求关注者的数量 题目说明 表&#xff1a; Followers ----------------…

QT--聊天室

一、设计要求 用QT做一个聊天室&#xff0c; 制作一个服务器和客户端。可以进行注册、登录&#xff0c; 登陆成功后可以使用昵称进行发送、接收消息。 能根据昵称、聊天内容查询历史记录&#xff0c;也可以查询全部聊天记录。 。 二、客户端三级ui界面 三、项目代码 //在…

【Redis进阶】集群

1. 集群分片算法 1.1 集群概述 首先对于"集群"这个概念是存在不同理解的&#xff1a; 广义的"集群"&#xff1a;表示由多台主机构成的分布式系统&#xff0c;称为"集群"狭义的"集群"&#xff1a;指的是redis提供的一种集群模式&…

K210视觉识别模块学习笔记8:Mx_yolo3本地模型训练环境搭建_部署模型到亚博canmv(失败)

今日开始学习K210视觉识别模块: 本地模型训练环境搭建 亚博智能 K210视觉识别模块...... 固件库: canmv_yahboom_v2.1.1.bin 本地训练 Mx_yolo3 这里就简单地提示一下下载安装哪些软件&#xff0c;然后主要是使用Mx_yolo3 进行本地训练模型的...... 本文不…

【Android】Fragment的添加

上一篇文章学到了碎片的创建与生命周期&#xff0c;接下来学习碎片的常用操作&#xff0c;其中会用到上一篇文章的三个碎片&#xff0c;就做一个简单的说明吧&#xff1a;LeftFragment&#xff08;包含一个按钮&#xff09;、RightFragment4&#xff08;以粉色为背景的文本&…

跨境电商选品师做好这几个关键点

在当今充满竞争的跨境电商市场上&#xff0c;成为一名成功的选品师并非易事。以下是几个关键点&#xff0c;能够帮助跨境电商选品师做好工作并取得成功。下面老阳为大家总结几点做好跨境选品师的几个关键点&#xff0c;希望对大家有所帮助。 首先&#xff0c;深入市场调研和产品…

学习JavaScript第五天

文章目录 1.HTML DOM1.1 表单相关元素① form 元素② 文本输入框类和文本域&#xff08;input 和 textarea&#xff09;③ select 元素 1.2 表格相关元素① table 元素② tableRow 元素&#xff08;tr 元素&#xff09;③ tableCell 元素 &#xff08;td 或 th&#xff09; 1.3…