探索性 AI 聊天应用:交叉分析表 - ExperDot - 博客园4
最新动态
GitHub 开源: https://github.com/experdot/pointer
前言
不久前,我写了一篇文章《AI 聊天应用的 10 条高级需求》,吐槽了当前 Web 端和桌面端 LLM 聊天工具的 10 个体验问题。
我的核心观点是:AI聊天工具应该是一个可长期依赖、结构化、可检索、可移植的个人知识系统。
光吐槽没用,坐而论道不如起而行。于是,我借助 AI 编程工具(用 Cursor 辅助写代码,几乎完成了 90% 的工作量),把这些想法和需求,一点点变成了一个真实的应用,我给它取名叫 Pointer。
Pointer 的初衷就是为了解决我自己的问题:强大的全局检索、树状文件夹分类、一键导出带格式的图片、自由勾选对话合并导出等等。
然而,就在我开发 Pointer 的过程中,突然有了一个全新的想法。

从整理到对比
在解决了检索、分类、导出这些“整理”问题后,我发现了一个更深层次的需求:结构化的对比分析。
比如,我想让 AI 帮我比较一下 Vue、React 和 Svelte 这三个前端框架的优劣,AI 会给我生成一大段文字。
但这些信息是散落在段落里的,我想把它们按“学习曲线”、“生态系统”、“性能”等维度进行对位比较,就得自己手动整理成一个表格。
当然,我可以让 AI 直接生成 Markdown 表格,但是维度一多,生成质量就会下滑,例如每个单元格都是寥寥数语。
我意识到,需要找到一种工具,它非常利于对比和分析,也能组织和呈现 AI 生成的内容。
于是,交叉分析表(Crosstab) 这个功能的设计就应运而生。

Pointer 的新探索:AI 驱动的交叉分析表
交叉分析表本身不新鲜,但让 AI 理解并渐进式地构建它,是我想尝试的方向。我希望有个引导助手,让 AI 引导用户,一步步把脑海中的模糊想法变成结构清晰的分析表。
我设计了一个四步走的工作流:
- 第一步:定义主题。 你只需要告诉 AI 一个大的方向,比如“比较主流的编程语言”或者“分析三国时期的主要人物”。
- 第二步:生成框架。 AI 会基于你的主题,自动分析并推荐表格的横轴(比如:Java、Python、Go)和纵轴(比如:性能、开发效率、社区支持)。当然,这些推荐你都可以随时修改、增删。
- 第三步:填充内容。 框架搭好后,AI 会逐个填充每个交叉单元格的内容。比如,它会专门去生成“Python”在“开发效率”这个维度的具体描述。为了提高效率,你也可以让它一次性生成一整行或一整列。
- 第四步:交互和编辑。 AI 生成的内容不可能 100%完美。你可以在任何一个单元格里,让 AI 重新生成,或者自己手动修改。最终的控制权永远在你手里。

一些小的设计思考
在实现这个功能时,我遇到了一些细节上的挑战,也做了一些取舍。
- 智能建议: 有时候我连横轴、纵轴该如何设置都没想好。所以我做了个“智能建议”功能,在你定义好一个轴之后,它会根据主题帮你推荐另一个轴的可能选项。
- 细粒度控制: 我不想做一个全自动的“傻瓜”工具。因此,你可以对整个表、一整行/列、甚至单个单元格进行生成、重生成、清空等操作。我希望在自动化和手动控制之间找到一个舒适的平衡点。
- 沉浸式体验: 分析复杂的表格时,屏幕空间总是捉襟见肘。所以我加入了全屏模式,这些小细节对提升体验其实挺重要的。

这个功能能用在哪些地方?
最初我只是想解决自己的学习和分析需求。
下面举几个例子:
编程语言

学语言(生成交叉表)

学语言(基于交叉表提问)

写小说


挑战与未来
当然,这个功能还很初级。当表格变得非常大时,性能会是个挑战;我想到的还有“模板保存与复用”、“导出为 Excel”等功能。
回顾从最初的“10 个痛点”到如今的“交叉分析表”,我深刻地感受到,好的工具是在解决真实问题的过程中被“发现”和“生长”出来的,而我的探索也才刚刚开始。
希望这些思考和实践能给你带来一些启发。
附录
- GitHub 开源:https://github.com/experdot/pointer

浙公网安备 33010602011771号