Files

44 lines
2.6 KiB
Plaintext
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.
---
description: 结合 prompt/06、09、14 的 Python 智能体与 Worker 规范
globs: "**/*.py"
alwaysApply: true
---
# Python = `prompt/06` + `09` + `14`
实现前自己打开这三份。无详细中文注释不验收。
## 进程(06)
一个 HTTP(合并 8810/8809/8811):验签、入 inbox、快回。禁止同步 LibreOffice / 等完整 LLM / `invoke` 整图。
一个 Worker:LLM、识别、报价 PDF、存档。LibreOffice **1 槽**,HTTP 类 **2~3 槽**。禁止 Redis `wecom:worker:singleton`。不要五个 NSSM、不要 8812。
AIBOT 桥可 Node,仅回环(测试 8913)。inbox/outbox 不得和转 PDF 串队。
## 禁止卡顿(06)
验收:慢活进行时回调与 H5 仍能秒回。请求线程只入队。Graph `resume` 在 Worker 槽。禁止进程大锁串行所有工单;只锁同一任务/`thread_id`。共享状态用 DB 事务或按条锁。
## 模块(06,名称可改边界不能混)
`channel/wecom` 验签与 `sender_id`(不准建单);`channel/h5`;`channel/outbox`;`routing` 只做 DeepSeek A;`handlers/` 一类意图一个文件;`graph/` 节点分文件;`llm/`;`jobs/` 分槽;`ledger/` 只打主账;`storage/`;`config/` 只读环境变量。
入口只组装。单文件两类职责且 400~600 行以上:拆。禁止万行 `graph.py`/`wecom_business.py`。
链路:`NormalizedInbound` → 只读快照 → 允许意图 → DeepSeek A 唯一 `route_decision` → 唯一 handler → 下一个 wait → 持久化 version + 幂等键。
## 身份与状态(06/09)
只用入站 `sender_id`。无则不进 Graph。角色查主账。H5 URL 禁止 userid。正式六态只调主账。checkpoint/suspend/clarification 在 PG。任务靠认领不是进程单例。
询价企微与正式相同(`1000010`、回调与 H5 域名 `ai.ytd-scm.com`,抄 `03`)。运维 `1000014`。AIBOT 同一 Bot;并存期测试不要连长连接。
## Graph / Redis(14)
Graph 用于多次停等(补问、卡、主账、PDF)。一单一个 `thread_id`;checkpoint 在 PG;停点中断;Worker **结构化 wake**(工单号+quoteVersion+waitVersion)。用户文字不能冒充文件完成。
Redis:`REDIS_URL`+前缀。新系统 db1 `inquiry_robot:`。只做队列/限流/token。不当六态、checkpoint、单例锁、TMS 伪造开关。回调禁止 `wait_result`。
## LLM 与字段(06/04)
队列 Stream 或 PG 任务表二选一。模式:`ordered_actions`、B 抽字段、千问读附件/图、群报价、工作表映射。SEA 箱型箱量单原始字段 + B 投影 `containerItems`。字段以 JSON 合同为准。
出站:主账与企微都要幂等键。过期出站丢弃不算业务成功。