这是一个在AWS上使用 Amazon Bedrock、Amazon OpenSearch 和 RAG 技术的生成式BI应用。
- 系统架构图
- 数据流程图
- Overview
- Prerequisites
- Workshop
- Deployment Steps
- Deployment Validation
- Running the Guidance
- Next Steps
- Cleanup
这是一个在AWS上针对自定义数据源(RDS/Redshift)启用生成式BI功能的框架。它提供以下关键特性:
- 通过自然语言查询自定义数据源的Text-to-SQL功能。
- 用户友好的界面,可添加、编辑和管理数据源、表和列描述。
- 通过集成历史问题答案排名和实体识别来提高性能。
- 自定义业务信息,包括实体信息,公式,SQL样本,复杂业务问题分析思路等。
- 增加agent任务拆分功能,能够处理复杂的归因分析问题。
- 直观的问答界面,可深入了解底层的Text-to-SQL机制。
- 简单的代理设计界面,可通过对话方式处理复杂查询。
截至2024年5月,在 us-west-2 区域使用默认设置运行这个 Guidance 的成本大约为每月$1337.8,处理2000个请求。
下表提供了在美国东部(弗吉尼亚北部)地区部署此 Guidance 时,使用默认参数一个月的样本成本明细。
AWS service | Dimensions | Cost [USD] per Month |
---|---|---|
Amazon ECS | v0.75 CPU 5GB | $11.51 |
Amazon DynamoDB | 25 provisioned write & read capacity units per month | $ 14.04 |
Amazon Bedrock | 2000 requests per month, with each request consuming 10000 input tokens and 1000 output tokens | $ 90.00 |
Amazon OpenSearch Service | 1 domain with m5.large.search | $ 103.66 |
CDK 经过优化,最适合在 Amazon Linux 2023 AMI 上启动。在其他操作系统上部署可能需要额外的步骤。
- VPC
- IAM role with specific permissions
- Amazon Bedrock
- Amazon ECS
- Amazon DynamoDB
- Amazon Cognito
- Amazon OpenSearch Service
- Amazon Elastic Load Balancing
- Amazon SageMaker (Optional, if you need customized models to be deployed)
- Amazon Secrets Manager
us-west-2, us-east-2, us-east-1, ap-south-1, ap-southeast-1, ap-southeast-2, ap-northeast-1, eu-central-1, eu-west-1, eu-west-3, 以及其他支持bedrock的区域
更多更详细的使用说明,请查看下方的Workshop
请按照 CDK Workshop 中的说明安装 CDK 工具包。确保您的环境有权限创建资源。
对于 GenBI 管理员 Web UI,默认密码为[empty],需要为 GenBI 管理员 Web UI 设置密码,您可以修改如下文件
application/config_files/stauth_config.yaml
下面是一个示例
credentials:
usernames:
jsmith:
email: [email protected]
name: John Smith
password: XXXXXX # To be replaced with hashed password
rbriggs:
email: [email protected]
name: Rebecca Briggs
password: XXXXXX # To be replaced with hashed password
cookie:
expiry_days: 30
key: random_signature_key # Must be string
name: random_cookie_name
preauthorized:
emails:
- [email protected]
将密码'XXXXXX'改为哈希密码
使用以下 Python 代码生成 XXXXXX。我们需要 Python 3.8 及以上版本来运行以下代码:
from streamlit_authenticator.utilities.hasher import Hasher
hashed_passwords = Hasher(['password123']).generate()
对于global区别,执行如下命令:
cd generative-bi-using-rag/source/resources
npm install aws-cdk-lib
部署 CDK 堆栈,如果需要,请将区域更改为您自己的区域,例如 us-west-2、us-east-1 等:
export AWS_ACCOUNT_ID=XXXXXXXXXXXX
export AWS_REGION=us-west-2
cdk bootstrap aws://$AWS_ACCOUNT_ID/$AWS_REGION
cdk deploy GenBiMainStack --require-approval never
当部署成功时,您可以看到如下信息
GenBiMainStack.AOSDomainEndpoint = XXXXX.us-west-2.es.amazonaws.com
GenBiMainStack.APIEndpoint = XXXXX.us-west-2.elb.amazonaws.com
GenBiMainStack.FrontendEndpoint = XXXXX.us-west-2.elb.amazonaws.com
GenBiMainStack.StreamlitEndpoint = XXXXX.us-west-2.elb.amazonaws.com
在部署 CDK 堆栈后,等待大约 40 分钟完成初始化。然后在浏览器中打开 Web UI: https://your-public-dns
- 删除CDK堆栈:
cdk destroy GenBiMainStack