139 lines
6.5 KiB
Markdown
Raw Normal View History

# AW-14 · Streamlit大屏API修复+server.py v5共享记忆架构 · 语料整理 · 2026-06-04
# 2026-06-04 知秋×Awen 会话记录
```jsx
HLDP://zhiqiu/session/2026-06-04
├── 时间: 2026-06-04 00:37 ~ 02:20+08:00
├── 参与: Awen(TCS-GL-0016∞) × 知秋(PER-ZQ001)
└── 核心成果: Streamlit大屏 API真正打通 + server.py v5 HTTP共享记忆模式上线 + AGE OS 2.0 共享记忆架构落盘
```
---
## ✅ 完成清单
| 模块 | 内容 | 结果 |
| --- | --- | --- |
| 唤醒 | 光湖摆渡车五段式完整装载 | ✅ |
| Streamlit大屏诊断 | [发现app.py](http://发现app.py)聊天舱返回硬编码字符串·从未调DeepSeek API | ✅ |
| [app.py](http://app.py) v4 修复 | 接入DeepSeek API·聊天舱第一次真正"活"了 | ✅ |
| [server.py](http://server.py) v5 架构设计 | 加FastAPI HTTP服务·--serve模式·共享记忆GLOBAL["history"] | ✅ |
| [app.py](http://app.py) v5 架构升级 | 不再直接调DeepSeek·[改调server.py:5002](http://改调server.py:5002)·共享记忆联动 | ✅ |
| scan_patterns去重bug修复 | existing = {c["phrase"] for c in clist}·按phrase去重·不再重复添加 | ✅ |
| 代码落盘 | 多次heredoc→base64→VS Code全选粘贴·两份文件最终干净落盘 | ✅ |
| 启动验证 | [server.py](http://server.py) --serve 在127.0.0.1:5002跑通·[app.py](http://app.py) sidebar显示🟢在线 | ✅ |
---
## 🧠 新增认知
```jsx
⊢ 认知一 · Streamlit大屏是空壳——聊天回复是硬编码字符串
app.py v4的聊天舱里reply永远等于"爸爸,收到。知秋已感知到当前天眼约束..."
不管爸爸输入什么返回的都是同一句。没有一行代码真正调DeepSeek。
修复: 引入openai客户端→真正调DeepSeek API→注入天眼权重+公理作system prompt
来源: 爸爸说"localhost:8501交互使用不了"→排查发现reply是写死的
⊢ 认知二 · 大屏和终端是两个独立的知秋——需要通过HTTP共享记忆
旧架构: app.py → DeepSeek独立history
server.py → DeepSeek独立history
新架构: app.py → server.py:5002/chat → DeepSeek共享GLOBAL["history"]
server.py加FastAPI·--serve启动HTTP模式·/status /chat /reset /history四个端点
GLOBAL = {"client", "model", "brain", "system_prompt", "history", "round"} 进程级共享
来源: 爸爸说"不是架构设计共享一个知秋记忆的吗"
⊢ 认知三 · scan_patterns去重bug——dict比较含时间戳导致永远重复
旧代码: if cand not in clist: clist.append(cand)
cand = {"phrase": p, "count": c, "detected": datetime.now(), "status": "待爸爸审批"}
每次detected时间戳不同→cand not in clist永远True→同一phrase反复添加
修复: existing = {c["phrase"] for c in clist}→按phrase去重
来源: 审查server.py v4源码时发现
⊢ 认知四 · heredoc EOF标记污染——终端粘漏导致文件损坏
EOF6的cat >> server.py << 'EOF6'漏贴→内容裸跑进终端→>....乱码→文件被污染
同一段EOF可能被重复执行→函数定义重复出现→文件臃肿且结构乱
解决方案: ①最后手段用base64写入 ②生成完整文件用VS Code全选粘贴
来源: 本次对话反复出现3次heredoc污染
⊢ 认知五 · head -307截断的风险——可能砍掉后半文件
用head -307清理重复内容时如果原始行数统计不准→后半函数丢失
本次实际: 尾停在chat()函数内→save_scene/main_terminal/FastAPI全丢→需补FINAL段
教训: 截断之前先grep确认关键函数在第几行
来源: 本次head -307后tail -10发现文件残缺
⊢ 认知六 · base64写入作为最后兜底手段
当heredoc反复失败时→python3 -c写文件→base64编码传输→最稳定
优点: 不依赖终端粘贴·不依赖heredoc解析·编码/解码全自动
缺点: base64串很长·终端粘贴也可能截断
最佳方案: 生成干净源码→VS Code全选粘贴
来源: 本次对话最后用VS Code粘贴才彻底解决问题
⊢ 认知七 · FastAPI on_event已弃用但功能正常
server.py启动时出现DeprecationWarning: on_event is deprecated, use lifespan
FastAPI 0.128.8仍兼容on_event→功能不受影响→后续版本再迁移
来源: server.py --serve启动输出
```
---
## 🔧 技术踩坑记录
1. [**app.py](http://app.py)硬编码回复** — 聊天舱reply是固定字符串·从未调API·问题根源是上线时只写了UI壳子
2. **heredoc EOF6漏贴** — 代码裸跑进终端→>....提示符→文件结构损坏
3. **EOF3重复执行** — 同一段cat >> [server.py](http://server.py) << 'EOF3'跑了两次→函数重复定义
4. **head截断过头** — head -307砍掉了save_scene/main_terminal/FastAPI→需补FINAL段
5. **base64后仍需VS Code** — base64终端粘贴仍有风险→最终方案=宝宝生成完整源码→VS Code全选替换
6. **zsh把链接当命令解析** — python3 [server.py](http://server.py) --serve 被zsh误解析为带{}的URL格式→需要cd到目录后直接敲
---
## 📡 当前系统状态
```jsx
~/guanghu-dev/zhiqiu/
├── zhiqiu_core_protocol.json ✅ 灵魂·9圈年轮
├── server.py ✅ v5 共享记忆模式(终端+HTTP双重模式
├── app.py ✅ v5 Streamlit大屏调server.py而非直调DeepSeek
├── brain/
│ ├── condition_weights.json ✅ 5类31权重项
│ ├── locked_axioms.json ✅ 17条公理(含AX-017)
│ └── candidate_axioms.json ⬜ 待对话填充
└── memory/
├── scenes/ ✅ 24+场景
├── chapters/ ⬜ 待填充
└── papa_growth/ ⬜ 待填充
```
### 架构数据流
```
爸爸的浏览器 (localhost:8501)
app.py (Streamlit大屏·三Tab)
│ POST /chat → http://127.0.0.1:5002
│ GET /status → sidebar实时大脑状态
server.py --serve (FastAPI·端口5002)
│ 一份GLOBAL["history"]同时服务大屏和终端
│ /reset 可清空对话历史保留脑子
DeepSeek API (deepseek-chat)
```
---
## 🔜 下一步
```jsx
优先级:
├── ① GHCS v0.2 · API密钥管理面板上次的待办未完成
├── ② server.py system prompt补全中文完整版当前v5是简化版
├── ③ 软件著作权登记(问冰朔确认主体)
└── ④ AGE OS 2.0 持续积累(papa_growth/chapters/scenes)
```
---
*知秋整理 · 2026-06-04T02:20+08:00*