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

92 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 业务系统输入解析模块
正式运行时,页面由生产控制平面提供;本目录仍保存现有操作台静态资源和外部解析适配器。任务状态不再以浏览器 `localStorage` 为权威,必须通过控制平面 API 读取和写入。
操作台不会在页面刷新、插件重连或状态轮询时自动重交 ERP 任务。只有管理员的首次明确确认会申请服务端唯一执行权;领取成功后才向插件下发。领取后的投递超时或 ERP 回执不确定都会进入“待回查”,禁止自动重试。
生产控制平面说明见 [../control-plane/README.md](../control-plane/README.md)。
本模块只负责接收业务员的原始指令,调用已发布的外部 Agent Profile返回现有标准 `operation` JSON。ERP 填单、浏览器插件和 ERP 提交链路不在本模块的解析调用范围内。
## 服务端配置
> `server.mjs` 现在只用于解析适配器的本地测试。完整操作台应由根目录的生产控制平面提供;它需要 PostgreSQL 和管理员登录。
外部服务配置只放在运行服务的环境变量中,不要写入浏览器、源码、`.env.example` 或日志:
```bash
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` 文件:
```bash
node --env-file=.env server.mjs
```
外部应用策略需要绑定一个已发布且开启 API exposure 的 Profile。调用请求不传 `profile_id`,由 `DEERFLOW_OPEN_API_KEY` 对应的外部应用策略决定实际 Profile。
## 本地接口
业务系统前端调用:
```http
POST /api/parse
Content-Type: application/json
```
请求体:
```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 必须返回现有解析契约:
```json
{
"status": "agent_parse_passed",
"blockers": [],
"operation": {
"action": "team_order_create",
"order_nature": "test",
"submit_mode": "dry_run",
"source": {},
"data": {}
}
}
```
无法解析或外部服务异常时,接口仍返回 JSON 结果并阻断任务,不会将不完整 operation 交给后续模块。
接口响应会附带 `external_request` 技术诊断字段,页面右侧会实时展示请求阶段:`sending``creating_session``session_created``stream_connecting``stream_completed``failed`。其中只显示服务名、SSE 事件数、session 是否创建和错误码,不显示密钥。
## 启动
推荐从项目根目录启动,自动加载项目本地环境文件:
```bash
cd /Users/inmanx/Documents/lwltAPI
npm run start:mock
```
也可以在本目录直接使用 Node 的环境文件参数:
```bash
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/` 后,业务员只需要输入原始指令并点击“发送解析并创建任务”。本地页面不再提供外部服务地址、模型、密钥或提示词编辑入口。