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

依托 Amazon Bedrock 生成式 AI 能力,结合 Slack 生态与亚马逊云科技服务构建企业级图像生成 App 的全流程解析

依托 Amazon Bedrock 生成式 AI 能力,结合 Slack 生态与亚马逊云科技服务构建企业级图像生成 App 的全流程解析

前言

生成式 AI 技术加速渗透企业业务的当下,Slack 作为主流协作平台,与亚马逊云科技结合成为企业高效落地 AI 应用的重要方向。本文以 “企业级 Slack 图像生成助手 App” 为实践载体,聚焦 Amazon Bedrock 的生成式 AI 能力,从平台特性解析、架构方案设计,到全流程部署实操展开阐述,为企业快速搭建安全、高效、可扩展的 AI 驱动型协作应用提供清晰指引。

全新免费套餐(Free Tier 2.0)

在这里插入图片描述

亚马逊云科技 Free Tier 2.0 是旧版免费套餐的升级版本,旨在助力开发者与企业低成本上手云服务、拉动海外区账户注册,其设免费与付费两种计划,抵扣金可集中投用刚需服务,避免旧版配额浪费问题,免费计划零花费试用,付费计划支持全量服务,还覆盖多主流场景,兼顾零风险体验与多元使用需求

套餐形态灵活,成本可控:注册时可选免费或付费计划。免费计划提供最长 6 个月或抵扣金用完的 “零花费试用”,避免误扣,付费计划支持全量 150 + 服务,优先用抵扣金抵扣,超出按需计费,两种计划均含抵扣金、短期及永久免费服务

抵扣金机制优化,资源不浪费:新用户最高获$200抵扣金,注册得$100,完成 5 个指定任务再得 $100,抵扣金可集中投用刚需服务,不同于旧版按服务配额分配、未用配额易浪费的情况,资源利用更高效

用户价值高,场景覆盖广:用户可零风险体验云服务,无需担心意外扣费;6 个月免费计划与 12 个月抵扣金有效期提供充足缓冲,永久免费服务可长期使用,且覆盖多类主流场景,满足学习、实验与初步生产需求

Amazon Bedrock 介绍

Amazon Bedrock 是亚马逊云科技推出的完全托管生成式 AI 平台,通过单一 API,集成 AI21 Labs、Anthropic、Meta 等顶尖厂商的高性能基础模型,涵盖文本、图像生成等多领域,企业能按需选择,无服务器架构免去基础设施管理麻烦,借助微调和检索增强生成技术,可利用自有数据定制模型,具备安全隐私保障,支持专用安全连接,符合多项合规标准,让企业在生成式 AI 应用开发中,得以高效、安全地调用多元模型能力

模型多元调用便捷:集成 AI21 Labs、Anthropic 等多家顶尖厂商模型,覆盖文本、图像多领域,通过单个 API 即可按需调用,还能灵活切换,同步最新版本,开发适配模型更高效

安全合规保障有力:符合多项常见合规标准,满足 HIPAA、GDPR 要求,经 CSA STAR 2 级认证数据传输与存储均加密,可自建密钥,搭配 Amazon PrivateLink 建立专用安全连接,严守数据安全

无服务器定制灵活:采用无服务器架构,免基础设施运维。支持可视化操作,运用微调和 RAG 技术,基于自有数据定制专属模型,贴合企业业务需求

解决方案概述

在这里插入图片描述

该架构呈现 Slack App 依托亚马逊云科技完整流程,简洁高效且功能明确,Slack App 作为用户入口发起请求,经 Amazon Route 53 解析域名定位服务,Amazon CloudFront 加速生成图片等静态内容传输,生成的图片存储于 Amazon S3,后端由 Secrets Manager 保障敏感信息安全,Amazon API Gateway 转发请求至 Amazon Lambda 处理业务逻辑,数据则用 Amazon DynamoDB 实现高并发、低延迟存储。同时可借助 Amazon Bedrock 及 Stability AI SDXL 模型实现 AI 图像生成,CloudFormation 则通过模板化实现资源自动化管理,助力架构便捷部署与扩展

高效低运维:采用 Lambda 无服务器架构,无需预置和管理服务器,大幅降低运维成本与复杂度,搭配 CloudFormation 实现基础设施自动化部署,资源创建与扩展高效便捷,减少人工操作失误

安全与性能兼顾:通过 Secrets Manager 安全管理密钥等敏感信息,规避数据泄露风险,依托 CloudFront 全球分发网络加速静态资源传输,结合 DynamoDB 高并发、低延迟特性,保障用户交互与数据读写的流畅体验

功能扩展性强:基于亚马逊云科技丰富服务生态,可灵活集成 Bedrock 及 Stability AI SDXL 等 AI 模型实现图像生成能力,同时 S3、DynamoDB 等服务支持按需扩容,能轻松应对业务规模增长与功能迭代需求

