129 lines
6.0 KiB
Plaintext
129 lines
6.0 KiB
Plaintext
# 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.json(24h TTL)
|
||
opencode 会话本体在 ~/.local/share/opencode/opencode.db(SQLite,重启不丢)
|
||
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-deepseek(pkill -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
|
||
> ⊢ 下次涉及以上领域,先读本条
|