无服务器文档处理和语义检索服务

企业级无服务器文档处理和语义检索服务,适用于AWS环境,支持版本感知的文档摄取、异步OCR编排、结构化清单生成和向量存储。

  • by owokit
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 owokit/serverless-kb-mcp

使用说明

无服务器kb-mcp

AWS上的企业无服务器文档摄取和语义检索。

英语| 简体中文

此存储库是一个多表面工作区,而不是一个单一用途的应用程序外壳。

  • Python工作区的根目录为 ocr-service/pyproject.toml 和 ocr-service/uv.lock.
  • 核心后端服务位于 ocr-service/ocr-pipeline/.
  • 基础设施和部署代码在 infra/cdk/.
  • 仅供参考的工作流示例 examples/workflows/workflow_reference_only/.
  • 文档中心位于 docs/.

概览

项目 详细信息
主要入口点 Ingest Lambda
存储库标识 serverless-kb-mcp
Python工作区根目录 ocr-service/
服务源根 ocr-service/ocr-pipeline/
文档中心 docs/README.md
验证模型 GitHub Actions PR工作流程和检查

它提供了什么

  • 具有版本感知功能的文档摄取 version_id 作为主要身份。
  • 具有确定性轮询和结果收集的异步OCR编排。
  • 提取结果、块资产和可重放工件的结构化清单。
  • 用于多模型或多维设置的轮廓隔离嵌入和矢量存储。
  • 查询时间护栏,在返回检索结果之前重新检查对象状态。

存储库形状

存储库是围绕运行时流组织的,而不是一个单一的整体包。

  1. S3 发出文档事件。
  2. S3 Event Notification 将事件传递给 SQS ingest queue.
  3. Ingest Lambda 验证对象版本,应用幂等性检查,并启动 Step Functions Standard.
  4. Step Functions Standard 协调OCR提交、轮询、结果获取、清单生成和嵌入作业调度。
  5. Extract workers将结构化工件持久化到清单桶中。
  6. Embed Lambda 消耗嵌入作业并将向量写入配置的向量后端。

这种布局使公共表面积保持较小,同时在工作流程内保持清晰的操作边界。

服务边界

服务包现在物理上已扎根于 ocr-service/ocr-pipeline/src/serverless_mcp/.

  • ocr-service/pyproject.toml 点 serverless-mcp-service 在 ocr-service/ocr-pipeline/ 源树。
  • ocr-service/ocr-pipeline/README.md 记录包级边界和当前模块布局。
  • ocr-service/ocr-pipeline/src/serverless_mcp/__init__.py 是一个普通的包初始化器,而不是兼容性填充程序。

文档

文件 目的
文档中心 部署、运行时和边界文档的主要索引
服务实现 包级实施说明
开源边界 存储库边界和外部使用限制
部署策略 开源CI和交付模型
简体中文登录页 简体中文登录页面和本地导航

Python工具链

  • 使用 uv sync --locked --project ocr-service 准备Python环境。
  • 使用 uv run --project ocr-service pytest -q, uv run --project ocr-service ruff check .,以及 uv run --project ocr-service python ... 对于默认的本地验证循环。
  • 对待 ocr-service/pyproject.toml 和 ocr-service/uv.lock 作为Python依赖关系的唯一真实来源。
  • 保持日常发展在紫外线路径上;不要重新引入特设 pip 或 venv 引导步骤。

本地化版本

区域设置 输入
英语 README.md
简体中文 i18n/README.zh-CN.md

验证

  • Pull请求通过GitHub Actions工作流和检查进行验证。
  • 基础设施和运行时的更改应继续遵循存储库的记录护栏。
  • 文档更新应使交叉链接与文档中心和语言登录页保持一致。