Files
LWLT-AI/mock-business-system/README.md
2026-07-13 19:57:46 +08:00

3.5 KiB
Raw Blame History

业务系统输入解析模块

正式运行时,页面由生产控制平面提供;本目录仍保存现有操作台静态资源和外部解析适配器。任务状态不再以浏览器 localStorage 为权威,必须通过控制平面 API 读取和写入。

操作台不会在页面刷新、插件重连或状态轮询时自动重交 ERP 任务。只有管理员的首次明确确认会申请服务端唯一执行权;领取成功后才向插件下发。领取后的投递超时或 ERP 回执不确定都会进入“待回查”,禁止自动重试。

生产控制平面说明见 ../control-plane/README.md

本模块只负责接收业务员的原始指令,调用已发布的外部 Agent Profile返回现有标准 operation JSON。ERP 填单、浏览器插件和 ERP 提交链路不在本模块的解析调用范围内。

服务端配置

server.mjs 现在只用于解析适配器的本地测试。完整操作台应由根目录的生产控制平面提供;它需要 PostgreSQL 和管理员登录。

外部服务配置只放在运行服务的环境变量中,不要写入浏览器、源码、.env.example 或日志:

export DEERFLOW_BASE_URL="https://superagent.nianxx.cn"
export DEERFLOW_OPEN_API_KEY="df_open_xxx"
export PARSER_REQUEST_TIMEOUT_MS="120000"
node server.mjs

也可以使用支持 --env-file 的 Node.js 版本加载本地私有 .env 文件:

node --env-file=.env server.mjs

外部应用策略需要绑定一个已发布且开启 API exposure 的 Profile。调用请求不传 profile_id,由 DEERFLOW_OPEN_API_KEY 对应的外部应用策略决定实际 Profile。

本地接口

业务系统前端调用:

POST /api/parse
Content-Type: application/json

请求体:

{
  "task_id": "MOCK-ERP-20260712153000",
  "raw_text": "产品名称:遇见老挝\n出发日期2026-08-11",
  "received_at": "2026-07-12T15:30:00+08:00"
}

服务端为每个任务创建独立 Open Agent Session调用流式消息接口并聚合最终 JSON。重复处理同一任务时使用稳定的 session/message 幂等键;不同任务不共享上下文。

外部 Profile 必须返回现有解析契约:

{
  "status": "agent_parse_passed",
  "blockers": [],
  "operation": {
    "action": "team_order_create",
    "order_nature": "test",
    "submit_mode": "dry_run",
    "source": {},
    "data": {}
  }
}

无法解析或外部服务异常时,接口仍返回 JSON 结果并阻断任务,不会将不完整 operation 交给后续模块。

接口响应会附带 external_request 技术诊断字段,页面右侧会实时展示请求阶段:sendingcreating_sessionsession_createdstream_connectingstream_completedfailed。其中只显示服务名、SSE 事件数、session 是否创建和错误码,不显示密钥。

启动

推荐从项目根目录启动,自动加载项目本地环境文件:

cd /Users/inmanx/Documents/lwltAPI
npm run start:mock

也可以在本目录直接使用 Node 的环境文件参数:

cd /Users/inmanx/Documents/lwltAPI/mock-business-system
node --env-file=.env server.mjs

mock-business-system/.env 只用于本地运行,已被 Git 忽略。生产环境请替换为生产配置或由部署平台注入环境变量。

打开 http://127.0.0.1:8765/ 后,业务员只需要输入原始指令并点击“发送解析并创建任务”。本地页面不再提供外部服务地址、模型、密钥或提示词编辑入口。