Explorar o código

vault backup: 2026-08-15 14:31:47

zhensolid hai 3 semanas
pai
achega
aaa6110489
Modificáronse 1 ficheiros con 21 adicións e 13 borrados
  1. 21 13
      子兰工作/企业微信集成方案.md

+ 21 - 13
子兰工作/企业微信集成方案.md

@@ -90,15 +90,10 @@ Python 脚本路径:`/data/wecom_callback.py`(aliyun2)
 pip3 install pycryptodome
 ```
 
-启动命令
+启动/重启(systemd 管理,崩溃 5 秒自愈)
 ```bash
-nohup python3 /data/wecom_callback.py > /data/wecom_callback.log 2>&1 &
-```
-
-重启命令:
-```bash
-pkill -f wecom_callback.py
-nohup python3 /data/wecom_callback.py > /data/wecom_callback.log 2>&1 &
+systemctl restart wecom-callback
+journalctl -u wecom-callback -f
 ```
 
 ---
@@ -110,18 +105,31 @@ nohup python3 /data/wecom_callback.py > /data/wecom_callback.log 2>&1 &
 企微 POST 加密 XML → api.zilanlife.com/wecom/callback
-Nginx 反代 → 127.0.0.1:18790(Python 服务)
+Nginx 反代 → 127.0.0.1:18790(Python 服务,systemd 托管
 1. URL 验证(GET):解密 echostr → 返回明文
-2. 接收消息(POST):解密消息体 → DeepSeek AI → 加密回复
+2. 接收消息(POST):秒回 200 → 解密消息体 → 后台异步处理
+    ↓
+Dify 工作流「企微AI回复」(多轮会话)→ AI 生成
+    ↓
+send_msg 主动推送回复到企微
 ```
 
 ### 核心功能
 
 1. **URL 验证**:GET 请求,解密 `echostr` 参数并返回明文(企业微信首次配置时调用)
-2. **消息接收**:POST XML 加密体,解密后得到用户消息
-3. **AI 回复**:调 DeepSeek API 生成回复
-4. **加密发送**:加密回复 XML,通过 HTTP 响应直接返回
+2. **消息接收**:POST XML 加密体,解密后得到用户消息,先秒回 200 再异步处理(企微 5 秒超时)
+3. **AI 回复**:调 Dify 工作流(`app-6ax5fzZvsOuQvSDiQ0bcCgwa`)生成回复,15 秒未完成先发「正在处理」
+4. **主动推送**:`send_msg` 调企微 API 把回复发回用户
+
+### 多轮会话(2026-08-14 改造)
+
+- **方案**:脚本本地维护对话历史(Dify Workflow 应用不支持 conversation_id,实测响应无此字段)
+- **实现**:按 `userid` 存最近 10 轮问答(20 条消息),拼进 `query` 发给 Dify(「此前对话记录…当前问题」格式)
+- **互不串扰**:每个 userid 独立历史,Dify `user` 字段传真实 `from_user`
+- **过期规则**:每天**凌晨 3:00 全量过期**(3 点前算前一天),过期后自动开新会话
+- **持久化**:`/data/wecom_conversations.json`(重启不丢)
+- **原版备份**:`/data/wecom_callback.py.bak-20260814`
 
 ### 加密/解密