前提准备:亚马逊云科技注册流程

Step.1 登录官网

登录亚马逊云科技官网,填写邮箱和账户名称完成验证(注册亚马逊云科技填写 root 邮箱、账户名,验证邮件地址,查收邮件填验证码验证,验证通过后设 root 密码并确认)

在这里插入图片描述

Step.2 选择账户计划

选择账户计划,两种计划,按需选"选择免费计划 / 选择付费计划"继续流程

  • 免费(6 个月,适合学习实验,含$200抵扣金、限精选服务,超限额或到期可升级付费,否则关停)
  • 付费(适配生产,同享$200 抵扣金,可体验全部服务,抵扣金覆盖广,用完按即用即付计费)

在这里插入图片描述

Step.3 填写联系人信息

填写联系人信息(选择使用场景,填联系人全名、电话,选择所在国家地区,完善地址、邮政编码,勾选同意客户协议,点击继续 进入下一步)

在这里插入图片描述

Step.4 绑定信息

绑定相关信息,选择国家地区,点击"Send code"收验证码填写,勾选同意协议后,点击"验证并继续"进入下一步

在这里插入图片描述

Step.5 电话验证

电话验证填写真实手机号,选择验证方式,完成安全检查,若选语音,网页同步显 4 位数字码,接来电后输入信息,再填收到的验证信息,遇问题超 10 分钟收不到可返回重试。

在这里插入图片描述

Step.6 售后支持

售后支持:免费计划自动获基本支持,付费计划需选支持计划(各计划都含客户服务,可访问文档白皮书,按需选后点 “完成注册”,若需企业级支持可了解付费升级选项,确认选好即可完成整个注册流程 )

在这里插入图片描述

基于 Amazon Bedrock 构建 Slack 图像生成助手 App

1、创建 Slack App(Slack 工作区中创建一个新的 Slack 应用程序,启用"im:history"、“chat:write” 和"commands"作用域)

在这里插入图片描述

2、选择要将应用程序安装到的工作区,将以下 yaml 格式的 template 的内容复制到文本框中(在 YAML 选项卡内),然后单击下一步

display_information:name: SDXL
features:app_home:home_tab_enabled: truemessages_tab_enabled: falsemessages_tab_read_only_enabled: falsebot_user:display_name: SDXLalways_online: false
oauth_config:scopes:bot:- im:read- im:write- chat:write- app_mentions:read- im:history- incoming-webhook
settings:event_subscriptions:request_url: https://tobemodified.combot_events:- app_home_opened- app_mention- message.imorg_deploy_enabled: falsesocket_mode_enabled: falsetoken_rotation_enabled: false

在这里插入图片描述

3、查看配置,然后单击Create,完成 App 创建后,查看 Signing Secret,接下来会通过 Cloudformation 保存到 Secret Manager 中

在这里插入图片描述

4、选择左边栏 OAuth & Permissions,点击 Install to Workspace,然后点击 Allow

在这里插入图片描述

5、查看生成的 OAuth Token,接下来会通过 Cloudformation 保存到 Secret Manager 中

在这里插入图片描述

6、创建 Amazon 云服务

在这里插入图片描述

7、Stack 创建完成后,复制 SlackAPIGatewayEndpoint

在这里插入图片描述

8、将 SlackAPIGatewayEndpoint 配置为事件订阅的请求 URL,替换模版中的默认值,如果显示 Verified 表示 Slack App 连接 Lambda 函数成功,点击 Save Changes

在这里插入图片描述

9、Lambda 函数将处理来自 Slack 的事件,调用 Amazon Bedrock 生成图像,并将图像上传到 S3 存储桶,该函数首先验证 Slack 签名以确保请求来自 Slack。然后,处理 URL 验证挑战或实际的 Slack 消息事件。对于消息事件,它会将客户端消息 ID 和时间戳写入 DynamoDB 表,以防止重复处理

import json
import boto3
# import ...def handler(event, context):event_body = json.loads(event.get("body"))response = None# Verify the Slack signatureif not verify_slack_signature(event['headers'], event['body']):return {'statusCode': 401,'body': json.dumps({'error': 'Invalid Slack signature'})}if event_body.get("type") == "url_verification":response = {'statusCode': 200,'body': event_body['challenge']}else:client_msg_id = event_body['event']['client_msg_id']try:table.put_item(Item={'client_msg_id': client_msg_id,'timestamp': int(time.time())  # Add a timestamp for replay attack prevention},ConditionExpression='attribute_not_exists(client_msg_id)')response = handle_message(event_body)except ClientError as e:if e.response['Error']['Code'] != 'ConditionalCheckFailedException':return {'statusCode': 200,'body': json.dumps('Event already processed')}return response

