前言

不久前,我写了一篇长文,吐槽了当前 Web 和桌面端 AI 聊天工具的 10 个体验问题。从“找不到几周前绝妙点子”的全局检索缺失,到“置顶所有等于没置顶”的分类混乱,再到分享代码格式尽失的导出难题……这些痛点,相信很多把 AI 当生产力工具的朋友都深有体会。

我的核心观点是:AI 聊天不应该只是一个临时的问答机,它应该是我可以深度挖掘的宝藏知识库。

光吐槽没用,坐而论道不如起而行。于是,我借助 AI 编程工具(我用 Cursor 帮我写代码,几乎完成了 90% 的工作量),把这些想法和需求,一点点变成了一个真实的应用,我给它取名叫 Pointer

Pointer 的初衷就是为了解决我自己的问题:强大的全局检索、树状文件夹分类、一键导出带格式的图片、自由勾选对话合并导出……这些功能让我的 AI 聊天记录,终于从线性信息流,变成了井然有序的知识树。

然而,就在我开发和使用 Pointer 的过程中,一个全新的想法不期而至。

从“整理”到“对比”:新问题的浮现

在解决了检索、分类、导出这些“整理”问题后,我发现了一个更深层次的需求:结构化的对比分析

比如,我想让 AI 帮我比较一下 VueReactSvelte 这三个前端框架的优劣,AI 可以给我生成一大段文字。但这些信息是散落在段落里的,我想把它们按“学习曲线”、“生态系统”、“性能”等维度进行对位比较,就得自己手动整理成一个表格。

这个过程非常繁琐。我意识到,AI 能够生成高质量的内容,但如果这些内容不能以一种利于对比和分析的结构呈现出来,它的价值就大打折扣了。我需要一个能让 AI 直接“思考”成表格的工具。

于是,交叉分析表(Crosstab) 这个功能的设计就应运而生。

Pointer 的新探索:AI 驱动的交叉分析表

交叉分析表本身不新鲜,但让 AI 理解并渐进式地构建它,是我想尝试的方向。我不希望用户上来就面对一个空白表格,而是让 AI 引导用户,一步步把脑海中的模糊想法变成结构清晰的分析表。

我设计了一个四步走的工作流:

  1. 第一步:定义主题。 你只需要告诉 AI 一个大的方向,比如“比较主流的编程语言”或者“分析三国时期的主要人物”。
  2. 第二步:生成框架。 AI 会基于你的主题,自动分析并推荐表格的横轴(比如:Java、Python、Go)和纵轴(比如:性能、开发效率、社区支持)。当然,这些推荐你都可以随时修改、增删。
  3. 第三步:填充内容。 框架搭好后,AI 会逐个填充每个交叉单元格的内容。比如,它会专门去生成“Python”在“开发效率”这个维度的具体描述。为了提高效率,你也可以让它一次性生成一整行或一整列。
  4. 第四步:交互和编辑。 AI 生成的内容不可能 100%完美。你可以在任何一个单元格里,让 AI 重新生成,或者自己手动修改。最终的控制权永远在你手里。

一些“不那么起眼”的设计思考

在实现这个功能时,我遇到了一些细节上的挑战,也做了一些取舍。

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

这个功能能用在哪些地方?

最初我只是想解决自己的学习和分析需求,但后来发现,它的应用场景远比我想象的要广。

  • 学习与教育: 老师可以用它快速制作不同知识点的对比讲义;学生可以用它来整理历史事件、文学流派、科学概念,一目了然。
  • 商业分析: 制作竞品分析报告、对比不同市场策略的优劣、评估产品功能的多维度特性,都比用 Word 或 PPT 画表格要直观高效得多。
  • 内容创作: 无论是策划选题,还是整理文章框架,它都能作为一个很好的结构化思维工具,帮助我理清思路。

下面举几个例子:

编程语言眼中的编程语言

学语言(生成交叉表)

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

挑战与未来

当然,这个功能还很初级。当表格变得非常大时,性能会是个挑战;AI 生成内容的准确性也需要持续通过优化提示词来改善。我想到的还有“模板保存与复用”、“导出为 Excel”等功能。

回顾从最初的“10 个痛点”到如今的“交叉分析表”,我深刻地感受到,好的工具是在解决真实问题的过程中被“发现”和“生长”出来的。它不是一蹴而就的规划,而是一个不断与需求碰撞、迭代和演进的过程。

Pointer 项目本身就是这个理念的产物,它始于一个深度用户的个人需求,也希望能服务于更多像我一样,希望把 AI 当做“第二大脑”来使用的朋友们。

我的探索刚刚开始。希望 Pointer 的这些思考和实践能给你带来一些启发。

附录

