使用 Amazon Bedrock Stability 生成图片并通过 API 提供服务
Amazon Bedrock 可以画图,我正好需要在网站上调用他来画图,所以就尝试在VPS上搭建了一个代理,提供API和KEY,输入prompt,将图片保存在VPS上,并返回图片的url。我用的就是GCP 300那个免费的美国VPS。
这里将介绍如何使用 Amazon Bedrock 的Stability生成图片,并通过 API 提供服务。下面是我的操作步骤,应该还可以优化和简化,我的步骤包括:
- 申请访问 Amazon Bedrock 基础模型
- 配置 AWS IAM 权限
- 搭建 Flask API 服务
- 使用 systemd 管理服务和 Nginx 反向代理
- 测试 API
1. 申请访问 Amazon Bedrock 基础模型
首先,你需要申请访问 Amazon Bedrock 的基础模型。你可以在 AWS 管理控制台中找到与 Bedrock 相关的服务。确保你选择了适合你需求的区域,例如支持 Stability AI 的区域。
2. 配置 AWS IAM 权限
在 AWS IAM 中创建一个策略,授予 InvokeModel
和 ListFoundationModels
操作权限,允许访问 Amazon Bedrock 服务。具体步骤如下:
- 登录 AWS 管理控制台。
- 打开 IAM 控制台,创建一个新的 IAM 策略。
- 在策略中,选择
Bedrock
服务,授予InvokeModel
和ListFoundationModels
操作权限。 - 配置资源 ARN(Resource ARN)为你需要访问的模型的 ARN,或选择任何资源。
- 将策略与 IAM 用户或角色关联。
3. 安装 AWS CLI 和 Boto3 SDK
在你的 VPS 上,你需要安装 AWS CLI 和 Boto3,以便与 Amazon Bedrock 交互。
安装 AWS CLI 教程:
1 | https://docs.aws.amazon.com/zh_cn/cli/latest/userguide/getting-started-install.html |
配置 AWS CLI:
1 | aws configure |
输入以下信息:
- AWS Access Key ID:
- AWS Secret Access Key:
- Default region name: 选择你的区域,例如
us-east-1
- Default output format:
json
安装 Boto3 SDK:
1 | pip install boto3 |
4. 搭建 Flask API 服务
我们使用 Flask 来创建一个 API 服务,用户可以通过 POST 请求生成图片,并返回图片的 URL。
以下是完整的 Flask 代码:
1 | from flask import Flask, request, jsonify, send_from_directory |
代码说明
generate_image_from_bedrock
:调用 Amazon Bedrock 生成图像。verify_api_key
:验证请求中的 API 密钥。save_image_and_get_url
:将生成的图像保存到本地,并返回图像的 URL。
5. 使用 systemd 和 Nginx 配置反向代理
为了将 API 服务以后台进程运行,并通过 HTTPS 访问,我们需要使用 systemd 和 Nginx 配置。
配置 systemd 服务
创建 systemd 服务文件:
1 | sudo nano /etc/systemd/system/flaskapp.service |
将以下内容粘贴到文件中:
1 | [Unit] |
注意:
- 我们将
ExecStart
设置为/usr/bin/python3 /root/img-web.py
,这里使用了你提供的 img-web.py 的路径。 WorkingDirectory
设置为/root
,因为你的脚本在 root 目录下。User
和Group
都设置为root
,因为你是在 root 用户下操作的。
保存并关闭文件(在 nano 编辑器中,按 Ctrl+X,然后按 Y,最后按 Enter)。
重新加载 systemd 配置:
1 | sudo systemctl daemon-reload |
启用服务,使其在系统启动时自动启动:
1 | sudo systemctl enable flaskapp.service |
启动服务:
1 | sudo systemctl start flaskapp.service |
检查服务状态:
1 | sudo systemctl status flaskapp.service |
配置 Nginx 反向代理
参考我的这篇博客
1 | https://xblog.aptzone.cc/2024/01/26/docker%E4%BB%A5%E5%8F%8Adocker-compose%E7%9A%84%E4%B8%80%E4%BA%9B%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4/ |
6. 测试 API
使用 curl
命令进行测试,发送 POST 请求并查看返回的图像 URL:
1 | curl -X POST http://your-domain.com/generate-image \ |
如果一切顺利,返回的 JSON 会包含图片的 URL。
总结
通过本教程,你可以成功使用 Amazon Bedrock 创建图片,并通过 Flask API 提供服务。你还学会了如何使用 systemd 管理 Flask 服务,并通过 Nginx 配置反向代理,提供一个可以在线访问的 API。
- Title: 使用 Amazon Bedrock Stability 生成图片并通过 API 提供服务
- Author: van
- Created at : 2024-11-17 12:49:11
- Updated at : 2024-11-17 12:58:06
- Link: https://xblog.aptzone.cc/2024/11/17/使用-Amazon-Bedrock-Stability-生成图片并通过-API-提供服务/
- License: All Rights Reserved © van