Files
inquiry_robot/prompt/02-各端职责.md
T

6.3 KiB
Raw Blame History

有多少个端,每个端负责什么

从「人对着什么说话 / 什么进程在跑」拆,现网约 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)