Skip to content

QueedWen/BDMS

Repository files navigation

BDMS

BDMS 是一个面向招投标场景的 PDF 解析与检索平台,目标是把文档上传、解析、结构化抽取、标签化和语义检索串成一条可追溯的业务链路。

当前仓库已经包含:

  • frontend/:React + TypeScript 前端
  • backend/:FastAPI 后端接口与服务层
  • worker/:Celery 异步任务执行入口
  • docs/:需求输入与功能规格文档

核心能力

  • PDF 文档上传、列表、详情与版本管理
  • PDF 解析、OCR 增强与原始结果留存
  • 结构化切分与标签抽取
  • 向量化与语义检索
  • 从检索结果回溯到来源文档、页码与区域

技术栈

  • Frontend: React + TypeScript + Vite
  • Backend: FastAPI + SQLAlchemy + Alembic + PostgreSQL
  • Worker: Celery + Redis
  • Vector: Qdrant
  • Storage: MinIO
  • Parsing: Docling + OCRmyPDF + PaddleOCR

目录结构

.
├─ backend/                 # 后端 API、服务、数据库迁移、测试
├─ docs/
│  ├─ input/                # 需求输入
│  └─ functional-spec/      # 页面功能规格文档
├─ frontend/                # 前端页面与 API 适配层
├─ infra/                   # 本地基础设施辅助文件
├─ worker/                  # Celery worker 入口
├─ AGENTS.md                # 仓库协作约束
├─ docker-compose.yml       # 本地依赖服务
├─ pyproject.toml           # Python 项目配置
└─ README.md

快速开始

1. 启动基础依赖

docker compose up -d postgres redis minio qdrant

2. 安装 Python 依赖并执行迁移

uv sync
uv run alembic upgrade head

3. 启动后端与 Worker

uv run uvicorn backend.app.main:app --reload
uv run celery -A worker.app.celery_app worker -l INFO

4. 启动前端

cd frontend
npm install
npm run dev

前端联调时建议使用:

VITE_USE_MOCK=false
VITE_API_BASE_URL=http://localhost:8000/api/v1

常用验证命令

uv run pytest -q
uv run python -m backend.app.cli.preflight
cd frontend && npm run lint
cd frontend && npm run build
cd frontend && npm test -- --run

文档入口

  • 后端说明:backend/README.md
  • 前端说明:frontend/README.md
  • 页面功能规格:docs/functional-spec/README.md
  • 接口契约:frontend/api-contracts.md
  • 协作约束:AGENTS.md

当前阶段说明

当前仓库仍处于持续演进阶段。页面功能规格文档已沉淀在 docs/functional-spec/,前后端链路已具备最小联调与验收基础,但具体实现与规格仍在继续补齐。

安全说明

  • 不要把真实 API Key、数据库密码、对象存储密钥提交到仓库
  • 前端只允许持有公开配置,例如 VITE_API_BASE_URL
  • 私密配置应保存在后端环境变量、部署平台 Secret 或本地 .env 文件中

About

BDMS project upload from local workspace

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors