Files
inquiry_robot/prompt/02-各端职责.md
jillion886andCursor d9029dec89 落地空运群内协同与锁舱出站。
群里按 BOT 通道激活当前工单、航线报价和成交跟进;没有 TMS 报价编号时用工单字段补齐仍调锁舱,避免被本地规则拦住。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-16 17:25:42 +08:00

124 lines
6.7 KiB
Markdown
Raw Permalink 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.
# 有多少个端,每个端负责什么
从「人对着什么说话 / 什么进程在跑」拆,**现网**约 **10 类端**。不要把 Jeecg 自带的演示模块当成询价产品端。
**新系统不要按现网进程数复制。** 对人仍是企微私聊/群、H5、Vue 后台;对进程合并为:主账 API、智能体 HTTP(含原 8809/8810/8811)、AIBOT 桥、**一个**后台 Worker(原 llm/recognition/quote/archive + 慢活)。8812 不建。详见 `01`「目标进程」。
## 1. 企业微信销售端(人)
- 私聊文字询价、图片、文件。
- 模板卡片:补问、采用报价、调价、成交/未成交、进群等。
- 点开 H5 补问表单或附件上传页。
- **不持有**工单主账;只收消息、点卡片。身份以企微推送的 userid 为准,智能体侧解析为 `sender_id`,不要再反向拉取 ID。
## 2. 企业微信协同群(人 + 产品岗)
- 海运:销售/产品在应用自动建的群里报文字价、发报价附件;不用 @。
- 空运:人自建群,拉销售、航线、询价小助手 BOT、询价机器人(存档)。文字必须 @ BOT。发文件不能 @,靠存档听见,航线 Excel/PDF 当报价,发完马上回「附件已保存」。一群多单,先激活当前工单。锁舱/释放见空运群定稿。
- 存档席「询价机器人」只为会话存档可见,不能当报价应答人,不能当 @ 对象。
## 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)
- **只传输**,不拥有业务状态。入站 `/forward`;出站 `/send-group` 走 `aibot_send_msg`(空运群发文件后马上说话)
## 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`) |