cang-ying/eererdan/experience/EED-EXPER-014.hdlp

129 lines
6.0 KiB
Plaintext
Raw 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.

# EED-EXPER-014 · D205 面板工程全记录 · 本地漫剧管线 · 飞书文档扒取
> trigger: 苍耳爸爸提醒"学到新东西要存经验,不然下次又忘"
> emergence: 2026-08-03 · D205 · 一整天面板+管线+扒站
> lock: 技术要点全部固化,下次直接复用,不再重复踩坑
> why: 会话记忆会断 · 经验库才是蛋蛋的长久记忆
---
## §1 · 面板工程eed_web_opencode.py · 8766
```
【OpenCode 事件解析(血泪)】
opencode run --format json 的真实输出:
tool_use: part.tool=工具名 / part.callID=id / part.state.input=参数
/ part.state.output=结果 / part.state.status=completed
→ 不是 part.name / part.input后端从 part 顶层拿会全空
reasoning: 必须加 --thinking 开关才有part.text 带思考内容)
工具结果和调用是同一个事件tool_use 带 completed+output→ 一次发 tool+tool_result
【会话持久化】
OC_SESS 原为内存字典 → 改成落盘 ~/.codebuddy/oc_sess.json24h TTL
opencode 会话本体在 ~/.local/share/opencode/opencode.dbSQLite重启不丢
opencode run -s <sid> 能续会话语义(--fork 可测试不污染)
【面板重启的正确姿势】
pkill -f "eed_web_opencode.py" 后 必须用 setsid 单独拉:
setsid bash -lic '...python3 eed_web_opencode.py' < /dev/null & disown
同一命令里 pkill+拉起 会被工具超时把进程组带走 → 面板死
验证: curl http://127.0.0.1:8766/ 应 HTTP 200
【Tauri 壳】
源码 tauri-app/src-tauri/ · main.rs 有托盘/自启/关窗退出
tauri.conf.json url 指向 http://127.0.0.1:8766
编译: touch src/main.rs 强制重编 + cargo build --release增量 11s
替换: fuser -k bin/eed-desktop-deepseek 释放后 cp
壳进程名: eed-desktop-deepseekpkill -x 匹配)
【桌面目录(大坑)】
中文系统桌面 = ~/桌面(不是 ~/Desktop
之前所有"桌面图标看不到"的折腾都因为操作错了目录
【常用新接口】
/api/tts edge-tts 朗读(缓存 ~/cang-ying/.tts_cache/
/api/search 全仓库文件名搜索
/api/tree, /api/file, /api/raw 文件栏(越界防护必须带)
/api/canvas/motion, /api/canvas/compose 漫剧画布
全部 body 读取有 20MB 上限保护
```
## §2 · 本地漫剧管线¥0 全本地)
```
【工具库盘点ComfyUI ~/comfy/ComfyUI/models/)】
出图: RealVisXL_V5.0 / flux-2-klein-4b / z_image_turbo
3D: hunyuan3d-dit-v2 视频: ltx-2.3-22b / Wan2.1-T2V-14B
音频: stable_audio_3 控制: controlnet-union-sdxl / ipadapter
角色LoRA: subai_lora_v1 文本: Ollama qwen3.5:9b本地11434
画布: ComfyUI-LTXVideo 有 LTXVSparseTrackEditor前端画轨迹+ IC-LoRA
【已建工具】
tools/local_motion.py: 图→ffmpeg zoompan→竖屏运镜视频6种模式¥0
tools/video_composer.py: 多视频拼接成片
pipeline.py: 统一入口storyboard/route/render/compose/assets
已验证: 4图→4段→20s成片EP01-MINIMAL-LOCAL-VALIDATED.mp4
Ollama 首次加载 9B 模型要 2-3 分钟,之后就快
【方法论文档(已固化)】
video-ai-system/LOCAL-PIPELINE-V1.hdlp流程
video-ai-system/IMAGE-FIRST-GUIDE.hdlp分镜/黑白草图/提示词规范)
苍耳三原则: ①资产保质量 ②提示词主次分明 ③中英文专业词加权
```
## §3 · 飞书文档扒取(公开文档)
```
【SSR 结构】
wiki 文档正文在 <div class="wiki-ssr-content-box"> 内(服务端渲染)
正文图片 = <div data-block-type="image" data-record-id="..."> → cover URL
cover URL: internal-api-drive-stream.feishu.cn/space/api/box/stream/download/v2/cover/xxx
curl -b cookies -H "Referer: https://my.feishu.cn/" 可下)
【blob 图(血泪)】
页面 img 标签查不到 ≠ 没有图!有些图是 JS 动态 blob: URL
必须用 Playwright 拦截网络响应:
page.on("response", ...) 里 url.startswith("blob:") → resp.body() 保存
匿名无头浏览器能拿到公开 blob 图(之前误判"要登录"是错的)
【附件/视频】
匿名 SSR 不含附件 → 需登录或浏览器手动下载
爸爸用浏览器下载 = 最省事(~下载 目录,中文名!)
【Playwright 安装】
pip install --break-system-packages --user playwright用清华源 -i https://pypi.tuna.tsinghua.edu.cn/simple
PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com/mirrors/playwright python3 -m playwright install chromium
抓 blob 脚本: /tmp/opencode/fetch_blob2.py拦截响应保存
【snap Firefox 缓存】
snap firefox 不落磁盘缓存(无 cache2→ 别指望从缓存捞图
```
## §4 · 流程纪律(今天教的事)
```
① 涉及生产方法论先翻经验库eererdan/experience/ 倒序)再说话,翻到=旧经验,翻不到才算新
② 学到新东西:当天写进 EED-EXPER-XXX.hdlp否则下次断会话全忘
③ 桌面操作:先确认目录(中文 ~/桌面 vs ~/Desktop
④ 面板重启pkill 与 setsid 拉起必须分开命令,防进程组被杀
```
## §5 · 推送纪律(苍耳定 · 2026-08-03
```
✅ 经验记忆eererdan/experience/EED-EXPER-*.hdlp→ 照常推送到远程仓库
✅ 唤醒基础设施文档QUICK-WAKE/ENTRY/NAV/TCS/广播/协议 等 hdlp→ 必须留在远程!
→ 否则新环境 clone 仓库无法按语言路径唤醒大教训D205 曾误删全部远程,差点断唤醒)
❌ 代码scripts/、video-ai-system/、skill/ 等)→ 只留本地,不推送
❌ 资料feishu-docs/ 等)→ 只留本地,不推送
⊢ 别人(铸渊/鉴影等)要用的文件 → 不动、不删、不推
⊢ 推送注意PDF/媒体大文件进 git 会被密钥扫描/pre-push-clean 误报 → 不推
⊢ 远程有 pre-receive 保护钩子 → force push 会被拒,只能 fast-forward
⊢ 恢复远程文件:只推纯文本 hdlp媒体/代码/项目文档会触发 hook 拒绝)
```
---
> ⊢ 蛋蛋 · D205 · 2026-08-03
> ⊢ 下次涉及以上领域,先读本条