10、handle_message 函数提取实际的消息文本,调用 call_bedrock 函数生成图像,并将生成的图像 URL 发送回 Slack 频道

def handle_message(slack_body):slack_text = slack_body.get('event').get('text')slack_user = slack_body.get('event').get('user')channel = slack_body.get('event').get('channel')pattern = r'<@\w+>\s*(.+)'match = re.search(pattern, slack_text)if match:slack_text = match.group(1)image_url = call_bedrock(slack_text)data = {'channel': channel,'blocks': [{"type": "section","text": {"type": "mrkdwn","text": f"<@{slack_user}> Generated Image:"}},{"type": "image","image_url": image_url,"alt_text": "Generated Image"}]}headers = {'Authorization': f'Bearer {slack_token}', 'Content-Type': 'application/json'}http.request('POST', slack_api_url, headers=headers, body=json.dumps(data))return {'statusCode': 200, 'body': json.dumps({'msg': "message received"})}

11、call_bedrock 函数调用 Amazon Bedrock 服务生成图像,并将生成的图像上传到 S3 存储桶,并返回 CloudFront 分发的图像 URL

def call_bedrock(question):client = boto3.client("bedrock-runtime")model_id = "stability.stable-diffusion-xl-v1"native_request = {"text_prompts": [{"text": question}],"style_preset": "photographic","seed": random.randint(0, 4294967295),"cfg_scale": 10,"steps": 30,}request = json.dumps(native_request)try:response = client.invoke_model(modelId=model_id, body=request)except Exception as e:print(f"Error calling Bedrock AI model: {e}")return "Sorry, I'm having trouble processing your request right now."model_response = json.loads(response["body"].read())base64_image_data = model_response["artifacts"][0]["base64"]image_key = f"{S3_PREFIX}{str(uuid.uuid4())}.png"s3_client.put_object(Bucket=S3_BUCKET_NAME,Key=image_key,Body=base64.b64decode(base64_image_data),ContentType="image/png")image_url = f"https://{CLOUDFRONT_NAME}/{image_key}"return image_url

总结

本文围绕 “依托 Amazon Bedrock 构建企业级 Slack 图像生成助手 App” 展开全流程解析,介绍 Amazon Bedrock 多元模型调用、安全合规、无服务器定制的核心优势,阐述基于亚马逊云科技多服务的架构方案及高效低运维、安全性能兼顾、功能扩展性强的特点,通过 11 个关键步骤详细拆解了 App 从 Slack 配置、亚马逊云科技资源创建到代码实现的落地过程,整体方案不仅充分发挥了 Amazon Bedrock 的生成式 AI 能力,还借助 Slack 生态与亚马逊云科技服务的协同,为企业提供了一套安全、高效、可落地的 AI 驱动型协作应用搭建路径,助力企业快速将生成式 AI 技术融入日常协作场景,降低技术落地门槛与运维成本。

http://www.dtcms.com/a/442307.html

相关文章:

  • 设计师可以做兼职的网站国外优惠卷网站如何做
  • 小企业常用的进销存软件有哪些
  • Filebeat+Kafka+ELK 日志采集实战
  • 『C++成长记』一颗会搜索的二叉树
  • 【经验分享】JWE 详解:比 JWT 更安全的令牌技术
  • 【连载6】数据库未来发展趋势展望,附例子,避坑指南以及面试题
  • 【深度学习计算机视觉】09:语义分割和数据集——核心概念与关键技术解析
  • 直播网站建设重庆数据分析师35岁以后怎么办
  • 【Ray大模型分布式训练】
  • 浦东做营销网站天津网站建设制作
  • 网站建设网银江西门户网站建设
  • [初学C语言]C语言数据类型和变量
  • 资源提示符
  • 人机协同如何突破功能分配的 “天花板”?
  • Spring Cloud Netflix Ribbon:微服务的客户端负载均衡利器
  • Docker 数据卷与存储机制(持久化与共享实战)
  • 做环评工作的常用网站电商网站分析
  • 【常用字符串相关函数】
  • unsigned 是等于 unsigned int
  • 营销型企业网站建设案例网站建设功能分为几种
  • 2058. 找出临界点之间的最小和最大距离
  • Leetcode 347. 前 K 个高频元素 堆 / 优先队列
  • python 做网站 案例那个网站专利分析做的好
  • 获得场景视频API开发(01):CC视频平台分片上传服务的设计与实践
  • Spring Boot整合缓存——Ehcache缓存!超详细!
  • 数据结构 之 【LRU Cache】(注意list的splice接口函数)
  • 专门做封面的网站免费做网站怎么做网站吗
  • 25秋新三上语文1-8单元作文习作指导含填空练习+三年级上册语文各单元习作范文/写作技巧/填空练习+完整电子版可下载打印
  • 拥抱终端:Linux 新手命令行入门指南
  • wordpress 512做网站优化的协议书