README
🚀 无服务器文档与媒体处理,支持AI聊天
本项目提供了一种无服务器的文档和媒体处理方案,结合AI聊天功能。采用零扩展架构,无需支付向量数据库费用,也没有闲置成本。用户可以上传文档、图像、视频和音频,通过OCR或转录提取文本,并使用Amazon Bedrock或通过MCP使用自己的AI助手进行查询。
✨ 主要特性
- ☁️ 全无服务器架构(Lambda、Step Functions、S3、DynamoDB)
- 🧠 新增:用于文本和图像向量化的Amazon Nova多模态嵌入
- 📄 文档处理与向量化(PDF、图像、办公文档、HTML、CSV、JSON、XML、EML、EPUB)→ 存储在托管知识库中
- 🎬 新增:视频/音频处理 - 使用AWS Transcribe转录语音,可按时间戳搜索
- 💬 具有检索增强上下文和来源归因的AI聊天
- 📎 可折叠的来源引用,支持可选的文档下载
- ⏱️ 新增:带有时间戳链接的媒体源 - 点击可在精确位置播放
- 🔍 元数据过滤 - 自动发现文档元数据并过滤搜索结果
- 🎯 过滤结果的相关性提升 - 优先匹配元数据过滤器中的内容
- 🔄 知识库重新索引 - 使用更新的设置为现有文档重新生成元数据
- 🗑️ 文档管理 - 从仪表板重新处理、重新索引或删除文档
- 🌐 适用于任何框架的Web组件(React、Vue、Angular、Svelte)
- 🚀 一键部署
- 💰 每月7 - 10美元(1000份文档,Textract + Haiku)
📦 安装指南
选项1:一键部署(AWS Marketplace)
注意:仓库正在积极开发中,内容可能经常变动
可直接从AWS控制台进行部署,无需本地设置:
- 在AWS Marketplace订阅RAGStack(免费,非必需 - 如果订阅,Lambda角色会在首次调用时自动接受Bedrock模型协议)
- 点击此处进行部署
- 输入堆栈名称(仅支持小写,例如 "my-docs")和管理员电子邮件
- 点击 创建堆栈(部署大约需要10分钟)
部署完成后:
- 查看电子邮件获取临时密码(来自Cognito)
- 转到CloudFormation → 您的堆栈 → 输出 选项卡,找到仪表板URL (
UIUrl)
选项2:从源代码部署
适用于定制或开发:
前提条件:
- 具有管理员访问权限的AWS账户
- Python 3.13+、Node.js 24+
- 已配置的AWS CLI、SAM CLI
- Docker(用于Lambda层构建)
git clone https://github.com/HatmanStack/RAGStack-Lambda.git
cd RAGStack-Lambda
# 创建虚拟环境并安装依赖
python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
pip install -r requirements.txt
# 部署(默认使用us-east-1进行Nova多模态嵌入)
python publish.py \
--project-name my-docs \
--admin-email admin@example.com
选项3:嵌套堆栈部署
将RAGStack作为更大的CloudFormation堆栈的一部分进行部署。详细信息请参阅 嵌套堆栈部署指南。
快速示例:
Resources:
RAGStack:
Type: AWS::CloudFormation::Stack
Properties:
TemplateURL: https://ragstack-quicklaunch-public.s3.us-east-1.amazonaws.com/ragstack-template.yaml
Parameters:
StackPrefix: 'my-app-ragstack' # 必需:小写前缀
AdminEmail: admin@example.com
💻 使用示例
服务器端集成
服务器端集成使用API密钥进行身份验证。从仪表板 → 设置中获取您的密钥。
curl -X POST 'YOUR_GRAPHQL_ENDPOINT' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"query": "query { searchKnowledgeBase(query: \"...\") { results { content } } }"}'
Web组件
Web组件使用IAM身份验证(无需API密钥 - 自动处理)。每个UI选项卡都会在可展开部分显示服务器端API示例。
MCP服务器(AI助手集成)
可在Claude Desktop、Cursor、VS Code、Amazon Q CLI和其他MCP兼容工具中直接使用您的知识库。
# 安装(或使用uvx实现零安装)
pip install ragstack-mcp
将以下内容添加到您的AI助手的MCP配置中:
{
"ragstack-kb": {
"command": "uvx",
"args": ["ragstack-mcp"],
"env": {
"RAGSTACK_GRAPHQL_ENDPOINT": "YOUR_ENDPOINT",
"RAGSTACK_API_KEY": "YOUR_API_KEY"
}
}
}
然后自然地提问:"在我的知识库中搜索身份验证文档"
详细的设置说明请参阅 MCP服务器文档。
📚 详细文档
- 配置 - 设置、配额、API密钥和文档管理
- 嵌套堆栈部署 - 作为更大的CloudFormation堆栈的一部分进行部署
- 网页抓取 - 抓取网站内容
- 元数据过滤 - 自动发现元数据并过滤结果
- 聊天组件 - 在任何地方嵌入聊天功能
- 架构 - 系统设计和API参考
- 开发 - 本地开发
- 故障排除 - 常见问题
- 库参考 - lib/ragstack_common的公共API
🔧 技术细节
架构
上传 → OCR → 嵌入 → Bedrock知识库
↓
Web UI(仪表板 + 聊天) ←→ GraphQL API
↓
Web组件 ←→ 带有来源的AI聊天
使用说明
文档
可上传各种格式的文档。系统会自动检测并路由到最佳处理器:
| 类型 | 格式 | 处理方式 | |------|---------|------------| | 文本 | HTML、TXT、CSV、JSON、XML、EML、EPUB、DOCX、XLSX | 直接提取并进行智能分析 | | OCR | PDF、JPG、PNG、TIFF、GIF、BMP、WebP、AVIF | 使用Textract或Bedrock视觉OCR(WebP/AVIF需要Bedrock) | | 媒体 | MP4、WebM、MP3、WAV、M4A、OGG、FLAC | 使用AWS Transcribe转录 → 分割成30秒片段 → 可按时间戳搜索 | | 直接传递 | Markdown (.md) | 直接复制 |
处理时间:上传 → 处理中 → 已索引(文本通常需要1 - 5分钟,OCR需要2 - 15分钟,媒体需要5 - 20分钟)
图像
可上传带有标题的JPG、PNG、GIF、WebP图像。视觉内容和标题文本均可搜索。
网页抓取
可将网站内容抓取到知识库中。详细信息请参阅 网页抓取。
视频和音频
可上传MP4、WebM、MP3、WAV、M4A、OGG或FLAC文件。使用AWS Transcribe转录语音,并分割成30秒的片段进行搜索。来源包含时间戳(例如 "1:30 - 2:00"),点击链接可在精确位置播放。
特性:
- 说话人分离(识别谁说了什么)
- 可配置语言(支持30多种语言)
- 聊天响应中带有时间戳链接的来源
语言和说话人设置请参阅 配置。
聊天
可对您的内容提问,来源会显示答案的出处。
📄 许可证
文档中未提及许可证相关信息。
开发
npm run check # 对后端和前端进行代码检查和测试
部署选项
直接部署
# 完整部署(默认使用us-east-1)
python publish.py --project-name myapp --admin-email admin@example.com
# 跳过仪表板构建(仍构建Web组件)
python publish.py --project-name myapp --admin-email admin@example.com --skip-ui
# 跳过所有UI构建(仪表板和Web组件)
python publish.py --project-name myapp --admin-email admin@example.com --skip-ui-all
# 启用演示模式(每日上传限制5次,每日聊天限制30次;禁用重新索引/重新处理/删除功能)
python publish.py --project-name myapp --admin-email admin@example.com --demo-mode
发布到AWS Marketplace(维护者)
要更新一键部署模板:
python publish.py --publish-marketplace
此命令会打包应用程序并上传到S3,以便进行一键部署。
注意:目前需要使用us-east-1(Nova多模态嵌入)。当其他区域可用时,可使用
--region <region>。
致谢
本项目受到以下项目的启发:
- Accelerated Intelligent Document Processing on AWS - AWS解决方案库参考架构
- docs-mcp-server - 用于文档搜索的MCP服务器
微信扫一扫