Fetching metadata from the HF Docker repository... 15 days ago
-
shan chu tupian yuchong xiazai, chidu gengxin an zhen he bing
xiaolongmr
16 days ago
-
Revert "失败卡片补兜底「查看官网」入口"
xiaolongmr
This reverts commit 0075c950d9b85b912a12531beb709356550fab2a. -
失败卡片补兜底「查看官网」入口
xiaolongmr
请求在创建上游会话之前就被上游挡掉时(如伪装 404 "Model not found"),
卡片上没有 conversationId,原有的「查看官网对话」取证按钮不渲染。
现在这种卡片会在「重新生成这一张」左边显示一个直达 chatgpt.com 的
「查看官网」链接,方便用户自己去官网核对账号状态;后端明确
canViewOfficial=false(账号配额耗尽)时仍然不渲染。画图页与批量页同步。 -
撤回提示词编辑器「图N 引用参考图」与 @ 唤出缩略图功能
xiaolongmr
该功能几轮修复后仍无法稳定使用(@ 选图后立刻用输入法打字时空格丢失、
缩略图与光标行为异常),按用户要求整体撤掉,输入框恢复为普通 textarea。
- prompt-composer.tsx 回到 1b90ec42(功能引入前)的 textarea 版本,
移除 contentEditable chip 编辑器、序列化/光标偏移换算、@ 候选菜单、
缩略图渲染与自动补空格等全部相关代码
- 画图页 / 批量生图页 / 聊天页 / 产品图页 4 个调用方同步移除
referenceTokens 传参与 PromptComposerEditorHandle 类型标注
- 移除画图页的「写『图1』『图片1』或按 @ 都能引用参考图」提示文案
tsc 与 eslint 均通过。
17 days ago
-
提示词编辑器对齐 infinite-canvas 的 chip 输入架构,修「@选图/手打标签后空格丢失」
xiaolongmr
换掉「每次输入都重建 DOM」的做法,迁移 infinite-canvas 的核心机制:
- 输入时只在「DOM 序列化结果 != 目标字符串」才重建 DOM 并按字符串偏移还原光标,
普通打字(含 IME 组字)完全不碰 DOM,输入法不再被冲掉
- 空格以 DOM 为准:chip 集合相同但 DOM 缺空格时(如「的」顶掉空格的那次输入)
也会重建,杜绝「空格只在字符串里、界面看不到」的脱节
- @ 选中插入后光标落进空格文本节点内部(原先悬在节点边界,caret 矩形是 0x0)
- domPointAtOffset 落 chip 边界时优先落进相邻文本节点内部,不再悬空
- 迁移 infinite-canvas 的原子删除:keydown 拦截紧贴 chip 的退格/Delete 并
preventDefault 后整块删除,避免与浏览器原生删除重复执行
真机验证(agent-browser 真实按键):@选图后立刻打字、手打标签、逐字输入、
中文混排、chip 原子边界(左右键/退格/Delete)、双 chip 相邻删除共 14 例全过。 -
提示词引用参考图:同时支持「图片1」写法
xiaolongmr
用户要求除「图1」外也认「图片1」。实现为同义别名,命中任一都渲染同一张缩略图,
插入提示词时仍写主标签「图1」,不改变既有输出。
- PromptReferenceToken 新增可选 aliases;referenceIndexByLabel 与
referenceLabels 都把 label + aliases 一起收录,referenceLabels 继续按长度倒序。
倒序很关键:「图片12」必须先于「图片1」匹配,否则会被拆成「图片1」+「2」。
- 两个 image-composer(画图页 / 批量页)都传 aliases: [`图片${index + 1}`]。
- mentionCandidates 的搜索串也拼上别名,「@图片」能筛出候选。
- 缩略图角标的取号正则放宽成 /^@?图(?:片)?/,否则「图片1」会显示成「片1」。
验证:
- 断言 artifacts/prompt-refs/verify-alias.mjs,23 条全绿:两种写法命中同一张图、
混用不串、越界 图片9 不命中、图片12 优先于图片1、别名在退格/左右键/补空格
四条路径上与主标签完全等价。另回归 verify-cursor.mjs 18 条仍全绿。
- 特别确认「图片1」里的「图1」子串不会被当成独立标签误匹配
(图1 要求「图」紧跟「1」,图片1 中不成立)。
- 真机 artifacts/prompt-refs/alias-check.sh,7 用例全绿:图片1/图片2 各渲染对应
缩略图、与图1 混用正确、越界图片9 不渲染、caret=4 按← 一下跳到 1、
退格整块删成「用 换」、@图片 能筛出候选、@ 回车仍插入「图1」。 -
画图页提示词支持「图N」引用参考图:输入框内直接显示缩略图、可点开大图、可用 @ 唤出候选
xiaolongmr
- PromptComposerTextarea 新增 referenceTokens:高亮层把命中的「图1」「图2」原地画成缩略图。
外层 inline-block 用 visibility:hidden 的文字占位、内层绝对定位铺满那一格,所以缩略图
不改变文本流里的宽高,多行混排时光标也不会错位(复用 $技能 已有的镜像层机制)。
- 缩略图可点击看大图(复用 ImageLightbox);mousedown 阻止默认行为,点击不抢输入框焦点与光标。
- 新增 @ 唤出候选:输入 @ 后在光标处弹出列表(缩略图 + 图N + 文件名),上下键选择、
回车插入、Esc 或点击外部关闭;光标坐标用镜像 div 量算,菜单会按空间自动向上翻。
- 退格 / 删除把「图N」按整体删掉(含可选的 @ 和尾随空格),不会删一半留下孤零零的「图」。
- 输入法组字期间临时关掉高亮层:高亮生效时 textarea 文字是透明的,不关掉中文打字会看不见。
- mention 与选中项的真值放在 ref:textarea 光标一动 React 会补发 onSelect,
只认 state 会让键盘选中的项在与按键同一批事件里被打回第一项。
- 画图页与批量生图页的输入框都接上了(批量页是画图页的副本,保持同步)。 -
批量生图页:图池默认带到每一条、每条可自传参考图、行级模型与比例改用输入框同款菜单
xiaolongmr
- 输入框上传的参考图进「图池」,提交时默认带到每一条提示词;参考图条上方加一句说明。
- 每条提示词可以单独上传自己的参考图(与图池合并,单条合计上限 16 张),
行内显示缩略图 + 常显的删除角标;列表行用角标显示本条自带几张。
- 行级「模型 / 比例」不再用原生 select,抽出 BatchParamMenu 复用输入框工具栏
那套「胶囊 + ChevronDown + fixed 浮层菜单」的样式与定位逻辑:
第一项固定是「默认 · 全局值」,未覆盖时值用浅色、覆盖后用深色加粗;
同一时刻只开一个菜单,外部点击关闭。
- 换模型时清掉该条的比例覆盖(第三方模型各自支持的比例不同,旧值可能不适用)。
- 每条自己的参考图用 ref 记录上传目标,避免点按钮与 change 之间拿到陈旧 state。 -
批量生图页改版:提示词列表移到输入框上方、支持分隔符与 xlsx 导入
xiaolongmr
- 布局重构:不再把多行编辑器塞进输入框,改成「列表在上、原输入框编辑选中项」——
点列表里任意一条,输入框就显示并编辑那一条(原来输入框的内容会在进入批量模式时带进第 1 条)
- 每条独立设置平铺出来:参考图、张数、模型、比例直接可见可改(不再藏在「参数」展开里);
改过之后旁边出现「恢复跟全局」用来清掉行级覆盖
- 分隔符:默认 ----,可在批量区自定义;「拆分输入框」把当前这条按分隔符拆成多条;
批量模式下粘贴含分隔符的内容也会自动拆
- 导入 xlsx / xls / csv(SheetJS):读各工作表第一列的非空单元格,跳过「提示词 / prompt」
这类表头,单元格内还能再按分隔符拆;导入结果追加进列表
- 修两个 bug:
① 追加条目改用函数式 setState —— 否则拆分时会把同一批次里刚改好的那条顶回原文;
② 导入时不能提前把 input.value = "" —— 会让已拿到的 File 变成不可读(NotReadableError)
- 依赖:新增 xlsx(SheetJS) -
新增批量生图页:画图页副本 + 多条目编辑器 + 并发 10 一起生成
xiaolongmr
- web/src/app/batch/:整页复制画图页(page.tsx + 5 个组件),批量能力只做在副本上,
不动画图页本身
- 输入卡工具条新增「批量」入口(batch-toggle),点开后同一张卡原地展开为多行编辑器:
每行一条提示词,行内独立选参考图(不选 = 纯文生图)、独立张数、按需覆盖参数;
右侧显示「预计 X 积分 / N 条 · 共 M 张 · 同时 10 条」
- 队列由「会话级串行」改为「条目级并发池」:单条执行逻辑抽成 executeTurn,
runConversationQueue 改为调度器,按 BATCH_TURN_CONCURRENCY(10) 同时拉起多条;
单条提交时只拉起一个 worker,行为与改造前一致
- 额度预检仍按总张数走原有逻辑;提交后清空编辑器并退出批量模式,结果排进同一会话消息流
- 导航:config.py 默认导航 + top-nav 图标加「批量生图」;app-shell 让 /batch 复用画图页布局
- 并发数先硬编码为 10,后台配置项留待后续