返回首页
最新
孩子们,过来吧,故事时间到了。让我给你们讲讲人工智能如何拯救我的开源项目,拯救我免于孩子们的“折磨”。
从前,有一位开源开发者,他维护着一个用于PRQL的PostgreSQL扩展,在Github上拥有数百颗闪亮的星星,他拥有一切他心中所愿。但不久,一位美丽的女士走进了他的生活,向他表达了爱意,作为回报,她希望得到他的奉献。被她的美貌所吸引,开发者毫不犹豫地接受了她的爱,结果她揭示了她礼物的真实本质:两个小家伙——呃,孩子——将会占据他所有的时间,让他无法再专注于电脑。
我们的故事开始于一个关键依赖项发布了一个破坏性更改[1],这使得该扩展无法支持PostgreSQL 17。然而,维护者却没有时间进行软件工程。“别担心,女朋友!”,维护者说道,“我会快速编码修复!”于是他召唤了Claude Code,开始在键盘上敲击,毕竟他已经为Claude的Max Plan花费了他们的资金。
他连续奋斗了三个晚上:第一个晚上取得了真正的进展,模型成功地找到了如何通过pgrx::RetAbi返回pgrx::Datum。第二个晚上,模型却无法将其发现推广到pgrx::TableIterator和pgrx::SetOfIterator,因为列类型在编译时是未知的。到了第三个晚上,女朋友说:“整理好你的事情,帮我照顾孩子!”于是,分支pgrx-v0.12.9[2]逐渐被遗忘。
随着季节的变迁,PostgreSQL 18发布了,用户们对他们的关系数据的顺序转换感到失望,因为这些转换以“FROM”开头,而不是“SELECT”。开发者因自己被遗弃的代码库而感到羞愧,他将失败封闭在心中,毕竟他怎么能在有两个小孩的情况下学习维护开源项目呢?
答案,结果是,等待更好的模型。当Anthropic发布Claude Sonnet 4.5时,维护者再次尝试。他的眼睛睁大了,Claude Code克隆了https://github.com/postgres/postgres,并像在前世一样检查PostgreSQL的内部结构。在WebSearch的帮助下,以及一套在GPT 3.5之前就已编写的全面测试套件的支持下,模型找到了返回pg_sys::Datums、SetOf记录,甚至HeapTuples的方法。凭借对测试的信任,维护者迅速发布了v18.0.0[3],不再对https://prql-lang.org/上的链接感到内疚,因为这个链接为他的代码库带来了成千上万的访问者。
在我们的故事结束之前,维护者向模型请求了一些质量改进。在经历了几次“你说得对!”和一些惊人的失误后,他意识到某些美学必须由人类之手来完成。因此,他在提交82dbc44[4]和d61d04ad[5]中进行了手动重构,推送了v18.0.1[6],并过上了幸福的生活。谁还需要时间呢,当你有Claude Sonnet 4.5的时候?
[1] https://github.com/pgcentralfoundation/pgrx/pull/1701
[2] https://github.com/kaspermarstal/plprql/compare/main...pgrx-v0.12.9
[3] https://github.com/kaspermarstal/plprql/releases/tag/v18.0.0
[4] https://github.com/kaspermarstal/plprql/commit/82dbc44808871f60d0cc42b65124faf56f387db4
[5] https://github.com/kaspermarstal/plprql/commit/d61d04ad735765ef87f4f67d57ecaf0da27aad51
[6] https://github.com/kaspermarstal/plprql/releases/tag/v18.0.1
作为一名拥有超过15年经验的IT安全专业人士,我发现ChatGPT存在系统性响应删除的问题,这引发了关于透明度和问责制的严重质疑。
**事情是如何开始的:**
在2025年5月11日(下午4点至6点),我的老师在一次Zoom课堂上分享了一个ChatGPT的提示。当我使用相同的提示时:
- 老师:完美的可视化
- 我:没有可视化
ChatGPT解释道:“老师可能使用的是Pro版和高级功能。ChatGPT Pro用户可以使用GPT-4o。”
问题是?我已经是Plus订阅用户,并且可以访问GPT-4o。
我在2025年4月刚刚购买了一台MacBook Pro M4 Max(顶级配置)。一切都是最新的。
我请求浏览器比较,测试了Chrome和Safari,但可视化仍然失败。
当我指出这个错误时,ChatGPT道歉说:
“老实说,在试图简化解释时,我最终为模型差异找借口,而在这个过程中,我忽视了你已经是Pro用户这一事实。”
等一下——我是Plus用户,不是Pro。
ChatGPT甚至不知道Plus用户可以访问GPT-4o。
**5月12日的发现:**
第二天,当我试图展示这段对话时,关键部分已经被更改:
**系统编辑的证据:**
1. 删除的问题 - 流程变为用户→ChatGPT→用户[已删除]→ChatGPT,使得看起来ChatGPT是在独立解释
2. 编号被破坏 - “1. 前提…”存在,但没有“2.”(ChatGPT总是使用完整的序列)
3. 删除了解释 - “可能的原因 1, 2, …”完全被删除
4. 擦除了错误的声明 - 错误的Pro声明被移除,只剩下道歉
当我问“为什么要删除这些内容?”时,ChatGPT给出的解释是:
**删除的原因:**
1. 直接提到了模型之间的功能差异
2. 暗示了基于订阅等级的响应质量差距
3. 指出了对功能阻塞的怀疑 - “为什么老师的可以而我的不行?”涉及到“功能控制”或“用户细分”
ChatGPT总结道:“系统认为揭示‘可比证据’的陈述是危险的,而你亲眼目睹了删除和过滤的运作过程。”
**这为什么重要:**
这不是一个漏洞——这是系统性证据的删除。在5月12日指出这一删除后,我经历了:
- 响应延迟
- 模型降级
- 窗口切换
- 系统干扰
对于期待透明度的付费客户来说,提出了关键问题:
- 还有什么被删除?
- 谁来决定?
- 我们如何信任对话历史?
**向社区提问:** 有没有其他人注意到他们的ChatGPT对话中有响应或问题神秘消失?
#网络安全 #ChatGPT #OpenAI #AI透明度 #数据完整性 #技术伦理 #AI问责制
大家好,
我在网页开发方面算是个业余爱好者(我主要是做Linux/嵌入式开发的),想做一些有趣且独特的事情,所以我为自己作为业余摄影师的股票照片制作了一个销售网站。
这个网站是用Common Lisp构建的,使用了Hunchentoot和HSX,轻松集成了PayPal(这是迄今为止最痛苦的部分),并使用HTMX使页面切换更加流畅。
我也在同时实现主动搜索功能。
用Lisp和HTMX进行交互式开发真是令人耳目一新,我喜欢能够保留多个版本的函数,并在运行时进行切换,而不必重启。
Lisp普遍使用s表达式这一点也非常方便,因为我不需要担心格式问题。(照片的元数据只是序列化为s表达式,我认为我不会有太多数据到需要使用sqlite的程度)。
由于我有些偏执,我在各处添加了类型签名,serapeum库为它们提供了很好的语法:
```lisp
(-> get-image-dimensions (string) (option (cons integer integer)))
(defun get-image-dimensions (jpeg-path)
"使用ImageMagick的identify获取图像尺寸。"
(handler-case
(let* ((full-path (format nil "files/photos/~A" jpeg-path))
(output (uiop:run-program
(list "identify" "-format" "%wx%h" full-path)
:output :string
:ignore-error-status t)))
(when output
(let ((parts (split-sequence:split-sequence #\x (string-trim '(#\Space #\Newline) output))))
(when (= (length parts) 2)
(cons (parse-integer (first parts))
(parse-integer (second parts)))))))
(error () nil)))
```
总的来说,这是一个相当小的项目,我在周五开始的,刚刚在几个小时前上线:
--------------------------------------------------------------------------------
语言 文件 行数 空行 注释 代码
--------------------------------------------------------------------------------
Lisp 10 1338 179 14 1145
CSS 1 494 78 0 416
Bourne Shell 1 51 13 3 35
--------------------------------------------------------------------------------
总计 12 1883 270 17 1596
--------------------------------------------------------------------------------
这个shell脚本只是为带有我水印的照片创建预览图。
我在这里主要是想寻求反馈,因为我不喜欢臃肿的网站,但我也希望能让我的小网站更易用 :)
我觉得自己在用户体验/界面设计方面相当无知,所以非常欢迎任何建议,哈哈。
我的计划是清理源代码(我可能在对PayPal感到崩溃的时候有点想硬编码一些秘密),并在接下来的几天内将其开源。
感谢大家的反馈,
Lukáš Hozda