解决了AI聊天的10个痛点后,我又做了一个新功能:交叉分析表的更多相关文章

  1. 笔精墨妙,妙手丹青,微软开源可视化版本的ChatGPT:Visual ChatGPT,人工智能AI聊天发图片,Python3.10实现

    说时迟那时快,微软第一时间发布开源库Visual ChatGPT,把 ChatGPT 的人工智能AI能力和Stable Diffusion以及ControlNet进行了整合.常常被互联网人挂在嘴边的& ...

  2. iOS 10正式发布:十大新功能,更注重人性化

    6月14日凌晨消息,苹果公司举行2016年WWDC全球开发者大会,介绍了watch OS.tv OS.OS X以及iOS 10系统的新特性. 据苹果介绍,iOS 10在锁屏.Siri.地图等十个各方面 ...

  3. 分析并解决Linux发行版的自带OpenJdk和自己安装的OracleJdk新旧版本冲突问题

    解决办法: 从Oraclejdk 目录里可执行文件链接都复制到自己的LINK目录,然后IDE使用LINK变量下的命令 本文没有具体解决方法,只有探索思路........................ ...

  4. RAD Studio 10.3.2七大新功能介绍

    RAD Studio 10.3.2七大新功能 Delphi支持macOS 64位应用的开发. C++Builder中Windows 64位平台支持C ++ 17特性. C ++ LSP 代码洞察改进. ...

  5. C#10 新功能

    C# 10.0 向 C# 语言添加了以下功能和增强功能: 记录结构 结构类型的改进 可使用 const 内插字符串 内插字符串处理程序 global using 指令 文件范围的命名空间声明 扩展属性 ...

  6. What's new in Windows 10 Enterprise with Microsoft Edge.(Windows 10 新功能)

    What's new in Windows 10 Enterprise with Microsoft Edge --带有Edge浏览器的Windows 10 企业版的新功能 本文摘录自公司群发邮件, ...

  7. ArcGIS 10.5新功能预览

    ArcGIS for Server产品线被重命名为ArcGIS Enterprise. 带来更多丰富的时空GIS功能. 分析地理大数据 捕捉和分析实时传感器数据 快速地理影像分析 ArcGIS Ent ...

  8. Virtualbox中不能为虚拟机打开一个新任务的原因及解决方法

    VirtualBox新建虚拟机时报错,不能为虚拟机打开一个新任务的原因 解决办法如下 1.保证bios里的virtualization technology的选项开启,不同电脑BIOS设置可能会不一样 ...

  9. 解决iPhone上select时常失去焦点,随意跳到下一个输入框,影响用户操作

    window.addEventListener('load', function() { FastClick.attach(document.body); }, false); //300s延迟,解决 ...

  10. Windows 10 Creaters Update 新功能——画中画模式和窗口高斯模糊

    在Windows 10 Creaters Update中,可以给窗口设置高斯模糊了,只要几行代码! <Grid Loaded="Grid_Loaded"> <Gr ...

随机推荐

  1. Jenkins持续集成 docker、gitlab、sonar

    Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和部署技术.Jenki ...

  2. 如何处理 MySQL 的主从同步延迟?

    如何处理 MySQL 的主从同步延迟? MySQL 的主从同步延迟通常是由主库与从库之间的网络延迟.从库的处理能力.主库的写操作量等因素导致的.长时间的同步延迟可能会影响系统的稳定性和数据一致性.以下 ...

  3. SkyWalking服务监控简单配置【Windows版本】

    SkyWalking是什么 skywalking是一个可观测性分析平台和应用性能管理系统专为微服务.云原生架构和基于容器(Docker.K8s.Mesos)架构而设计. 下载 官网:https://s ...

  4. SpringBoot3整合SpringSecurity6(三)基于数据库的用户认证

    大家好,我是晓凡. 写在前面 上一篇文章中,我们了解了SpringSecurity怎么基于内存进行用户认证.但这还远远不够,在实际开发中. 用户往往都存在于数据库,所以从这篇文章开始,我们就要开始学习 ...

  5. 仿EXCEL插件,智表ZCELL产品V3.0 版本发布,底层采用canvas全部重构,功能大幅扩展,性能极致提升,满足千万级单元格加载

    本次更新是底层全部重构,按照现代浏览器要求,采用canvas方式进行了重构,预留了将来扩展空间,特别是在大数据量性能提升方面有了较大提升,可以满足千万级单元格加载,欢迎大家体验使用. 体验地址:zce ...

  6. C++右值和移动

    值分左右 C++表达式的值类别: 这些名词的字面含义: 一个lvalue是通常可以放在等号左边的表达式,左值 一个rvalue是通常只能放在等号右边的表达式,右值 一个glvalue是generali ...

  7. RPC实战与核心原理之异步RPC

    异步RPC:压榨单机吞吐量 如何提升单机吞吐量 提升吞吐量,其实关键就两个字:"异步",提高CPU等资源的利用率 调用端如何异步 异步,最常用的方式就是返回 Future 对象的 ...

  8. 关于 Newtonsoft.Json 和 System.Text.Json 混用导致的的序列化不识别的问题

    最近,我在做一个我们一个产品的OTA的功能,在调试跟后台对接Json数据的时候,发现序列化的数据一直跟期待的不一致.这让我很纳闷,明明一个简单的序列化和反序列化的问题,怎么数据就不对了.于是乎,就直接 ...

  9. Stream流中map与flatMap区别|转

      map和flatMap都是对流中的每一个元素,执行入参中的函数式方法,只是在函数式方法的返回值上有区别: map中函数式方法返回值为对象,也就是原始流中有n个元素,处理之后的流中元素个数也是n.即 ...

  10. Spring Boot注解之@Async和自定义线程池

    前言   我们在学习线程池的时候,都知道线程池的核心线程数.最大线程数.线程工厂等核心参数非常重要,故熟记于心.但是有些工作五六年的攻城狮可能说不出来怎么初始化一个全局线程池,以在不同场景使用:所以, ...