机器人显示名与站点标题可配;多段联运列表投影;协同群监听对账;工单附件落存;模板与工单后台补强
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+4
-4
@@ -110,7 +110,7 @@
|
||||
| `https://ai.ytd-scm.com/inquiry-form` | H5(测试 `.env` 也填这一条) |
|
||||
| `https://ai.ytd-scm.com/inquiry-form/upload` | H5 询价附件上传 |
|
||||
| `/jeecgboot`(生产前端 `VITE_GLOB_API_URL`) | 浏览器到 Java 的反代前缀 |
|
||||
| Java context-path | `/jeecg-boot`(服务端口 8080) |
|
||||
| Java context-path | `/jeecgboot`(服务端口 8080) |
|
||||
| 现网 Git | 地址见 `03`;本仓库用新远程 |
|
||||
| `https://work.weixin.qq.com/` | 企微卡片跳转占位 |
|
||||
| `https://open.wshoto.com` | 微盛 Archive API 默认基址 |
|
||||
@@ -127,7 +127,7 @@
|
||||
|
||||
| 端口 | 现网进程 | 新系统 |
|
||||
|---|---|---|
|
||||
| 8080 | Java JeecgBoot | **保留**(主账,本机,Nginx 反代) |
|
||||
| 8080 | 新主账 Java | **占用**(旧 Jeecg 已停,Nginx 反代到此) |
|
||||
| 8810 | Python `agent_api` | **保留**,并承接原 8809/8811 |
|
||||
| 8809 | Python `bridge_api` | **砍**,并进 8810 |
|
||||
| 8811 | Python `wecom_callback` | **砍**,并进 8810 |
|
||||
@@ -139,7 +139,7 @@
|
||||
|
||||
数据在 `10.206.0.14`:MySQL `3306`、PostgreSQL `5432`、Redis `6379`。本机还有 MinIO `9000`。Worker **不占**对外端口。
|
||||
|
||||
新系统并存期应用口:**8180 + 8910 + 8913**,外加 Nginx 80/443。切流前不要占用现网 8080/8810/8813。
|
||||
新系统应用口:**8080 + 8910 + 8913**,外加 Nginx 80/443。主账不要再听 8180。
|
||||
|
||||
## 目标进程(不要复现现网拆法)
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
| 进程 | 端口(可沿用) | 职责 |
|
||||
|---|---|---|
|
||||
| Nginx | 443 / 80 | TLS、静态后台、反代 |
|
||||
| 主账 API | 并存时不要用 8080(示例 8180) | 工单、权限、TMS、后台 API |
|
||||
| 主账 API | **8080** | 工单、权限、TMS、后台 API |
|
||||
| 智能体 HTTP | 并存时不要用 8810(示例 8910) | H5、企微 HTTP 回调、主账唤醒;**只入队、快回** |
|
||||
| AIBOT 桥 | 并存时不要用 8813(示例 8913)仅回环 | 长连接转发,无业务状态 |
|
||||
| 后台 Worker **一个进程** | 无对外端口 | LLM、识别、报价(LibreOffice)、存档;进程内分并发槽 |
|
||||
|
||||
+3
-3
@@ -26,8 +26,8 @@
|
||||
|
||||
## 4. 管理后台 Web(Vue3)
|
||||
|
||||
正式入口为 **新仓库 `inquiry-backend/`**(Jeecg Vue3 + Vite)。只打新主账;不要挂现网 8080 前端进程。
|
||||
启动:在 `inquiry-backend/` 执行 `pnpm run dev`。业务只打新主账 `inquiry-api/`(8180)。
|
||||
正式入口为 **新仓库 `inquiry-backend/`**(Jeecg Vue3 + Vite)。只打新主账 8080。
|
||||
启动:在 `inquiry-backend/` 执行 `pnpm run dev`。业务只打新主账 `inquiry-api/`(8080)。
|
||||
|
||||
询价相关页面(新仓目录示例):
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
## 5. Java 工单/TMS 主账
|
||||
|
||||
入口为 Jeecg 单体启动模块(现网 8080)或新主账进程;**询价业务 API 均为手写模块**(现网包名 `jeecg-module-inquiry`),不是 Online/cgform。新系统替换主账时保持路径语义与后台 `*.api.ts` 可对接,仍禁止 Online 出生产接口。
|
||||
入口为新主账进程(**8080**,`inquiry-api/`)。询价业务 API 保持与后台 `*.api.ts` 可对接的路径语义。
|
||||
|
||||
负责:
|
||||
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@
|
||||
|
||||
可以换框架,但交付形态必须是:
|
||||
|
||||
- 一个主账 API(**JeecgBoot + 低代码**;目录 `inquiry-api/`;并存期示例端口 8180;库 `inquiry_robot`)
|
||||
- 一个主账 API(**JeecgBoot + 低代码**;目录 `inquiry-api/`;端口 **8080**,现网旧 Jeecg 已停;库 `inquiry_robot`)
|
||||
- **一个**智能体 HTTP(目录 `inquiry-agent/`;H5 + 企微回调 + 主账唤醒;现网 8809/8810/8811 合并)
|
||||
- **一个**后台 Worker(同 `inquiry-agent/`;LLM / 识别 / 报价 / 存档;进程内分槽,见 `01`)
|
||||
- 一个 AIBOT 桥(8813 回环,无业务状态)
|
||||
|
||||
@@ -1,120 +0,0 @@
|
||||
# 提示词:Python 智能体 / Worker 端
|
||||
|
||||
你负责与现网询价智能体 **功能等价** 的运行时。代码全新组织,不要做成单文件上帝模块。**每个模块、Handler、Graph 节点、队列/槽代码必须有详细中文注释**(文件头 + 函数职责/副作用/线程;见 `05` 注释节)。无注释不验收。
|
||||
|
||||
## 必须提供的进程
|
||||
|
||||
只允许下面这些自研进程(详见 `01` 目标进程):
|
||||
|
||||
1. **一个 HTTP**:合并现 8810/8809/8811。询价入口、H5、主账唤醒、企微应用回调。请求线程只验签、入 inbox/任务表、返回;禁止同步 LibreOffice / 等完整 LLM。
|
||||
2. **一个 Worker**:消费 LLM、识别、报价(Excel→PDF)、微盛存档。队列 + **按任务认领**(处理中/超时回收)+ 重试。并发:LibreOffice **1 槽**,其余 HTTP 类 **2~3 槽**。Windows 服务只起一份;**禁止** Redis 全局 Worker 单例锁(现网 `wecom:worker:singleton`)。
|
||||
3. **AIBOT 客户端**:连本机桥(测试 8913)。有 `response_url` 当场回;没有则 POST 桥 `/send-group`(空运群发文件后马上说话)。激活发空运模板走 `/send-file`。桥进程可仍是 Node `.cjs`。
|
||||
4. 企微 inbox 消费与 outbox 外发:放在 HTTP 进程的快循环,或 Worker 里与 soffice **隔离的槽**,不得和转 PDF 串行互堵。
|
||||
|
||||
不要:独立 `bridge_api` / `wecom_robot` 端口;五个 NSSM Worker。群机器人 8812 默认不做。
|
||||
|
||||
## 禁止卡顿(必须多线程 / 多槽)
|
||||
|
||||
实现验收:**企微回调与 H5 在慢活进行时仍能秒回**;一份 PDF 不能拖死收消息、查价、出站。
|
||||
|
||||
1. **请求线程只做短事**:验签、去重、入 inbox/任务表、202/明文成功码、返回。禁止在回调 / H5 / 唤醒 HTTP 里同步 `invoke` 完整 Graph、等 LLM、跑 soffice。
|
||||
2. **尽量用多线程**:HTTP 用线程池(uvicorn workers 或等价);Worker **进程内**用线程槽并行——HTTP 类(模型、识别、主账、存档、outbox)**至少 2~3 槽**;inbox 消费与 outbox 外发独立线程,不得和转 PDF 排成一条队列。
|
||||
3. **唯一例外**:LibreOffice **1 个槽**(本机两台 soffice 会互抢卡死)。这不是「整进程单线程」。
|
||||
4. **I/O 等待要让出**:调企微、主账、TMS 经主账、对象存储、模型 HTTP 用超时 + 线程池;禁止无限阻塞、禁止热循环 `sleep` 轮询把槽占满。Graph `resume` 放在 Worker 槽里跑,不要占回调线程。
|
||||
5. **禁止用一把进程大锁串行所有工单**。防重入只锁「同一条任务 / 同一个 thread_id 的写冲突」,不同工单必须能同时跑。
|
||||
6. **共享状态要线程安全**:checkpoint、认领、outbox 用 DB 事务或按条锁,不要无锁改全局 dict。
|
||||
7. Windows 上线程优先于再开多个 Python 进程(已规定只有一个 Worker 进程)。需要并行就加槽/线程,不要再拆 NSSM。
|
||||
|
||||
卡住整机的写法一律视为缺陷,不是「先跑通再优化」。
|
||||
|
||||
## 模块边界
|
||||
|
||||
```
|
||||
NormalizedInbound
|
||||
→ 冻结只读状态快照
|
||||
→ 允许的意图集合
|
||||
→ DeepSeek A 唯一 route_decision
|
||||
→ 确定性 RouteDecision
|
||||
→ 唯一 handler
|
||||
→ 执行到下一个 wait 边界
|
||||
→ 持久化 version + 幂等键
|
||||
```
|
||||
|
||||
## 模块划分(源码,不是进程)
|
||||
|
||||
进程可以只有 HTTP + Worker;**包必须按功能切开**。现网把编排、企微业务、识别堆进超大文件,新项目禁止复现。
|
||||
|
||||
建议包(名称可改,边界不能混):
|
||||
|
||||
| 包 | 只做什么 | 不准塞什么 |
|
||||
|---|---|---|
|
||||
| `channel/wecom` | 验签、XML/JSON 解析、`sender_id`、inbox 写入 | Graph、LLM、建单 |
|
||||
| `channel/h5` | 表单上传、clarification 页 | 六态、TMS |
|
||||
| `channel/outbox` | 企微发送、限流、重试 | 抽字段 |
|
||||
| `routing` | DeepSeek A、RouteDecision | 副作用(建单/发消息) |
|
||||
| `handlers/` | 每类意图一个模块:会话、补问、建单、TMS 展示、协同、采用/调价、成交、异常 | 一个文件处理全部卡片 |
|
||||
| `graph/` | 图定义、节点各文件、pause/resume、wake | 企微 HTTP、soffice |
|
||||
| `llm/` | 网关、队列、各 mode schema | 业务六态 |
|
||||
| `jobs/` | 认领循环、识别槽、LibreOffice 槽、Archive 槽 | 回调路由 |
|
||||
| `ledger/` | 主账 HTTP 客户端 | 直连 TMS、直连 MySQL |
|
||||
| `storage/` | 对象存储 | 工单状态 |
|
||||
| `config/` | 只读环境变量 | 业务 if/else |
|
||||
|
||||
规则:
|
||||
|
||||
- 新功能先归包再写代码。入口(`main`、FastAPI `app`、Worker 启动)只组装依赖,不写业务分支。
|
||||
- Graph **节点分文件**(或按阶段分子包),禁止单文件堆全部节点。
|
||||
- Handler **一类卡片/一类意图一个文件**;公共校验放 `schema/` 或 `policy/`,不要复制粘贴进每个 handler。
|
||||
- 跨包只通过明确接口(函数/协议/事件),禁止互相 import 私有内部函数绕过边界。
|
||||
- 单文件超过约 400~600 行且已含两类职责:拆,不要继续往下加。
|
||||
|
||||
堆在一起的上帝模块一律视为缺陷,与卡顿同样不可验收。缺详细中文注释同样不可验收。
|
||||
|
||||
## 身份
|
||||
|
||||
入站已带企微 userid(`sender_id`)。禁止在收到聊天后再请求企微换 ID。无 `sender_id` 不进 Graph。工单 owner、会话、卡片权限、outbox `touser` 只用该字段。角色查主账,不查企微。H5 不从 URL 读 userid。细则见 `09`。
|
||||
|
||||
## 状态
|
||||
|
||||
| 状态 | 存储 |
|
||||
|---|---|
|
||||
| 活动工单、打断栈 | conversation session |
|
||||
| 图节点、业务上下文 | Graph checkpoint |
|
||||
| 等待点 waitVersion | suspend 账 |
|
||||
| 补问/卡片绑定 | clarification,TTL(H5 30 分钟) |
|
||||
| 正式六态 | 只调用主账 API |
|
||||
| LLM/识别/报价任务 | 各自任务表 + 认领状态(谁在做、超时释放),不是进程级单例 |
|
||||
|
||||
运行账 PostgreSQL:`PG_HOST`/`PG_DATABASE`/`PG_DSN` 走环境变量(测试 `ytd_test_runtime`,正式 `ytd_runtime`,见 `13`)。开发期间 inbox/outbox/checkpoint/任务表缺结构:**直接加迁移并执行到当前 `PG_DATABASE`**,不要问能不能加表。禁止动现网 `ytd_runtime`。
|
||||
|
||||
**LangGraph / Redis 何时用、怎么用:见 `14-LangGraph与Redis.md`。** 图:一单一个 `thread_id`,checkpoint 在 PG,停点中断,Worker 结构化 wake。Redis:`REDIS_URL`(测试 `/1` + `ytd:test:`),只做 Stream 或限流/token;checkpoint 与六态不准进 Redis。
|
||||
|
||||
## LLM
|
||||
|
||||
实现队列(Redis Stream 或 DB 任务表)、按条认领、重试、熔断、审计。不要全局 `SET NX` 单例。模式至少:
|
||||
|
||||
- `ordered_actions`(DeepSeek A,strict tool)
|
||||
- 文本字段抽取(DeepSeek B)
|
||||
- 附件文本 / 图片读取(千问)
|
||||
- 群报价抽取
|
||||
- 报价工作表映射
|
||||
|
||||
环境变量名与 `03-配置与密钥清单.md` 对齐;测试/正式取值见 `13`(`YTD_ENV`、域名、端口、库)。禁止把 `ai.ytd-scm.com` 写死在代码里。
|
||||
|
||||
## 字段
|
||||
|
||||
实现与 `inquiry-required-fields-v1.json` 等价的条件激活(JSON 放在新仓库)。SEA 箱型箱量保持单原始字段 + B 模型投影 `containerItems`。协同点击用不可变询价原话重跑 B,去重补问。
|
||||
|
||||
## 违禁品(建单前)
|
||||
|
||||
企微私聊里,海运、空运、陆运、多段都一样:工单还没建成时,当前这句话、还没改口的原话,以及已经认定的品名、起运地、备注(含表格、图片、文件认出来的字)里出现枪支、弹药、爆炸物、毒品,只回「涉及危险品,无法发起报价。」,不建工单,后台看不到这票,这一轮也不追问缺项。同一条私聊里直接把品名改成普通货后,前面没落进字段的那句不再算;这句里仍写着违禁词,或起运地、备注里还留着,继续拦。只补重量清不掉。本句已无违禁词且是另开一票(如「查一下目的地吉隆坡的费用」),上一句违禁原话作废,可正常询价。水枪、玩具枪、仿真枪、气枪、烟花、礼炮、鞭炮可以报价。化学品、电池、油品以及「是否为危险品:是」仍按原询价走。群聊不拦。工单已经建成之后不拦。英文、拼音、谐音这一轮不拦。
|
||||
|
||||
## 出站
|
||||
|
||||
- 主账:登录或 Token,所有写操作要幂等键(message_id / request_id / quoteVersion)。
|
||||
- 企微:只通过 outbox;失败重试;过期出站丢弃不计业务成功。询价与正式同一 Agent `1000010`;运维 `1000014`,测试**告警**正文加 `[test]`,销售询价确认不加 `[test]`、不加「询价卡片」标题。建单确认按空运询价必填项:起运地、目的地、品名、件数、重量、体积、包装类型(报价日期非必填;另加工程单号、运输方式),末行「工单已创建,正在查询TMS报价。」销售侧标签不得写成毛重、重量(KG)、体积(CBM)。缺项补问先回显已识别,再列待补充并给示例(重量如 100KGS、体积如 2CBM、包装如托盘),待补充行不加圆点;空运报价日期销售说了写入已识别并写成「报价日期:日期」;没说写成「报价日期(非必填):」,不默认当天,不进待补充。海运、陆运报价日期没说仍默认当天。起运地/目的地说了地名即采集完成,不得因对不上三字码再补问。每次出询价确认都新开一单再查 TMS,相同需求不复用旧工单号。包装等字段销售说什么就记什么,禁止白名单把散货等原文挡回去再补问。
|
||||
- 对象存储:S3 兼容;生成文件后登记主账附件再发企微。
|
||||
|
||||
## 测试
|
||||
|
||||
每个业务线:完整字段不补问;缺一项只补该项;TMS 有价/无价/1003/技术失败;重复回调不建第二单。禁止依赖真实密钥才能跑单测(TMS 用 fixture 模式)。**不要**按企微 userid 在 Redis 里伪造 TMS。
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
# 提示词:工单 / TMS 主账 API
|
||||
|
||||
你负责新系统的 **业务主账**。产品决策(2026-09-12):主账以 **JeecgBoot + 低代码(Online / cgform / 代码生成器)** 为正式方式;库与端口走新系统(`inquiry_robot`、并存期 **8180**),禁止写现网 `jeecg-boot`。
|
||||
你负责新系统的 **业务主账**。产品决策(2026-09-12):主账以 **JeecgBoot + 低代码(Online / cgform / 代码生成器)** 为正式方式;库走新系统(`inquiry_robot`)。端口 **8080**(2026-10-18:现网旧 Jeecg 已停,不再用并存端口 8180)。禁止写现网库 `jeecg-boot`。
|
||||
|
||||
决策说明见 `docs/2026-09-12-jeecg-lowcode-ledger-decision.md`。正式主账工程目录为 **`inquiry-api/`**(JeecgBoot)。
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
- 熔断、超时、最多 3 次、query 对 code 1/1002 短缓存。
|
||||
- `tmsEnabled=false` 时不得出站。生产现网为 `YTD_TMS_V2_ENABLED=true`。
|
||||
|
||||
路径默认:`/quote/v2/query`、`/quote/v2/detail`、`/quote/template-fields`、`/air/cabin/lock`、`/air/cabin/release`、`/auth/token`。地址与 Client 三件套、字典 Token **直接用 `03` 现网值**,不要另要一套 TMS。智能体仍只打**新主账**,不直连 TMS、不打现网 Java 8080。
|
||||
路径默认:`/quote/v2/query`、`/quote/v2/detail`、`/quote/template-fields`、`/air/cabin/lock`、`/air/cabin/release`、`/auth/token`。地址与 Client 三件套、字典 Token **直接用 `03` 现网值**,不要另要一套 TMS。智能体仍只打**新主账 8080**,不直连 TMS、不写旧库。
|
||||
|
||||
## 查价(不做字典对应)
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
- 不要把 Jeecg `signatureSecret` 默认值当生产密钥。
|
||||
- 后台登录与智能体服务账号分离。
|
||||
- 不要连接或 ALTER 现网 `jeecg-boot`;新系统只用 `inquiry_robot`。
|
||||
- 不要在并存期占用现网 8080;新主账用 8180(或合同约定的测试端口)。
|
||||
- 新主账听 **8080**。现网旧 Jeecg 已停,不要再把主账起回 8180。
|
||||
- 不要把无关 Jeecg 演示业务当询价主账;演示模块可删可关,Online 只配询价相关。
|
||||
|
||||
## 数据
|
||||
|
||||
+4
-4
@@ -1,16 +1,16 @@
|
||||
# 提示词:询价管理后台
|
||||
|
||||
你负责 **新仓库** Web 管理端。产品决策(2026-09-12):后台正式方式为 **Jeecg Vue3 + Online 低代码**,与 JeecgBoot 主账一体;只打新主账(库 `inquiry_robot`、并存端口 8180),禁止连现网 8080/`jeecg-boot`。
|
||||
你负责 **新仓库** Web 管理端。产品决策(2026-09-12):后台正式方式为 **Jeecg Vue3 + Online 低代码**,与 JeecgBoot 主账一体;只打新主账(库 `inquiry_robot`、端口 **8080**)。禁止连旧库 `jeecg-boot`。
|
||||
|
||||
详见 `docs/2026-09-12-jeecg-lowcode-ledger-decision.md`。
|
||||
|
||||
## 正式前端(Jeecg Vue)
|
||||
|
||||
- **正式入口** = Jeecg Vue3(本仓库 `inquiry-backend/`)。登录、菜单、Online 表单/列表、权限码均走 Jeecg。
|
||||
- 正式前端为本仓库 `inquiry-backend/`;新系统进程不要挂现网 8080。
|
||||
- 正式前端为本仓库 `inquiry-backend/`;接口经同域 `/jeecgboot` 打新主账 8080。
|
||||
- **允许** Online / cgform / 积木报表 / 代码生成器配置询价相关生产页。
|
||||
- 复杂询价页(工单六态、TMS、报价版本)可继续用手写 `views/inquiry/*`(与现网混合模式一致)。
|
||||
- **鉴权**:`X-Access-Token`;生产 `API_URL` 同域 `/jeecgboot` → 新主账 8180(工程目录 `inquiry-api/`)。域名 `https://ai.ytd-scm.com`(见 `13`)。
|
||||
- **鉴权**:`X-Access-Token`;生产 `API_URL` 同域 `/jeecgboot` → 新主账 8080(工程目录 `inquiry-api/`)。域名 `https://ai.ytd-scm.com`(见 `13`)。
|
||||
- **禁止**浏览器直连 TMS/DeepSeek/企微。
|
||||
- 仓库里若仍有独立 Ant Design Vue 实验壳,不作为正式入口。
|
||||
|
||||
@@ -38,4 +38,4 @@
|
||||
|
||||
## 验收
|
||||
|
||||
Jeecg Vue 登录 → Online/手写询价菜单 → 工单时间线/附件 → 无权限无操作按钮;请求进入新主账 8180 / `inquiry_robot`。
|
||||
Jeecg Vue 登录 → Online/手写询价菜单 → 工单时间线/附件 → 无权限无操作按钮;请求进入新主账 8080 / `inquiry_robot`。
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@
|
||||
1. `client_credentials` 取 `accessToken`(Basic clientId:clientSecret)。
|
||||
2. 查询/详情/模板字段:`Authorization: Bearer`。
|
||||
3. 空运锁舱/释放:额外 HMAC 签名头,正文原字节参与签名。
|
||||
4. 生产明文见 `03`,**新系统直接复用现网 TMS 信息**(同机并行,不再另开测试 TMS):`TMS_V2_BASE_URL=http://113.106.62.254:3100/sangoe-boot`;ClientId/Secret/SignatureSecret 均为 `WVRELUFpQWdlbnQk`。`YTD_TMS_V2_ENABLED=true`。字典同步 Token 也用 `03` 现网值。凭证放新系统自己的 `.env`,不要改 `C:\yutongda\secure\` 给现网 Java 用的那份。
|
||||
4. 生产明文见 `03`。地址、ClientId、ClientSecret、SignatureSecret 以 `.env` 为准。锁舱 HMAC 用 `TMS_V2_SIGNATURE_SECRET`,与当前 `TMS_V2_CLIENT_SECRET` 同一值。`YTD_TMS_V2_ENABLED=true`。字典同步 Token 也用 `03`。凭证放新系统自己的 `.env`,不要改 `C:\yutongda\secure\` 给现网 Java 用的那份。
|
||||
|
||||
**不要**把密钥写进代码或前端。旧字段 `tmsServiceToken`/`tmsSignatureKey` 不要在 V2 再使用。
|
||||
|
||||
|
||||
+5
-5
@@ -1,13 +1,13 @@
|
||||
# 提示词:部署与运行环境
|
||||
|
||||
目标环境:甲方 **同一台** Windows Server(`129.211.181.80` / `10_206_0_15`)。现网继续跑 `C:\yutongda`。新系统是**另一套应用**,不要改动现网 `ops\active-release.json`,不要占用 8080/8810/8813。现网发布仍按甲方原流程;测试环境用本目录 `12`。
|
||||
目标环境:甲方 **同一台** Windows Server(`129.211.181.80` / `10_206_0_15`)。现网旧应用已停用。新系统跑在 `E:\wwwroot`,主账占用 **8080**。不要改动已归档的 `C:\yutongda\ops\active-release.json`,不要改企微回调 URL。
|
||||
|
||||
## 同机并存
|
||||
|
||||
| 项 | 现网(不动) | 新系统 |
|
||||
|---|---|---|
|
||||
| 目录 | `C:\yutongda` | 例如 `C:\ytd-test\` |
|
||||
| 主账 / 智能体 / AIBOT | 8080 / 8810 / 8813 | 另选端口,例如 8180 / 8910 / 8913 |
|
||||
| 主账 / 智能体 / AIBOT | 8080 / 8810 / 8813(已停) | **8080** / 8910 / 8913 |
|
||||
| Nginx | `ai.ytd-scm.com` | **同一域名**;切流前不改 `ai.conf` 回调/H5 |
|
||||
| MySQL / PG / Redis / MinIO | `jeecg-boot`、`ytd_runtime`、`ytd:prod:node01-07`、桶 `ytd-inquiry` | 库 `ytd_test`、`ytd_test_runtime`;Redis **db1** 前缀 `ytd:test:`;桶 `ytd-test` |
|
||||
| TMS | `03` 现网 BaseURL + Client 三件套 | **原样使用**;只 query,默认不开 lock/release |
|
||||
@@ -23,7 +23,7 @@
|
||||
| 地址 | 用途 |
|
||||
|---|---|
|
||||
| `https://ai.ytd-scm.com` | 后台静态 + 总入口 |
|
||||
| `https://ai.ytd-scm.com/jeecgboot/`、`/jeecg-boot/` | 反代现网 Java 8080 |
|
||||
| `https://ai.ytd-scm.com/jeecgboot/`、`/jeecg-boot/` | 反代新主账 8080 |
|
||||
| `https://ai.ytd-scm.com/wecom/callback` | 企微应用回调 → 现网 8811 |
|
||||
| `https://ai.ytd-scm.com/wecom/robot/callback` | 群机器人(现网空配置)→ 现网 8812 |
|
||||
| `https://ai.ytd-scm.com/inquiry-form/` | H5 → 现网 8810 |
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
| 端口 | 现网进程 | 切流后 |
|
||||
|---|---|---|
|
||||
| 8080 | Java JeecgBoot | 停 |
|
||||
| 8080 | 旧 Java JeecgBoot | 已停;**新主账占用** |
|
||||
| 8809 | Python bridge_api | 停 |
|
||||
| 8810 | Python agent_api | 停 |
|
||||
| 8811 | Python wecom_callback | 停 |
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
## 进程与端口
|
||||
|
||||
新系统自己监听(避开现网):**8180** 主账、**8910** 智能体 HTTP、**8913** AIBOT 回环、一个 Worker。现网 8080/8810/8813 保持原样。
|
||||
新系统监听:**8080** 主账、**8910** 智能体 HTTP、**8913** AIBOT 回环、一个 Worker。不要再把主账起回 8180。
|
||||
|
||||
现网 release 的 8809/8811/8812 以及五个 Worker:**切流前不要停**。新系统用自己的服务名与端口。发布测试版时停的是测试目录里的进程,不是 `C:\yutongda`。切流时才把 `ai.conf` 的 inquiry-form / wecom/callback 反代到新 HTTP 端口。不要 Redis 全局单例锁。
|
||||
|
||||
|
||||
+6
-6
@@ -7,7 +7,7 @@
|
||||
## 现网禁止触碰
|
||||
|
||||
- 目录:`C:\yutongda`、`releases\`、`ops\active-release*.json`
|
||||
- 端口:8080、8809、8810、8811、8813 必须保持监听
|
||||
- 端口:旧 8080/8809/8810/8811/8813 已停。新主账占用 **8080**,不要再起回 8180。企微回调 URL 不要改。
|
||||
- 站点:`https://ai.ytd-scm.com` 及 `/wecom/callback`、`/inquiry-form`(Nginx 反代目标切流前不准改)
|
||||
- 库:`jeecg-boot`、`ytd_runtime`;Redis `ytd:prod:node01-07`;桶 `ytd-inquiry`
|
||||
- 企微询价应用 `1000010` 的后台设置(不要重置 Secret、不要改回调 URL)
|
||||
@@ -19,7 +19,7 @@
|
||||
| 项 | 值 |
|
||||
|---|---|
|
||||
| 运行根 | `E:\wwwroot`(`admin\current` / `agent\current`) |
|
||||
| 主账 | **8180** |
|
||||
| 主账 | **8080** |
|
||||
| 智能体 HTTP | **8910**(H5 + 企微回调 + 主账唤醒,一个进程) |
|
||||
| AIBOT | **8913** 仅 127.0.0.1 |
|
||||
| Worker | 无对外端口;LibreOffice 1 槽,HTTP 类 2~3 槽 |
|
||||
@@ -44,7 +44,7 @@
|
||||
YTD_ENV=test
|
||||
WECOM_CALLBACK_URL=https://ai.ytd-scm.com/wecom/callback
|
||||
INQUIRY_FORM_PUBLIC_BASE_URL=https://ai.ytd-scm.com/inquiry-form
|
||||
BIZ_API_BASE_URL=http://127.0.0.1:8180/jeecg-boot
|
||||
BIZ_API_BASE_URL=http://127.0.0.1:8080/jeecgboot
|
||||
AGENT_CALLBACK_BASE_URL=http://127.0.0.1:8910
|
||||
WECOM_AIBOT_BRIDGE_URL=http://127.0.0.1:8913
|
||||
WECOM_AIBOT_INGRESS_URL=http://127.0.0.1:8910/internal/aibot/inbound
|
||||
@@ -55,7 +55,7 @@ WECOM_AIBOT_INGRESS_URL=http://127.0.0.1:8910/internal/aibot/inbound
|
||||
|
||||
## TMS
|
||||
|
||||
现网 BaseURL + Client 三件套(`03`)。QUERY / 详情 / 字典照旧。空运群锁舱/释放:测服主账打开出站打真实 TMS;验收前必须先停现网锁舱,禁止两套抢舱。智能体只打测试主账 8180,不直连 TMS、不打现网 8080。
|
||||
现网 BaseURL + Client 三件套(`03`)。QUERY / 详情 / 字典照旧。空运群锁舱/释放由新主账出站打真实 TMS。智能体只打新主账 8080,不直连 TMS。
|
||||
|
||||
## 库表(测试库可直接改)
|
||||
|
||||
@@ -74,8 +74,8 @@ WECOM_AIBOT_INGRESS_URL=http://127.0.0.1:8910/internal/aibot/inbound
|
||||
|
||||
## 部署前必须同时成立
|
||||
|
||||
- 现网 8080、8810、8813 仍在听
|
||||
- 本次目标是 8180/8910/8913
|
||||
- 新主账在 **8080**,智能体在 8910,AIBOT 在 8913
|
||||
- 不要把主账起回 8180
|
||||
- 未改 `C:\yutongda\ops\` 活动指针
|
||||
|
||||
误停现网端口或改了现网指针:立即停手,先恢复现网,再报告。
|
||||
|
||||
+3
-3
@@ -17,9 +17,9 @@
|
||||
| 公网域名 | `ai.ytd-scm.com` | **同一域名** |
|
||||
| DNS / 证书 / Nginx | 已有 `ai.conf` | **不要另开域名/证书**;反代按切流改 |
|
||||
| 站点 / H5 / 企微回调 | 同左 | 配置字符串相同;企微回调 URL **不用改** |
|
||||
| 后台 API 前缀 | `/jeecgboot` → 8080 | `/jeecgboot` → **新主账 8180**(切流后) |
|
||||
| 后台 API 前缀 | `/jeecgboot` → 旧 Jeecg 8080 | `/jeecgboot` → **新主账 8080**(旧进程已停) |
|
||||
| 运行根 | `C:\yutongda` | **`E:\wwwroot`**(`admin\current` / `agent\current`) |
|
||||
| 主账端口 | 8080(Jeecg) | **8180**(新 Java 主账,非 Jeecg) |
|
||||
| 主账端口 | 8080(旧 Jeecg,已停) | **8080**(新 Java 主账) |
|
||||
| 智能体 HTTP | 8810(另 8809/8811) | **8910**(合并) |
|
||||
| AIBOT | 8813 | **8913**(切流前勿双连) |
|
||||
| MySQL | `jeecg-boot` / `ytd_jeecg` | **`inquiry_robot` / `inquiry_robot`** |
|
||||
@@ -89,7 +89,7 @@ YTD_ENV=test
|
||||
PUBLIC_BASE_URL=https://ai.ytd-scm.com
|
||||
WECOM_CALLBACK_URL=https://ai.ytd-scm.com/wecom/callback
|
||||
INQUIRY_FORM_PUBLIC_BASE_URL=https://ai.ytd-scm.com/inquiry-form
|
||||
BIZ_API_BASE_URL=http://127.0.0.1:8180
|
||||
BIZ_API_BASE_URL=http://127.0.0.1:8080
|
||||
AGENT_CALLBACK_BASE_URL=http://127.0.0.1:8910
|
||||
WECOM_AIBOT_BRIDGE_URL=http://127.0.0.1:8913
|
||||
WECOM_AIBOT_INGRESS_URL=http://127.0.0.1:8910/internal/aibot/inbound
|
||||
|
||||
Reference in New Issue
Block a user