Skip to content
rain-knowsPublic

About

Manufacturing cost analysis workspace with deterministic costing and a LangGraph agent runtime

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

CostGraph

用可追溯的成本图,把制造费用还原到每一个产成品批次。

快速开始 · 工作原理 · 项目文档 · 参与贡献 · MIT License

CostGraph 是一个面向制造业的开源成本分析应用。它将采购、生产工艺和实际领用关系组织成成本图,提供产成品批次总览、多口径成本分析、逐笔来源追溯,以及基于 Agent 的自然语言问答和结构化报表。

项目把 AI 与业务事实严格分开:LLM 负责理解问题和组织解释,权限、数据范围、批次关系、状态、金额与舍入均由服务端确定性代码和数据库约束负责。

核心能力

  • 批次级成本图:沿真实采购、工艺事件和领用边追溯多层投入,不以计划 BOM 代替实际发生。
  • 多口径成本分析:同时呈现六类制造成本、料工费和变动/固定成本视图。
  • 可核验的金额计算:全程使用 Decimal,由服务端完成 DAG 校验、成本卷积、分摊和舍入。
  • 可控的 AI 工作流:以单一 LangGraph 工作流完成意图识别、参数澄清、成本查询和报表生成。
  • 持久化运行时:PostgreSQL Run 队列、独立 Worker、租约、重试、Checkpoint、SSE 恢复和原子化产出。
  • 租户与用户隔离:运行数据、产出和成本事实按租户、主体、已发布快照及数据范围过滤。

当前范围

CostGraph 当前聚焦一条可以端到端运行的制造成本分析闭环:

采购 / 工艺事件 -> 实际领用关系 -> 产成品批次 -> 成本卷积 -> 追溯与报表

已实现产成品批次总览、三套成本视图、批次追溯、导入任务审批、Agent 问答,以及展示型和周期对比型结构化报表。库存结存、返工分支、副产品、异常工单、PDF/Excel 导出和多 Agent 编排尚不在当前实现中。

Important

当前仓库处于早期开发阶段,默认配置用于本地演示与验证。用于生产环境前,请自行补充身份认证、密钥管理、网络边界、监控和备份策略。

工作原理

flowchart LR
    UI[React / Vite] --> API[FastAPI API]
    API --> Policy[主体与策略门]
    Policy --> Queue[(PostgreSQL Run Queue)]
    Queue --> Worker[独立 Worker]
    Worker --> Graph[LangGraph 工作流]
    Graph --> Services[领域与服务层]
    Services --> CostDB[(已发布成本快照)]
    Services --> Calc[Decimal 成本卷积]
    Calc --> Artifact[结构化报表与 Trace]
    Artifact --> API
Loading

服务端职责边界如下:

层 主要职责
前端 查询、导航、会话、SSE 状态和可视化
API HTTP/SSE 传输、参数校验和错误映射
领域与服务 权限、数据范围、DAG 校验、成本计算和报表结构
Repository PostgreSQL 查询、隔离、幂等写入和 Run 租约
Runtime / Worker LangGraph 执行、重试、恢复、事件和终态提交

完整边界与数据流见系统架构和数据流。

技术栈

  • 前端:React 18、TypeScript、Vite 7、Tailwind CSS 3、ECharts 6
  • 后端:Python 3.12、FastAPI、Pydantic 2、SQLAlchemy、Alembic
  • Agent:LangGraph、DeepSeek(真实模型验证时可选)
  • 基础设施:PostgreSQL、独立 Worker

快速开始

1. 准备环境

需要:

  • Windows PowerShell 5.1 或 PowerShell 7+
  • Python 3.12
  • Node.js 与 npm
  • 一个可由当前用户创建 schema 的独立 PostgreSQL 数据库

只有真实模型验证需要 DeepSeek API Key;本地成本查询和离线测试不依赖它。

2. 克隆并配置

git clone https://github.com/rain-knows/costgraph.git
cd costgraph
Copy-Item backend\.env.example backend\.env
Copy-Item frontend\.env.example frontend\.env

编辑 backend/.env,至少配置数据库连接:

COST_DATABASE_URL=postgresql+psycopg://user:password@127.0.0.1:5432/costgraph

本地没有 OIDC 身份提供方时,保持 APP_ENV=demo,并在两个环境文件中显式开启本地演示认证:

# backend/.env
LOCAL_DEMO_AUTH_ENABLED=true

# frontend/.env
VITE_LOCAL_DEMO_AUTH=true

这会使用固定的本地演示主体,只适用于本地 demo;staging/production 仍必须配置 OIDC。

如需连接真实模型,再填写 DEEPSEEK_API_KEY。不要提交数据库密码或 API Key。

3. 安装、迁移并导入样例

py -3.12 -m venv backend\.venv
backend\.venv\Scripts\python.exe -m pip install -r backend\requirements.txt

Push-Location backend
.\.venv\Scripts\alembic.exe upgrade head
Pop-Location

$job = backend\.venv\Scripts\python.exe backend\scripts\import_cost_data.py --auto-approve | ConvertFrom-Json
backend\.venv\Scripts\python.exe backend\scripts\inspect_cost_batch.py $job.job_id

导入完成后,应确认任务和批次状态为 published 且 error_rows=0。样例 JSON 只用于导入,不是应用运行时的数据源。

4. 启动应用

.\dev.ps1 start

打开:

常用开发命令:

.\dev.ps1 status
.\dev.ps1 logs -Tail 100
.\dev.ps1 restart
.\dev.ps1 stop

数据库必须由 Alembic 管理。已有旧开发库不会自动升级为当前 baseline,请按照运行手册使用新的专用空库。

项目结构

frontend/        React 应用
backend/         FastAPI、Agent、Worker、Alembic 与测试
data/samples/    仅用于导入的样例成本数据
docs/            按职责拆分的项目事实文档
design-systems/  固定版本的 IBM-inspired 设计资源
scripts/         仓库级质量与文档检查

项目文档

docs/README.md 是项目事实的统一入口,按问题链接到架构、数据、API、运行和治理文档。常用入口:

当前代码、唯一 Alembic baseline、自动化测试和实际运行结果是事实依据;计划文档或截图不能替代当前实现。

开发与验证

$env:PYTHONPATH="$PWD\backend"
backend\.venv\Scripts\python.exe -m pytest backend\tests -q
.\scripts\check_python_quality.ps1

Push-Location frontend
npm test
npm run test:bundle
Pop-Location

.\scripts\check_docs_sync.ps1
git diff --check

未配置 TEST_COST_DATABASE_URL 时,PostgreSQL 集成测试会明确跳过;离线 Fixture 与 Eval 通过也不代表真实 DeepSeek 服务可用。完整验证矩阵见运行手册。

参与贡献

欢迎通过 Issues 报告问题、讨论需求或提交改进建议。开始编码前,请先:

  1. 阅读项目事实文档和协作规则。
  2. 确认提议属于当前产品范围;未实现的规划只写入 docs/plans/。
  3. 为行为变更补充相应测试,并同步受影响的原子文档。
  4. 提交前运行仓库验证命令,并在变更说明中列出未执行的检查。

本项目不以向后兼容为目标:废弃的接口、配置和代码路径会直接移除,不新增兼容层或静默回退。

License

除另有注明外,CostGraph 自有代码与文档基于 MIT License 开源。仓库内引入的第三方资源保留各自许可证;例如 design-systems/ibm/ 遵循其目录中的 Apache License 2.0 与来源说明。

About

Manufacturing cost analysis workspace with deterministic costing and a LangGraph agent runtime

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages