124 lines
6.3 KiB
Markdown
124 lines
6.3 KiB
Markdown
# 有多少个端,每个端负责什么
|
||
|
||
从「人对着什么说话 / 什么进程在跑」拆,**现网**约 **10 类端**。不要把 Jeecg 自带的演示模块当成询价产品端。
|
||
|
||
**新系统不要按现网进程数复制。** 对人仍是企微私聊/群、H5、Vue 后台;对进程合并为:主账 API、智能体 HTTP(含原 8809/8810/8811)、AIBOT 桥、**一个**后台 Worker(原 llm/recognition/quote/archive + 慢活)。8812 不建。详见 `01`「目标进程」。
|
||
|
||
## 1. 企业微信销售端(人)
|
||
|
||
- 私聊文字询价、图片、文件。
|
||
- 模板卡片:补问、采用报价、调价、成交/未成交、进群等。
|
||
- 点开 H5 补问表单或附件上传页。
|
||
- **不持有**工单主账;只收消息、点卡片。身份以企微推送的 userid 为准,智能体侧解析为 `sender_id`,不要再反向拉取 ID。
|
||
|
||
## 2. 企业微信协同群(人 + 产品岗)
|
||
|
||
- 销售/产品在群里报文字价、发报价 Excel/PDF/图片。
|
||
- 空运可复用固定群(环境变量 `WECOM_FIXED_AIR_GROUP_CHAT_IDS`)。
|
||
- 存档席用户只为会话存档可见,不能当报价应答人。
|
||
|
||
## 3. H5 补问 / 附件页(浏览器,挂在智能体 8810)
|
||
|
||
- 域名:`https://ai.ytd-scm.com/inquiry-form/{token}`。
|
||
- 企微卡片打开一次性表单;URL 只有随机 token。
|
||
- 上传入口:`/inquiry-form/upload`。
|
||
- 字段快照与流程状态仍在 LangGraph / PostgreSQL。
|
||
|
||
## 4. 管理后台 Web(Vue3)
|
||
|
||
正式入口为 **新仓库 `inquiry-backend/`**(Jeecg Vue3 + Vite)。只打新主账;不要挂现网 8080 前端进程。
|
||
启动:在 `inquiry-backend/` 执行 `pnpm run dev`。业务只打新主账 `inquiry-api/`(8180)。
|
||
|
||
询价相关页面(新仓目录示例):
|
||
|
||
| 页面 | 职责 |
|
||
|---|---|
|
||
| 工作台 dashboard | 统计展示(读主账投影) |
|
||
| 工单 ticket | 列表/详情/时间线/状态迁移/异常处理 |
|
||
| 员工 staff | 企微 userid 与询价业务角色绑定 |
|
||
| 报价模板 template | Excel 模板上传/启用 |
|
||
| 识别/生成/存档 | 任务与死信只读 |
|
||
| 机器人回复 bot-reply | 话术配置 |
|
||
|
||
原则:后台 **不创造第二套业务状态**,只读/操作主账。
|
||
|
||
## 5. Java 工单/TMS 主账
|
||
|
||
入口为 Jeecg 单体启动模块(现网 8080)或新主账进程;**询价业务 API 均为手写模块**(现网包名 `jeecg-module-inquiry`),不是 Online/cgform。新系统替换主账时保持路径语义与后台 `*.api.ts` 可对接,仍禁止 Online 出生产接口。
|
||
|
||
负责:
|
||
|
||
- 工单与运输段正式主账、六态迁移、owner/权限。
|
||
- TMS V2:token、签名、字典投影、query/detail/lock/release。
|
||
- 源报价、客户报价、报价版本、费用、附件元数据。
|
||
- 群协同绑定、人员角色、时间线、后台 API。
|
||
- 字典同步接口 `/api/v1/tms/dictionaries/sync`。
|
||
|
||
Python 经 `app/jeecg_client.py` 调用。**Java 成功才算正式业务成功**;Graph 字段不能伪造。
|
||
|
||
## 6. Python 智能体核(LangGraph + 路由)
|
||
|
||
现网智能体运行链(不是 REL25 候选):
|
||
|
||
```
|
||
企微入站 → wecom_worker / callback / archive
|
||
→ 企微业务处理 + 会话/意图路由
|
||
→ DeepSeek A 意图 / DeepSeek B·千问语义
|
||
→ 流程编排(checkpoint、suspend、补问、查价、协同、报价、成交)
|
||
→ Java / 群 / 报价 Worker / outbox
|
||
→ 企微唯一外发
|
||
```
|
||
|
||
职责:自然语言只由模型处理;代码只做身份、Schema、类型、权限、状态、版本、唯一性、证据、幂等。
|
||
|
||
REL25 候选路由 **未接管**现网企微执行链。新项目不必沿用该目录名。
|
||
|
||
## 7. Python HTTP 进程(现网:同一代码树,多个 uvicorn)
|
||
|
||
| 进程 | 端口 | 职责 |
|
||
|---|---|---|
|
||
| `app.agent_api` | 8810 | 测试询价入口、H5 表单与上传、部分公开页 |
|
||
| `app.bridge_api` | 8809 | 接收 Java 唤醒;节点 20/21 时钟;识别/报价任务查询过渡;**不直连 MySQL、不自己查 TMS** |
|
||
| `app.wecom_callback` | 8811 | 企微应用回调、卡片事件 |
|
||
| `app.wecom_robot` | 8812 | 群机器人回调 |
|
||
|
||
**新系统:** 上述四个合成 **一个** FastAPI(或等价),**路由与实现按包分文件**(回调、H5、唤醒各模块),禁止再做一个万行 `app.py`。Nginx 把 `/inquiry-form`、`/wecom/callback`、主账唤醒路径都打到这一端口。8812 不实现,除非产品明确再开群机器人。HTTP 必须线程池快回,慢活进 Worker 槽(见 `06`)。
|
||
|
||
## 8. Python Worker 进程(现网五个)
|
||
|
||
| Worker | 入口 | 职责 |
|
||
|---|---|---|
|
||
| wecom-worker | `app.wecom_worker` | 消费 inbox,业务处理,outbox 外发;现网 Redis 全局单例 |
|
||
| llm-worker | `app.llm_worker` | DeepSeek/千问队列执行、重试、结果账 |
|
||
| recognition-worker | `app.recognition_worker` | 附件/图片识别、抽字段、推进 Graph |
|
||
| quote-worker | `app.quote_generation_worker` | 正式 Excel/PDF、对象存储、Java 附件、企微文件、wake |
|
||
| archive-worker | `app.archive_worker` | 微盛 Archive 拉消息/文件、部分群指令 |
|
||
|
||
现网:同一队列不要起两个同类 Worker。
|
||
|
||
**新系统:** 一个 Worker 进程(NSSM/服务只注册一份,靠部署停旧再起新,**不要** Redis `SET NX` 全局单例)。队列条目用「认领 + 超时回收」防同一条消息被两个槽处理。LibreOffice 单槽,HTTP 类 2~3 槽。inbox/outbox 快路径不要和 soffice 串在同一条阻塞线上。Worker **代码**仍按 jobs/llm/graph/channel 分包,不要合成一个 `worker.py`。
|
||
|
||
## 9. AIBOT 长连接桥(Node)
|
||
|
||
- 现网为 Node 长连接脚本,新项目可仍用 Node 或等价实现
|
||
- 端口 8813 仅 127.0.0.1(测试环境 8913)
|
||
- **只传输**,不拥有业务状态
|
||
|
||
## 10. 运维/发布端(人 + 脚本)
|
||
|
||
- 本机:环境导入脚本、累计部署器(现网)
|
||
- 服务器:Nginx、NSSM/计划任务类常驻进程、`C:\yutongda\ops` 指针
|
||
- Git:真实 `.env` 不进包
|
||
|
||
## 数据 Owner 一句话
|
||
|
||
| 事实 | Owner |
|
||
|---|---|
|
||
| 工单六态、报价版本、权限 | Java / MySQL |
|
||
| 会话、补问点、checkpoint、inbox/outbox | Python / PostgreSQL |
|
||
| TMS 价格与舱位 | TMS |
|
||
| 文件字节 | MinIO/S3 |
|
||
| 用户看到的消息 | 企微(发送成功 ≠ 业务成功) |
|
||
| 缓存协调、LLM 队列、限流 | Redis(不当真相;见 `14`) |
|
||
| 询价流程书签 | LangGraph checkpoint(PostgreSQL;见 `14`) |
|