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
docker compose up -d postgres redis minio qdrantuv sync
uv run alembic upgrade headuv run uvicorn backend.app.main:app --reload
uv run celery -A worker.app.celery_app worker -l INFOcd frontend
npm install
npm run dev前端联调时建议使用:
VITE_USE_MOCK=false
VITE_API_BASE_URL=http://localhost:8000/api/v1uv 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文件中