Files
cmroubao/README.md
T

4.3 KiB
Raw Blame History

采购自动化验证系统

本项目面向采购管理人员和采购执行人员,目标是将后台采集的商品标题、描述、图片、 数量和预算转成 Android 端可执行的采购任务,并验证 AI 辅助拼多多检索和候选商品 判断是否可靠。

第一版只验证:

后台创建任务
  -> Android App 手动领取
  -> App 本地 VLM 解析图片与文字
  -> 拼多多搜索和候选比较
  -> 停在人工确认位置
  -> 回传结果、截图和失败原因

管理后端只负责任务控制和结果审计,不保存或代理 VLM;App 使用有限离线授权和本地 加密 outbox。MVP 不自动提交订单、不支付、不绕过验证码或平台风控。

目标结构

cmroubao/
├── android-buyer/       # Roubao main 固定 commit 的 Android 基线
├── backend-api/         # Go-Gin API、SQLite、迁移和后续管理页面
├── docs/                # Harness Coding 项目事实和执行约束
├── AGENTS.md            # AI coding agent 权威入口
├── init.ps1             # Windows 标准构建/真机启动入口
└── init.sh              # Unix 等价构建/真机启动入口

管理人员使用 Web 管理端,采购人员使用 Android App;二者共享同一后端、任务数据 和权限体系。验证版已实现 ADMIN 服务端会话、BUYER 账号和预授权设备联合身份, 完整 RBAC 放到验证通过后。

后端采用 Go 1.23.0 + Gin 1.11.0,以 Go Blueprint v0.10.11 为一次性骨架参考, 已收敛出 SQLite、Goose 迁移、健康检查和可关闭的 HTTP Server;业务 API 按 Phase 2 任务逐步加入。

Android 端已核实的 Roubao 上游环境为 Kotlin 1.9.20、JDK 17、Gradle 8.2、 AGP 8.2.0、Android SDK 34,以及 Jetpack Compose Compiler 1.5.5。最低支持 Android 8.0(API 26),目标为 Android 14(API 34)。具体版本和本机环境状态见 docs/03-tech-stack.md 与 docs/current-state.md。

私有样本导入

Set-Location android-buyer
.\gradlew.bat :tools:shopee-importer:run `
  --args="--input ../private-fixtures/shopee --output ../.local/probe-import"
.\gradlew.bat :app:assembleDebug `
  '-PprobeFixturesDir=../.local/probe-import'

普通 .\init.ps1 或不带 -PprobeFixturesDir 的 Debug 构建会清除先前注入的私有 fixture,默认 APK 不携带真实订单资料。

后端运行

在项目根目录可直接使用 Windows 启动脚本。首次运行或更新代码后有 pending migration 时, 显式传入 --migrate;脚本不会隐式改动数据库。

.\start-backend.bat --migrate

后续启动:

.\start-backend.bat

等价的手工命令如下:

Set-Location backend-api
$env:GOTOOLCHAIN = "local"
go run ./cmd/migrate up
$env:CMROUBAO_AUTH_PASSWORD = "至少 6 个 UTF-8 字节"
go run ./cmd/authctl create-user ADMIN admin
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
$env:CMROUBAO_AUTH_PASSWORD = "采购员独立强密码,至少 6 个 UTF-8 字节"
go run ./cmd/authctl create-user BUYER buyer01
Remove-Item Env:CMROUBAO_AUTH_PASSWORD
go run ./cmd/authctl create-device buyer-phone-01
go run ./cmd/api

默认监听 127.0.0.1:8080,SQLite 位于被忽略的 backend-api/var/。另一个终端可 访问 http://127.0.0.1:8080/healthz。可配置项和独立验证命令见 backend-api/README.md。

Debug App 通过 USB 连接本机后先执行 adb reverse tcp:8080 tcp:8080,再在“任务”页使用 http://127.0.0.1:8080、BUYER 账号、设备 ID 和只显示一次的设备密钥登录。 正式版后台地址只接受 HTTPS。App 每次由采购员点击“获取任务”,不会自动领单。

文档入口

Android Phase 0/1、后端 T-201 至 T-205 和 App 接入 T-206 已完成。真实状态以 docs/current-state.md 为准。