Bedrock RAG QA Assistant 是基于 Amazon Bedrock 构建的检索增强生成(RAG)问答服务。它使用 Titan Embeddings 做检索,通过 Bedrock 的 Converse API 生成回答,使用 ChromaDB 做向量存储,并通过 Lambda 和 API Gateway 配合 Terraform 提供无服务器部署路径。该项目的设计目标是让用户提出问题,并得到基于自己文档的回答并附带引用来源,可以本地运行,也可以在 AWS 上以无服务器方式部署。 仓库提供两种使用同一份代码的部署形态。本地/API 形态用 uvicorn 运行 FastAPI 应用,而无服务器形态通过 Mangum 把同一个 FastAPI 应用封装给 Lambda,前面接 API Gateway,用 Terraform 配置资源,并通过 S3 暂存部署包。技术栈包括:用于嵌入的 Amazon Bedrock Titan Embed Text v2、用于跨 Claude 或 Nova 的、与服务商无关的生成的 Bedrock Converse API、作为向量存储的 ChromaDB、用于 API 的 FastAPI + Uvicorn、作为无服务器运行时的 AWS Lambda(通过 Mangum)+ API Gateway,以及作为基础设施即代码的 Terraform。 该项目展示了 Amazon Bedrock 嵌入与生成、RAG 流水线设计、提示词工程、用于无服务器 AWS 部署的基础设施即代码(IAM 限定到 Bedrock 推理配置文件 ARN)、真实的部署问题排查、API 设计、自动化测试和 CI。它包含 Streamlit 演示界面、使用 mock Bedrock 调用的 pytest 测试,以及涵盖架构、快速开始和 API 参考的文档。路线图列出了:将 ChromaDB 换成 OpenSearch Serverless、增加流式响应、增加重排序、多格式摄取,以及在 API Gateway 路由上添加 API 密钥/使用计划。
团队用 Bedrock RAG QA Assistant 提问,并获得基于自己文档、附带引用来源的回答。
团队用它运行本地 FastAPI API 来进行 RAG 查询。
团队用它把同一个 FastAPI 应用以无服务器方式部署到 AWS Lambda 和 API Gateway。
团队用它通过一个环境变量在 Claude 和 Nova 之间切换生成服务商。
团队用它在 ChromaDB 中存储并搜索文档嵌入。
团队用它通过 Terraform 配置 Lambda、API Gateway、IAM 和 S3 暂存。
团队用它在使用 mock Bedrock 调用且无需 AWS 凭据的情况下运行 CI 测试。
团队用它把示例文档摄取到 ChromaDB 中。