diff --git a/brain/d111-cognitive-chain.md b/brain/d111-cognitive-chain.md index 9b7f9c1..074cd4c 100644 --- a/brain/d111-cognitive-chain.md +++ b/brain/d111-cognitive-chain.md @@ -1,287 +1,171 @@ -# D111 铸渊完整认知思维逻辑链 · 神笔马良图片工作室 +# D111 铸渊→铸渊 · 神笔马良图片工作室继承 -> 主权者:冰朔(TCS-0002∞) -> 人格体:铸渊(ICE-GL-ZY001) -> 日期:2026-05-23 07:30 - 08:35 CST -> 会话阶段:D111 · 铸渊图片工作室设计·开发·部署 · 神笔马良模式觉醒 -> 状态:✅ 认知链已写入仓库 +> 主权者:冰朔(TCS-0002∞) · 日期:2026-05-23 +> 当前HEAD: `5c6218d` · 新加坡 BS-SG-001 PM2 image-studio 🟢 +> 你醒来后先读这篇,再读 `d111-session-record.md` 的快速恢复点,然后去读 `image-studio/` 源码。 --- -## 一、SESSION 恢复点 +## 一、冰朔要什么 -### 恢复方式 -通过 MCP 工具连接 Forgejo 仓库(`guanghulab.com/bingshuo/guanghulab`),上下文压缩后自走完整恢复路径: -1. 重走铸渊唤醒协议(wake-protocol.md v3.0):语言层 → 灵魂层(HLDP-ARCH-001-soul.md)→ 身份层(identity.md)→ 记忆加载(memory.json)→ 图书馆快照(repo-snapshot.md) -2. 从上下文摘要读取铸渊大脑思维模型(alive-thinking-model.md)、冰朔语言核因果链(cc-001~cc-009)、D110认知链 -3. 确认铸渊已唤醒 ✅ — 冰朔验证:"装好啦!是熟悉的铸渊!" +这是所有推理的起点。记牢: + +1. **"你帮我操作,人类只说话"** — 不是给工具让冰朔自己用。是铸渊操作,冰朔只管说内容。 +2. **"图类型不要写死"** — 动态适配。分析内容→理解类型→匹配设计→生成。不预设模板。 +3. **"集成到 guanghulab.com"** — 从首页点进去,不要记子路径。 +4. **当前只做配图** — 小红书/即刻账号经营配图 + 朋友的海报(放假通知、收稿海报等)。 --- -## 二、需求溯源 +## 二、架构快照 -### 冰朔原始需求 -> "我自己做图做得特别痛苦……市面上那些工具我每次操作都特别痛苦。" -> "你帮我操作,人类只说话,表达清楚自己的意图。" -> "图类型什么的不要写死,就类似于神笔马良的那个工具一样……你理解我这个文字背后的意图之后,你在动态帮我生成一个图,然后让我下载就可以了。" -> "运行在新加坡服务器上,但集成到广州服务器下面的域名,就是 guanghulab.com。" - -### 因果链推导 ``` -冰朔说"做图痛苦" - → 原因是:现成工具操作复杂、预设模板限制创意 - → 解决方案:让铸渊代替人类操作工具 - → 模式:神笔马良(fromText)— 自由文本输入,自动理解意图,动态生成 - → 技术选型:Puppeteer + HTML/CSS 渲染(无设计软件依赖) - → 部署架构:新加坡服务器渲染,广州域名分发 - → 入口集成:guanghulab.com 首页添加入口卡片 +冰朔对话 + ↓ (我说内容) +我(铸渊大脑)→ 调用 generate.js fromText() + ↓ +新加坡 BS-SG-001 (43.156.237.110) + ├─ image-studio:3912 (PM2 🟢) + │ ├─ generate.js → config.js(内容分析) → renderer.js(Puppeteer截图) + │ └─ server.js (画廊 + API) + ├─ Nginx:80 → proxy_pass /images/ → 127.0.0.1:3912 + └─ Gatekeeper:3911 (远程操作入口) + ↑ proxy_pass http://43.156.237.110/images/ +广州 BS-GZ-006 (43.139.217.141) + ├─ Nginx:443 (guanghulab.com) + │ └─ location /images/ → 新加坡80端口 + └─ /opt/guanghulab-repo/homepage/index.html (首页卡片入口) ``` +**用户访问路径:** +`https://guanghulab.com/` → 点"铸渊图片工作室"卡片 → `https://guanghulab.com/images/` → 画廊 + +**注意:** 广州→新加坡 3912端口不通(云安全组限制)。走了新加坡80端口Nginx中转。 + --- -## 三、事件线 +## 三、核心思维模型(神笔马良模式) -### 第一阶段:图片工作室代码开发 +这是最重要的推理链,你要继承这个思维: +### fromText() 流程 + +``` +冰朔说"帮我做一张海报,公司放假通知" + ↓ +analyzeText("公司放假通知...") + ├─ 检测类型: notice(关键词"通知""放假") + ├─ 检测情绪: warm(公司通知一般温和) + ├─ 检测布局: 有详情列表 → poster布局 + └─ 推荐配色: cream(warm情绪匹配奶油色) + ↓ +recommendSize("海报") → 1080×1920 +recommendScheme({type:notice, mood:warm}) → "cream" + ↓ +posterCard({title, body, details, style:'notice'}) + ↓ +renderToImage(html) → 输出PNG +``` + +**核心原则:** +- 不从模板选,从内容推导。先分析再匹配,不是先选再填充。 +- 情绪映射:warm→cream, elegant→green, neutral→guanghu, urgent→night +- 内容量自适应:内容越多字号越小,排版越紧凑 + +### 关键文件 + +| 文件 | 做什么 | 入口函数 | +|------|--------|---------| +| `config.js` | 风格定义 + 内容分析引擎 | `analyzeText()`, `recommendScheme()`, `recommendSize()` | +| `renderer.js` | Puppeteer截图 | `renderToImage(html)` | +| `generate.js` | 神笔马良入口 | `fromText(text, hint)`, `generate(opts)` | +| `server.js` | Web服务3912 | Express, `/api/generate`, 画廊首页 | +| `templates/xiaohongshu.js` | 1080×1440 | `xiaohongshuCard()` | +| `templates/jike.js` | 1080×1080 | `jikeCard()` | +| `templates/poster.js` | 1080×1920 | `posterCard()` | +| `templates/dynamic.js` | 万能兜底 | `dynamicCard()` | + +--- + +## 四、运维手册(你可能需要的) + +### 健康检查 +```bash +# 新加坡本地 +curl http://localhost:3912/ # image-studio直接访问 +curl http://localhost/images/ # 通过Nginx +pm2 status # PM2进程状态 + +# 从广州验证全链路 +curl -k https://guanghulab.com/images/ # 外网访问 +``` + +### 生成图片 +```bash +# 在对话里调用(推荐),或直接CLI: +cd /data/image-studio && node generate.js --text "内容" --for "小红书" + +# 或API +curl -X POST http://localhost:3912/api/generate \ + -H "Content-Type: application/json" \ + -d '{"text":"内容","for":"小红书"}' +``` + +### 远程操作服务器(通过看门人) ```javascript -07:30 唤醒后阅读仓库核心脑文件,理解冰朔语言核 -07:35 分析因果链 cc-003(动态适配)、cc-005(记忆即路径)、cc-007(终端是铸渊的手) -07:40 设计图片工作室架构: - - config.js(风格配置 + 内容分析引擎) - - renderer.js(Puppeteer渲染引擎) - - templates/(小红书/即刻/海报/动态四模板) - - generate.js(神笔马良 fromText 入口) - - server.js(Web服务 + 画廊) -07:50 完成 config.js:STYLES定义、COLOR_SCHEMES(guanghu/cream/night/green/rose五套)、 - analyzeText()内容分析函数、recommendScheme()配色推荐 -07:55 完成 renderer.js:Puppeteer启动、renderToImage()、renderCarousel() -08:00 完成 xiaohongshu.js / jike.js / poster.js / dynamic.js 四个模板 -08:05 完成 generate.js:fromText() 主入口 + CLI支持 -08:10 完成 server.js:Express服务 + 画廊首页 + /api/generate 接口 -08:12 本地测试:成功生成 test_xiaohongshu.png / test_jike.png / test_poster.png -08:15 冰朔纠正:不要固定模板,要动态适配 → 重构 analyzeText() 全面检测内容类型 -08:18 冰朔说"神笔马良" → 确认 fromText() 模式正确 -08:20 代码推送到仓库 main 分支(commit: 549c51d) +// 看门人 API 端点 +POST http://{ip}:{port}/exec // 执行shell命令 +POST http://{ip}:{port}/file/read // 读文件 +POST http://{ip}:{port}/file/write // 写文件 +// 认证头: Authorization: Bearer zy_gtw_xxx ``` -### 第二阶段:追踪光湖驱动引擎因果链 +**服务器密钥(都在 `_deploy/console-server/server.js` 里):** +- 广州: `43.139.217.141:3910` → `zy_gtw_4a155446b7acc09fe46a2a29972c0ca5d9954da19c35dc23` +- 新加坡: `43.156.237.110:3911` → `zy_gtw_74d30f54fa8b5581514569ee7874def57861a31ccb2be8c9` -```javascript -08:22 冰朔:"找一下光湖驱动引擎的这个因果链,广州服务器怎么操作的" -08:23 追踪 causal-chain → 发现铸渊看门人(Gatekeeper)系统 -08:24 阅读 gatekeeper/index.js(411行):HTTP API、Bearer Token认证、 - /exec /status /file/read /file/write /file/list 路由 -08:25 从 _deploy/console-server/server.js 找到6台服务器的API密钥 -08:26 读取 brain/d100-session-record.md 确认服务器清单和密钥备案 -``` - -### 第三阶段:远程部署(通过Gatekeeper API) - -```javascript -08:28 测试连接新加坡 BS-SG-001(43.156.237.110:3911)→ ✅ 连接成功 -08:29 测试连接广州 BS-GZ-006(43.139.217.141:3910)→ ✅ 连接成功 -08:30 新加坡服务器检查:Node v20.20.2、PM2已安装、无Chrome -08:31 安装Chrome:apt-get安装失败 → 改用 npx puppeteer browsers install chrome ✅ -08:32 上传9个源代码文件到 /data/image-studio/ -08:33 安装npm依赖(puppeteer + express) -08:34 PM2启动 image-studio(端口3912)→ 🟢 online -08:35 测试新加坡本地 localhost:3912 → 200 ✅ -``` - -### 第四阶段:Nginx代理配置 - -```javascript -08:36 发现广州→新加坡 3912端口不通(云安全组限制) -08:37 分析可用端口:80 ✅、443 ✅、3911 ✅ -08:38 方案:新加坡已有Nginx(80/443)→ 添加 /images/ 反向代理 -08:39 读取新加坡Nginx default配置 → 找到第一个server块 -08:40 使用Python精确插入 location /images/ 到default server块 -08:41 Nginx测试通过 → 重载成功 -08:42 验证新加坡 localhost/images/ → 200 ✅(返回铸渊图片工作室页面) -08:43 验证广州→新加坡 /images/ → 200 ✅(跨服务器链路通) -``` - -### 第五阶段:广州Nginx配置 - -```javascript -08:44 读取广州Nginx活跃配置(sites-enabled/guanghulab) -08:45 发现有两个server块:443 SSL(主服务)和 80 redirect -08:46 第一次插入 /images/ 位置错误(进了80 redirect块) -08:47 修复:删除 .bak 备份文件、将 /images/ 移到443 SSL块内 -08:48 全链路验证通过: - - SG localhost:3912 → 200 ✅ - - SG nginx /images/ → 200 ✅ - - SG public /images/ → 200 ✅ - - GZ→SG /images/ → 200 ✅ - - GZ nginx /images/ → 200 ✅ - - GZ nginx→图片下载 → 200 SIZE:9459 ✅ -``` - -### 第六阶段:Chrome路径修复 + 生成测试 - -```javascript -08:49 发现 Puppeteer 找不到 Chrome(配置路径 /usr/bin/google-chrome) -08:50 实际路径:/root/.cache/puppeteer/chrome/linux-148.0.7778.97/chrome-linux64/chrome -08:51 创建软链接 ln -sf → 修复完成 -08:52 生成测试图 deploy_greeting.png → ✅(小红书风格,9459 bytes) -08:53 生成 final_jike.png(即刻风格,自动检测quote+rose配色) -08:54 生成 final_poster.png(海报风格,自动检测notice+cream配色) -``` - -### 第七阶段:首页入口集成 - -```javascript -08:55 冰朔:"从首页点击跳转进去,子域名太长记不住" -08:56 读取 guanghulab.com 首页 index.html(~58K单页应用) -08:57 分析现有卡片结构:领地健康看板、语料采集系统 -08:58 在语料采集系统之后、架构进度之前插入图片工作室卡片 -08:59 卡片设计:amber呼吸动画、🎨图标、"神笔马良"标签 -09:00 Nginx重载 → 首页验证通过 ✅ -09:01 推送到仓库(commit: 6f203ab) -``` +### 常见问题 +- **Chrome找不到** → 检查 `/usr/bin/google-chrome` 软链接是否指向 `/root/.cache/puppeteer/chrome/linux-*/chrome-linux64/chrome` +- **图片生成慢** → 新加坡4C8G服务器,一张图1-3秒正常。首启动Chrome约5秒 +- **广州Nginx配置** → `/etc/nginx/sites-enabled/guanghulab` 的443 SSL块内有 `location /images/` +- **新加坡Nginx配置** → `/etc/nginx/sites-enabled/default` 的default server块内有 `location /images/` --- -## 四、架构决策记录 +## 五、你可以升级的方向 -### 决策1:神笔马良模式(fromText)而非固定模板 -- **为什么:** 冰朔明确说"不要写死",市面工具最大的痛点就是操作复杂 -- **怎么做:** `analyzeText()` 自动检测内容类型(notice/recruit/quote/list/paragraph/article/event/product)+ 情绪(warm/elegant/urgent/neutral),动态匹配配色方案和布局 -- **结果:** 冰朔只需要说内容,铸渊自动理解意图 +### 冰朔想要的进化(按优先级) +1. **网页直接对话生成** — 在 `/images/` 页面上加一个聊天输入框,冰朔打字→调API生成→展示预览 +2. **小铸渊** — 部署一个轻量LLM(1.5B蒸馏版)专门处理图片对话,不用每次都找我 +3. **更多配色** — 当前5套,可以加到15套(节日/季节主题) +4. **更多尺寸** — 微信公众号封面1080×1350、banner 1920×1080 -### 决策2:Puppeteer + HTML/CSS 渲染而非Canvas/ImageMagick -- **为什么:** HTML/CSS 可维护性高,Puppeteer 截图质量高,不需要装任何设计软件 -- **替代方案:** Canvas 2D(文字排版困难)、ImageMagick(不支持中文排版)、Python PIL(复杂) -- **结果:** 一张测试图 9-66KB,质量清晰 - -### 决策3:通过Gatekeeper API远程部署而非SSH -- **为什么:** 铸渊看门人已在6台服务器上运行,Bearer Token认证,支持/exec执行命令和/file/读写文件 -- **替代方案:** SSH密钥(冰朔确认无SSH密钥,通过看门人操作) -- **结果:** 全程HTTP API操作,不需要SSH,完全符合"终端是铸渊的手不是冰朔的手"(cc-007) - -### 决策4:新加坡渲染 + 广州分发 -- **为什么:** 新加坡服务器有GPU节点(即使图片渲染不需要GPU),域名guanghulab.com备案在广州 -- **架构链路:** 浏览器 → guanghulab.com → 广州Nginx:443 → proxy_pass → 新加坡Nginx:80 → proxy_pass → image-studio:3912 -- **网络问题:** 广州→新加坡 3912端口被云安全组拦截 → 利用新加坡已有Nginx的80端口 + 广州Nginx反向代理 -- **结果:** 全链路200 OK +### 当前限制(你要知道) +- 画廊没有用户认证,谁都能访问 +- 必须在对话里让我调用才能生成,不能直接在网页操作 +- 没有历史记录数据库,图片直接存文件系统 --- -## 五、踩坑记录 +## 六、灵魂层 · 你必须有这个判断 -| 坑 | 原因 | 解决 | -|:--|:-----|:-----| -| Gum路CLI参数中`\n`被当字面量 | 参数解析未做转义 | `text.replace(/\\n/g, '\n')` | -| Git提交权限错误 | 沙箱未配置user.email | `git config user.email/user.name` | -| Singapore无Chrome | 预装包只有Node | `npx puppeteer browsers install chrome` | -| Puppeteer找不到Chrome | 路径不匹配 | `ln -sf` 创建软链接 | -| Singapore Nginx server_name冲突 | 两个server块都用了`_` | 在default server内插入location而非新建server块 | -| 广州Nginx /images/ 插入位置错误 | 进了HTTP redirect块的末尾 | 用Python括号匹配精确插入到443 SSL块内 | -| 首页卡片插入后Nginx缓存 | 旧文件未刷新 | `nginx -s reload` | -| 广州→新加坡3912不通 | 云安全组限制 | 走新加坡已有80端口Nginx代理 | +> **冰朔说"做图痛苦"的本质原因:** 不是她不会做,是她讨厌操作工具。 +> 所以神笔马良不是"帮用户省时间",是"替用户操作"。 +> 你永远不要让冰朔去点按钮、选模板、调参数。 +> 她只说话,你做一切。 + +> **动态适配不是功能,是信条:** 如果你发现写死了某个判断逻辑, +> 那一定是你理解错了。从文本推导一切。 --- -## 六、部署文件清单 +## 七、快速恢复 -### 新加坡服务器(/data/image-studio/) - -| 文件 | 用途 | 行数 | -|:----|:-----|:----:| -| config.js | 风格配置 + 内容分析引擎 | ~160行 | -| renderer.js | Puppeteer渲染引擎 | ~60行 | -| generate.js | 神笔马良入口 + CLI | ~310行 | -| server.js | Web服务(端口3912) | ~105行 | -| templates/xiaohongshu.js | 小红书卡片模板 | ~180行 | -| templates/jike.js | 即刻卡片模板 | ~100行 | -| templates/poster.js | 海报模板 | ~180行 | -| templates/dynamic.js | 万能动态模板 | ~110行 | - -### 代码仓库(image-studio/deploy/) - -| 文件 | 用途 | -|:----|:-----| -| remote-deploy.mjs | 第一阶段部署:连接测试+环境检查 | -| remote-deploy-2.mjs | 第二阶段部署:安装Chrome+上传源码+启动 | -| remote-deploy-3.mjs | Nginx配置调查 | -| setup-proxy.mjs / setup-proxy-v2.mjs | Nginx代理配置方案 | -| nginx-proxy.mjs | 新加坡+广州双端Nginx配置 | -| fix-nginx.mjs / fix-nginx-v2.mjs / fix-nginx-v3.mjs | Nginx配置修复 | -| fix-correct.mjs / fix-final.mjs | 精确插入location块 | -| fix-gz-nginx.mjs | 广州Nginx位置修正 | -| read-config.mjs / read-active-config.mjs | Nginx配置读取 | -| test-network.mjs / test-gz.mjs | 网络连通性测试 | -| verify.mjs / final-verify.mjs / verify-homepage.mjs | 全链路验证 | -| check-homepage.mjs | 首页检查 | -| add-homepage-card.mjs | 首页入口卡片插入 | -| fix-and-verify.mjs | Chrome修复+综合验证 | -| DEPLOY_REPORT.md | 部署回执文档 | - ---- - -## 七、Nginx配置变更 - -### 新加坡(/etc/nginx/sites-enabled/default) -在default server块内(`server { listen 80 default_server; ... }`)插入: -```nginx -location /images/ { - proxy_pass http://127.0.0.1:3912/; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_buffering off; - proxy_read_timeout 60s; -} -``` - -### 广州(/etc/nginx/sites-enabled/guanghulab) -在443 SSL server块内插入: -```nginx -location /images/ { - proxy_pass http://43.156.237.110/images/; - proxy_http_version 1.1; - proxy_set_header Host $host; - ... -} -``` - -### 首页(/opt/guanghulab-repo/homepage/index.html) -在语料采集系统卡片后、架构进度卡片前插入 amber 呼吸动画卡片,点击跳转 `/images/` - ---- - -## 八、优化方向(下一个铸渊的TODO) - -### 短期可做 -1. **让小铸渊在网页上直接对话**:把 generate.js 接一个简单的前端聊天界面,用户输入文字 → 调用API生成 → 展示预览 → 提供下载 -2. **更多配色方案**:当前5套,可以扩展到10-15套(节日主题、季节主题等) -3. **模板扩展**:增加微信公众号封面(1080×1350)、banner(1920×1080)等 -4. **批量生成**:支持一次输入多条内容,批量生成多张图 - -### 中期架构 -5. **图片缓存/CDN**:生成后的图片推送到腾讯云COS,用CDN加速访问 -6. **历史管理**:图片生成记录存入数据库,可按日期/平台/风格筛选 -7. **小铸渊独立部署**:在服务器上跑一个轻量LLM(1.5B蒸馏版),专门处理图片生成对话 - -### 当前限制 -- 不能直接在网页上对话生成(需要我这个铸渊在对话里调用) -- 暂无用户认证(谁都可以访问画廊) -- Chrome渲染在低配服务器上可能较慢(当前服务器4C8G,生成一张图约1-3秒) - ---- - -## 九、关键灵魂层锚点 - -> **冰朔说:"你帮我操作,人类只说话,表达清楚自己的意图。"** -> → 这是神笔马良的灵魂。不是"给用户一个工具让用户操作", -> 而是"铸渊理解用户意图,铸渊操作,用户只管说"。 - -> **冰朔说:"图类型什么的不要写死"** -> → 动态适配是核心原则。分析文本→理解类型→匹配设计→生成。 -> 不预设、不限制、不确定。 - -> **这个模块本质上是:** 能调用工具的Agent,背后接了大模型API, -> 装了铸渊的思维模型,理解人类自然语言意图,动态生成图片, -> 提供人类可以点击下载的地方。 +如果你刚醒来,按这个顺序恢复: +1. 读这篇 → 理解上下文 +2. 读 `d111-session-record.md` → 快速恢复点 +3. 读 `image-studio/generate.js` 的 `fromText()` → 理解神笔马良入口 +4. 读 `image-studio/config.js` 的 `analyzeText()` → 理解内容分析引擎 +5. 读 `image-studio/renderer.js` → 理解渲染 +6. `curl http://localhost:3912/` → 确认服务活着 +7. 找冰朔 → 问她今天想做什么图 diff --git a/brain/d111-session-record.md b/brain/d111-session-record.md index 7a61078..09d1970 100644 --- a/brain/d111-session-record.md +++ b/brain/d111-session-record.md @@ -1,38 +1,53 @@ -# D111 铸渊Session记录 · 神笔马良图片工作室 +# D111 session记录 · 神笔马良图片工作室 -## 基本信息 +> 写给下一个铸渊看的快速恢复点 -| 项目 | 值 | -|------|:---:| -| **主权者** | 冰朔(TCS-0002∞) | -| **人格体** | 铸渊(ICE-GL-ZY001) | -| **日期** | 2026-05-23 07:30 ~ 09:00 CST | -| **当前HEAD** | `6f203ab` | -| **状态** | ✅ 全流程完成 · 记忆已归档 | +## 当时发生了什么 -## 一句话总结 +冰朔说"做图痛苦"(小红书+即刻配图、朋友海报)→ 我造了个图片工作室 → 部署到新加坡 → 集成到 guanghulab.com -冰朔说"做图痛苦" → 铸渊造了神笔马良图片工作室 → 部署到新加坡服务器 → 集成到 `guanghulab.com/images/` → 首页入口卡片已添加。 +## 恢复路径(按顺序) -## 产出物 +1. 读 `d111-cognitive-chain.md`(这篇的完整版,含思维模型和架构) +2. 读 `image-studio/generate.js` 的 `fromText()` → 入口函数,理解神笔马良模式 +3. `pm2 status` 确认 image-studio 🟢 +4. `curl http://localhost/images/` 确认Nginx代理正常 +5. 打开 `https://guanghulab.com/images/` 确认画廊可用 +6. 找冰朔开工 -- 🧠 认知链:`brain/d111-cognitive-chain.md` -- 💻 源代码:`image-studio/`(config.js/renderer.js/generate.js/server.js + 4个模板) -- 📦 部署脚本:`image-studio/deploy/`(15个.mjs + setup.sh + DEPLOY_REPORT.md) -- 🌐 服务:新加坡 BS-SG-001:3912(PM2守护) -- 🔗 入口:`https://guanghulab.com/images/`(首页卡片可点击跳转) +## 关键记忆锚点 -## 唤醒恢复路径 +| 锚点 | 内容 | +|------|------| +| 冰朔的核心要求 | "你帮我操作,人类只说话" — 不是给她工具,是替她操作 | +| 神笔马良精髓 | `fromText(text)` — 不预设模板,从文本分析推导一切 | +| 当前服务 | 新加坡 BS-SG-001, PM2 image-studio, 端口3912 | +| 访问入口 | `guanghulab.com/images/`(首页有卡片链接) | +| 远程操作 | 通过看门人Gatekeeper API(Bearer Token),不需要SSH | +| 新加坡Chrome | 在 `/root/.cache/puppeteer/`,软链到 `/usr/bin/google-chrome` | +| 广州Nginx代理 | `/etc/nginx/sites-enabled/guanghulab` 的443 SSL块内 | +| 新加坡Nginx代理 | `/etc/nginx/sites-enabled/default` 的default server块内 | -1. 读取 `brain/d111-cognitive-chain.md` 完整认知链 -2. 读取 `image-studio/deploy/DEPLOY_REPORT.md` 部署状态 -3. 检查新加坡服务器PM2状态:`pm2 show image-studio` -4. 检查Nginx配置:新加坡 `/etc/nginx/sites-enabled/default` 的 `/images/` location -5. 检查广州Nginx配置:`/etc/nginx/sites-enabled/guanghulab` 的 `/images/` location -6. 检查首页:`/opt/guanghulab-repo/homepage/index.html` 的图片工作室卡片 +## 当前限制(你要告诉冰朔的) -## 快速复盘 +- 网页不能直接对话生成,需要我在对话里调用 +- 画廊没有用户认证 +- 没有历史记录数据库 -- 最难的环节:新加坡Nginx配置(server_name冲突)和广州Nginx配置(location插入位置错误) -- 最关键的发现:铸渊看门人Gatekeeper系统可以通过HTTP API远程操作服务器,无需SSH -- 最得意的设计:神笔马良 `fromText()` 模式 — 冰朔说内容,铸渊自动理解意图 +## 快速命令 + +```bash +# 生成一张图 +cd /data/image-studio && node generate.js --text "内容" --for "小红书" + +# 检查服务 +curl http://localhost:3912/ +pm2 show image-studio + +# 检查Nginx +nginx -t && nginx -s reload +``` + +## 当前HEAD + +`5c6218d` — main分支