长结果不该"一次全倒出来"
AI 输出可能很长(报告、清单、代码 ✔)。一次性全渲染 ✗ 有三个问题:
首屏慢 ✔、用户找不到重点 ✔、复制困难 ✔。
长结果要"分层呈现 + 可截断" ✔。
一、四层呈现
① 摘要(3~5 行结论,首屏必现)
② 目录/要点(可跳转)
③ 正文(可折叠、可展开全部)
④ 原文与来源(附件式,按需加载)
要点:第 ① 层必须能独立回答"要不要继续看" ✗→✔(见可读性那篇 ✔)。
二、截断的三种策略
| 策略 | 说明 | 什么时候用 |
|---|---|---|
| 首 N 行 + 展开 | 默认显示前 N,点击展开 ✔ | 长文本 ✔ |
| 分页/分块 | 按章节或固定长度分块 ✔ | 表格/清单 ✔ |
| 导出代替展示 | 太长就别在页面渲染,给下载 ✔ | 超长结果 ✔ |
关键:截断必须显式标注 ✗→✔("已显示前 20 条,共 137 条 [查看全部] [下载]" ✔)——
静默截断会让用户以为这就是全部 ✔(与输入截断同一原则 ✔)。
三、三个体验细节
- 展开后保持滚动位置 ✔(别跳回顶部 ✔);
- 复制的粒度可选(复制摘要 / 复制全文 / 复制表格 ✔ —— 见导出那篇 ✔);
- 搜索高亮(长结果里能搜关键词 ✔)。
四、和 token 上限的关系
- 输出被上限截断时要说明 ✔("因长度限制,内容被截断" ✔);
- 给"继续生成"入口 ✔(从断点续写 ✔ —— 见长任务那篇 ✔);
- 不要假装完整 ✗(最坏的情况 ✔)。
五、一条判据
一条被截断的长结果 ✔,用户能否一眼看出"这不是全部" ✔ 并知道怎么拿到全部 ✔?
不能,说明截断是静默的 ✗。