关于 ragstack
ragstack 是一个基于 AWS 无服务器架构的文档与媒体知识库,支持上传文件、OCR 或转录后进行检索与 AI 问答。它面向希望在 AWS 上自建知识库的团队,按需扩缩至零,无需常驻向量数据库。
主要功能
- 01无服务器架构,可缩减至零
- 02文档 OCR 与音视频转录后纳入知识库
- 03AI 问答并附带来源引用
- 04按时间戳链接定位音视频来源
- 05提供 GraphQL API 与 MCP 服务
适用场景
- 01为团队文档构建可检索的 AI 问答知识库
- 02检索音频或视频内容中的特定片段
- 03在 Claude Desktop 或 Cursor 中查询已上传的知识库
MCP 相关
ragstack-mcp 是一个 MCP 服务,允许 Claude Desktop、Cursor、VS Code 等 MCP 客户端查询 RAGStack 知识库。配置时需要提供 GraphQL 端点和 API 密钥。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
无服务器文档与媒体处理,支持 AI 聊天。缩容至零的架构 —— 无向量数据库费用,无闲置成本。上传文档、图片、视频和音频 —— 使用 OCR 或转录提取文本 —— 通过 Amazon Bedrock 或借助 MCP 使用你的 AI 助手进行查询。
功能
- ☁️ 完全无服务器架构(Lambda、Step Functions、S3、DynamoDB)
- 🧠 全新 Amazon Nova 多模态嵌入,用于文本和图像向量化
- 📄 文档处理与向量化(PDF、图片、Office 文档、HTML、CSV、JSON、XML、EML、EPUB)→ 存储于托管知识库
- 🎬 全新 视频/音频处理 —— 使用 AWS Transcribe 转录语音,可按时间戳搜索
- 💬 带检索增强上下文和来源归属的 AI 聊天
- 📎 可折叠的引用来源,支持可选下载文档
- ⏱️ 全新 带时间戳链接的媒体来源 —— 点击即可从确切位置开始播放
- 🔍 元数据筛选 —— 自动发现文档元数据并筛选搜索结果
- 🎯 为筛选结果提升相关性 —— 优先展示来自元数据筛选的匹配项
- 🔄 知识库重新索引 —— 使用更新后的设置重新生成现有文档的元数据
- 🗑️ 文档管理 —— 在仪表板中重新处理、重新索引或删除文档
- 🌐 适用于任何框架的 Web 组件(React、Vue、Angular、Svelte)
- 🚀 一键部署
- 💰 每月 $7-10(1000 份文档,Textract + Haiku)
在线演示
| 环境 | URL | 凭据 |
|---|---|---|
| 基础流水线 | dhrmkxyt1t9pb.cloudfront.net | [email protected] / Guest@123 |
| 项目展示 | showcase-htt.hatstack.fun | 以访客身份登录 |
基础流水线:核心文档处理工具 —— 上传、OCR 和查询文档。
项目展示:查看 RAGStack 如何驱动一个真实应用。
快速开始
方案 1:一键部署(AWS Marketplace)
仓库正在积极开发中,会经常变动
直接从 AWS 控制台部署——无需本地环境:
- 在 AWS Marketplace 订阅 RAGStack(免费,非必需——如果已订阅,Lambda 角色会在首次运行时自动接受 Bedrock 模型协议)
- 点击此处部署
- 输入堆栈名称(仅限小写,例如 "my-docs")和管理员邮箱
- 点击 Create Stack(部署大约需要 10 分钟)
部署后:
- 查看邮箱获取临时密码(来自 Cognito)
- 前往 CloudFormation → 你的堆栈 → Outputs 标签页,找到 Dashboard URL(
UIUrl)
方案 2:从源码部署
用于自定义或开发:
前置条件:
- 具有管理员权限的 AWS 账户
- Python 3.13+、Node.js 24+
- uv(Python 包管理器)
- AWS CLI、SAM CLI(已配置)
- Docker(用于构建 Lambda 层)
git clone https://github.com/HatmanStack/RAGStack-Lambda.git
cd RAGStack-Lambda
# Install dependencies
uv sync
# Deploy (defaults to us-east-1 for Nova Multimodal Embeddings)
python publish.py \
--stack-name my-docs \
--admin-email [email protected]
方案 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' # Required: lowercase prefix
AdminEmail: [email protected]
Web Component 集成
Web Component 集成指南请参阅 RAGSTACK_CHAT.md。
API 访问
服务端集成使用 API key 认证。从 Dashboard → Settings 获取你的 key。
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 Component 使用 IAM 认证(无需 API key——自动处理)。
每个 UI 标签页都会在可展开区域中显示服务端 API 示例。
MCP 服务(AI 助手集成)
在 Claude Desktop、Cursor、VS Code、Amazon Q CLI 及其他兼容 MCP 的工具中直接使用你的知识库。
# Install (or use uvx for zero-install)
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"
}
}
}
然后自然地提问:"Search my knowledge base for authentication docs"
完整设置说明请参阅 MCP 服务文档。
架构
Upload → OCR → Embeddings → Bedrock KB
↓
Web UI (Dashboard + Chat) ←→ GraphQL API
↓
Web Component ←→ AI Chat with Sources
使用
文档
上传多种格式的文档。自动检测会将其路由到最优处理器:
| 类型 | 格式 | 处理方式 |
|---|---|---|
| 文本 | 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) | 直接复制 |
处理时间:UPLOADED → PROCESSING → INDEXED(文本通常 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+ 种语言)
- 聊天回复中的来源带有时间戳链接
语言和说话人设置请参阅配置。
聊天
就你的内容提问。来源会显示答案的出处。
文档
- 配置 - 设置、配额、API 密钥与文档管理
- 嵌套堆栈部署 - 作为更大规模 CloudFormation 堆栈的一部分进行部署
- 图片上传 - 图片上传与说明文字生成
- 网页抓取 - 抓取网站
- 元数据筛选 - 自动发现元数据并筛选结果
- 聊天组件 - 随时随地嵌入聊天
- API 参考 - GraphQL API 文档
- 架构 - 系统设计与 API 参考
- 开发 - 本地开发
- 迁移 - 版本迁移指南
- 故障排除 - 常见问题
- 库参考 - lib/ragstack_common 的公开 API
开发
npm run check # Lint + test all (backend + frontend)
部署选项
直接部署
# Full deployment (defaults to us-east-1)
python publish.py --stack-name myapp --admin-email [email protected]
# Skip dashboard build (still builds web component)
python publish.py --stack-name myapp --admin-email [email protected] --skip-ui
# Skip ALL UI builds (dashboard and web component)
python publish.py --stack-name myapp --admin-email [email protected] --skip-ui-all
# Enable demo mode (rate limits: 5 uploads/day, 30 chats/day; disables reindex/reprocess/delete)
python publish.py --stack-name myapp --admin-email [email protected] --demo-mode
发布到 AWS Marketplace(维护者)
更新一键部署模板:
python publish.py --publish-marketplace
此命令会打包应用并上传到 S3,用于一键部署。
注意: 目前需要 us-east-1(Nova Multimodal Embeddings)。当其他区域可用时,请使用
--region <region>。
致谢
本项目灵感来自:
- Accelerated Intelligent Document Processing on AWS - AWS Solutions Library 参考架构
- docs-mcp-server - 用于文档搜索的 MCP 服务
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。