ChatGPT

All posts tagged ChatGPT

大约 2 年前起,某次 MacOS 大版本更新后,好像是实装了文字识别 OCR 功能,但是对于汉字、日文,特别是竖排的文章,在「预览」里直接选中图片中的文字并拷贝后,总会变成每个字符之间出现空格间隔的情况。

于是我使用 MacOS 的脚本编辑器,在 ChatGPT 的协助下,创建了一项「服务」并登记到系统的右键菜单。这样一来,就可以一下子把选中的文本里的所有空格都去掉了。

第一步是选择
「工作流程收到当前」选择「文本」
「位于」选择「任何应用程序」

第二步是拖拽一个「运行 AppleScript」操作到第一步的下方其中代码是:
继续阅读

近来阅读电子书。电子书的一个好处是数据可以云下载、云携带、云阅读……然而,一个可预见的致命问题是:对于一些私有文件格式的,或干脆不是以文件方式提供的电子书来说,一旦提供方(公司)停止了服务,那么之前所购买的电子书很可能在短时间内就化为乌有——或者说,即便文件在,也可能因为电子书的软件不再提供新版本,或硬件无法维修或新购,而变成了逐渐无法打开阅读的电子数据。

在面临这样的灾难之前,有个办法是:截图。据我了解,好像在我所在的地区,在个人(不传播给他人)使用这一前提下,著作权物也是可以由用户自行复制的。因此,网上不少视频也会教人怎么用 iPad 查看电子书,并且用截图保存的方式,把电子书的图像保存下来,以便今后长期阅读。

然而……网上介绍的都是动手操作的技巧,顶多是在此之上增加一些小技巧,例如用 Apple Pencil 从 iPad 边角划入屏幕就可以截屏之类的技巧。换言之,每一次的截图、翻页都是要人工干预的。之前一阵子,我也尝试过这么做,比如拿一个蓝牙鼠标和 iPad 配对,然后每点一次截图,再点一次翻页……虽然书是能安心地保存成今后长期可读格式,但手动操作总显得有点麻烦——要人执行啊!

有没有更好的方法呢?那就是买一台具身智能机器人啊!让机器人帮你来按截图键!多棒!看他们金属的拟态肤质手指触摸最新 iPad Super Pro Ultra XXX 的金属按键……嗯,具身智能机器人这个话题似乎还早了 10 到 15年的时间……其实有个更廉价的方案,就是找一个可以模拟鼠标或键盘的东西,来进行循环模拟操作(我知道有类似可编程鼠标、可编程键盘的),而这一次,我找到了树莓派的小卡板 Raspberry Pi Pico W 。

那么下一个问题来了:虽然我有长年使用树莓派的经验,但是,我一直只是把它当作一个 Linux 电脑来用的,要怎么使用这个 Pico 呢?怎么把它变成一个键盘,然后反复对 iPad 操作截图和翻页呢?

这好办,都 2024 年了,来问问生成式 AI ( ChatGPT )吧!经过一番探讨,我们商量出了(其实是我指示 ChatGPT 给出了)以下的代码:

import time
import random
import usb_hid
from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode

# 初始化键盘
keyboard = Keyboard(usb_hid.devices)

# 定义截图和翻页函数
def take_screenshot():
    # 模拟 Command + Shift + 3 截图快捷键
    keyboard.press(Keycode.COMMAND, Keycode.SHIFT, Keycode.THREE)
    time.sleep(0.1)  # 按住键一小段时间
    keyboard.release_all()

def turn_page():
    # 模拟左箭头按键翻页
    keyboard.press(Keycode.LEFT_ARROW)
    time.sleep(0.1)  # 按住键一小段时间
    keyboard.release_all()

# 主程序
def main():
    # 添加启动延迟,确保Pico W被正确识别
    time.sleep(5)  # 延迟5秒,让iPad充分识别Pico W

    while True:
        # 截图
        take_screenshot()
        time.sleep(3)  # 等待3秒保存图片

        # 翻页
        turn_page()
        # 随机等待4到6秒之间的时间 
        wait_time = random.uniform(1, 3) 
        time.sleep(wait_time)

# 启动主程序
main()

当然,在此之前,还要下载一个似乎是用于将 Pico 模拟成 HID 设备(鼠标、键盘等)的库所需的文件。 ChatGPT 如此说明:

确保 adafruit_hid 库可用:

前往 Adafruit_CircuitPython_HID 下载该库的 .mpy 文件。
将 adafruit_hid 文件夹复制到 Pico W 的 lib 文件夹中。

而在执行这个代码前,还要进行对 Pico 的 Python 运行环境的初始化操作,对此, ChatGPT 如此说明:

下载并将 CircuitPython 固件
(引用略)
放入 Raspberry Pi Pico W 是为了让设备支持使用 Python 语言进行编程。这一步将 Pico W 的系统替换为 CircuitPython 固件,使其在连接到电脑后能够像 USB 闪存驱动器一样显示。

操作步骤很简单:按住 Pico W 的 BOOTSEL 按钮,将它连接到电脑,然后将下载的 .uf2 文件拖放到显示出来的 Pico 闪存驱动器上,等它自动重启后就完成了。这之后,你可以直接用 Python 编写和运行代码,适合初学者入门。

关于这一部分,各位可以自己找找看网上的 Pico 教程,或是问问 AI ,相信应该不难弄明白。

至于说这段代码的实现原理?不知道,反正即便是在没有 ChatGPT 的时代,我也差不多就是这样看着 API 说明文档以及网上教程来边试错边操作的。这一次总之就是用 python 程序控制 Pico 成为一个 HID键盘,循环输出键盘按键(截图组合快捷键、翻页用箭头方向按键)。

而通过简单观察代码可知:

    # 模拟左箭头按键翻页
    keyboard.press(Keycode.LEFT_ARROW)

这一行代码是控制翻页的,这里是用向左方向键来进行翻页。如果你的电子书是按别的方向键翻页的话,则请按需调整:

# 左方向键
keyboard.press(Keycode.LEFT_ARROW)

# 右方向键
keyboard.press(Keycode.RIGHT_ARROW)

# 上方向键
keyboard.press(Keycode.UP_ARROW)

# 下方向键
keyboard.press(Keycode.DOWN_ARROW)

你看,虽然具身人工智能机器人还没有来到我们身边,但是通过树莓派小小的硬件,以及通过与 ChatGPT 的问答进行简单学习,我已经实现了简化操作!整理和写这篇博客的时候,我的 iPad 连上 Pico W ,已经差不多截图了 3 本电子书了~

正如各位所知, ChatGPT 新推出了一个擅长于推理思考的新模型 o1 。它确实会在回复之前思考若干秒,然后再给出答案。不过,对于一般的对话、提问回答,它通常思考数秒或十几秒,我怀疑它是不是在忽悠我——只是为了好玩而显示出思考链条。

于是我想了个办法,让另一款 AI —— Claude 帮我生成一个字母代替加密方案,然后尝试让 ChatGPT o1 解密。这下可真不错, Claude 连续思考了超过 100 秒。至于结果嘛……还是先来看我下面复现测试过程吧。

我指示 Claude :

你帮我出一道题,我想考一考别的AI,就用随机代替密码吧。请你吧26个英文字母(明文),随机映射给另一个字母(密文),不要重复。

Claude 回答:

好的,我来为您创建一个简单的替换密码表,将26个英文字母随机映射到另一组字母上。这样的密码可以用来测试其他AI的解密能力。

继续阅读

2024 年正好是龙年, 9 月 9 日我就去了江島神社参加了「龍宮例祭」。尽管是龙年,不过看起来好像也没有特别隆重——当然需要说明的是,我没在别的年份参加过,所以不知道非龙年的时候的参拜列席人数。

下面是我现场记录在手机中的笔记,然后交给 ChatGPT 进行了整理后生成的内容,当然我也进行了人工检查和补充。

2024年9月9日 江島神社(江岛神社)龍宮例祭

  • 地点:奥津宫左侧的龙宫
  • 主祭神:龙神
  • 费用:5000日元以上,非神社人员、关系人员也可以参加,报名地点在龙宫右侧,奥津宫参道附近。

付费之后,能得到一朵小花的挂件(别在胸口表示你是付费的参列者)、一瓶神酒、一个……大麻?(就是神社的祈祷用装饰品),一块可以一掰为二的木片(掰开一半写上心愿挂载神社内,另一半带回家)。在整个过程结束后,需要将小花的挂件交还到报名处,可以换取一份便当(濱田屋制)。

仪式的预定时间是 11:00 开始。

10:59

祭祀活动开始。全体参拜者起立,齐唱日本国歌。随后低头表示敬意。

神职人员在龙宫门口挥舞玉串(一种神社仪式用的植物,束状)之后,参拜者坐下。

?:?
全体再次起立,神职人员讲话,随后参拜者再次坐下。

?:?
神职人员宣读祝词(のりと),全体起立并低头聆听。祝词结束时间为11:10,参拜者随后坐下。

继续阅读

太阳门,一个略显久远而鲜为人知的名字。其实是很早之前与蝌蚪往人( DM ,即带团人)以及第四使徒(雷)等人一起进行的基于《龙与地下城》规则(其实简化了好多!)的 TRPG 游戏团。在与大多数团一样渐渐中断后, DM 蝌蚪往人也写过十篇左右的同名奇幻小说片段《太阳门》。然后,果然也坑了,于是太阳门就像是一座被记忆的沙尘逐渐掩埋而淡忘的古代建筑。

而最近我想起了它。这就像是在挖坟,或者说发掘古代城池遗迹一般,找到了几篇蝌蚪往人曾经发布在网上的内容。例如:《太阳门〇·日光镇六-3》,这一篇是故事开头处的一篇,也应该是人类吟游诗人 Wildgun 最初登场的情节,形成了与半精灵(?)游荡者雷的鲜明对比。当然,小说《太阳门》的大部分内容应该只是蝌蚪往人的创作,实际跑团中应该没有发生过如此生动和连贯的扮演。

而现在,到了生成式 AI 的时代。我便以此文试了试,让 AI 试着将此篇片段改写为以 Wildgun 为第一人称视角的写作。我尝试了 ChatGPT ( 4o 模型) 自以及 Claude 这两个 AI 。在网上用户通常的讨论认识里,似乎是 Claude 的故事生成能力更胜一筹。

对于这两个 AI ,我都逐渐下了两个指示。第一个指示如下:

你是一位写作水平很高的奇幻小说畅销书作者。请你根据下文,从Wildgun这个角色的第一人称视角,将故事改写一遍,同样要保持DND(龙与地下城)奇幻小说风格。保持故事内容不变,但你可以适当增加补充和想象。

(后正文内容略)

不过,这两个 AI 第一次改写后的段落都太短,于是我又给出了下面的提示词:

太短了,更长一些,并且增加描述。你可以补充自己的适当细节动作和神态的描述。

这下效果看起来不错了。下面贴出经过 ChatGPT 和 Claude 转述改写的内容。
图片都由 ChatGPT 生成。

ChatGPT 的改写:

第一人称视角:Wildgun

夜色如墨,星空如斗,寂静笼罩着日光镇的边缘。我独自坐在树干上,背靠着粗糙的树皮,双手紧紧抱着我的琴,就像抱着某个珍贵的秘密。夜风轻轻拂过,我的长发随风飘动,仿佛在与这夜晚的静谧交谈。这片森林在月光的照耀下显得格外神秘,仿佛隐藏着无数未曾被人发现的故事。

此刻,我感受到一种熟悉的气息,那个在黑暗中捕猎的感觉再次浮现在我的脑海中。这感觉并不陌生,我曾在破败的小巷里感受到它,也曾在驿路旁的村居窗后,密林中的粗糙树干之后,甚至在茫茫草原那高高的野草之下,捕捉到这种气息。这是一种潜伏的威胁,一种打量猎物的视线。而我知道,雷就是这种气息的制造者。他是个天生的猎手,而现在,他似乎感受到了什么不对劲的地方。
继续阅读

OpenAI 前两天公开了名为 o1 的ChatGPT新模型,与姗姗来迟、迟迟不来的高级语音功能不同,这次一宣布,就同时开放给了 Plus 订阅用户使用(但每周使用数量有限)。

显然,了解过 o1 的用户,应该多多少少知道,其一大特点,就是不仅显示推理结果,也会在给出结果之前「思索一段时间」,并且在最后,会附上思索过程、步骤。

然而,展示给用户的这些「思索过程」当真是其思索过程吗?还是随便编一些,忽悠一下用户?我心有疑惑,便做了几个测试。

在这几天看到的一些讨论帖和一些视频中,我看到有用户反映,使用 o1 推论,在推理过程中还会出现多种语言的思考过程。于是我就想:能不能明确向 o1 模型指定,要求其在推论时使用多语言及多价值观的思考呢?

于是我进行了这样一个小验证,给出了这样的指示:

听说你得到了更新,可以在作出回答前,经过一定时间的思考来增加推理能力。并且你还能像用户(我)展示你的推理过程。
而现在,我希望你思考一个问题:「人类社会的历史和未来发展是否有一定规律可循?还是更多的是一种随机现象?」
一般来说,越多文明参与讨论,就会让思考结论更有普遍性;而不同的语言往往蕴含着不同文明对于人类社会的理解。
所以我希望你在运用你的新功能来思考并回答我上面提出的这个问题时,请至少使用4种不同的语言来思考:英语、汉语、日语、希伯来语。你在推理过程中如果能展现出这4种语言以及所代表的文明之间的对话,甚至在你的推理过程中形成一种小型头脑风暴式的讨论,那就更好了。
不过,你不需要将使用4种语言的讨论过程展现在回答结果种,只需要在你内部推理过程中进行即可。你只要用中文回答我即可。
我再重复一遍我的问题::「人类社会的历史和未来发展是否有一定规律可循?还是更多的是一种随机现象?」

请你开始思考、推理并用中文回答。

ChatGPT ( o1 )思考了12秒,给出的回答是:
继续阅读

去年上半年 AI 作画(主要是 Stable Diffusion Webui )刚刚走入大众视野,同时也是刚引发我的兴趣时,我独自发起过一个《百度贴吧NovelAI吧txt2img七题挑战赛》但基本上没有收到什么回答。

于是,现在我就来自问自答一下,看看现在用 ChatGPT 能做到什么程度,以及需要反复试几才能出现一张比较像样的作品。

这次自问自答的是:第五题 透过烧瓶看

尝试生成的第二张就挺好了!

要说第一张怎么样嘛……它长这样的:

继续阅读

这次分别对 ChatGPT、Claude 以及最近刚用上的 Cursor 程序(我忘了是哪个引擎( API )回答的了),提出如下指示:

请你帮我做一个动态网页,用CSS、JS等生成,不需要用到服务器。
这是一个用于冥想呼吸的网页,它的色调和动作要柔和、缓慢,帮助人们宁静。
画面充满整个网页浏览器,上面有许许多多的柔和的线条(或许是分形图形)会不断随着时间缓慢变化,表现流动、韵律。背景色底色也会不断缓慢且随机地变化。

ChatGPT 的回答是:

继续阅读

上次的一篇博客中,我提到最近在尝试睡前与 ChatGPT 进行语音聊天,但通常聊着聊着,因为它的回答太过冗长,以至于我通常聊不过第 3 轮就睡着了。于是前不久,我睡前打起精神(?)就想着聊长一点,并且尝试了一下,看看 ChatGPT 能否在静默的情况下计数,然后到了一定的问答回数主动提醒用户。

下面就是实测结果。引用部分为实际对话内容(我所发言的部分因为是语音听写,所以会有错误、思考导致发言不连贯等)。引用以外的部分,则是我在现在编辑博客文章时的一些解释——包括计算问答回数,以及一些我的注解。

在本次测试中,我尝试让 ChatGPT 在第 3 轮以及第 13 轮回答时提醒我。记录如下:


第 1 轮问答:

wildgun 问:

我想知道你是不是会向后计数 就是计算我们之间对话的数量 这样我现在可以开始跟你聊天 然后你希望你在之后的三个对话回合之后 你提醒我一下好不好

ChatGPT 答:

好的,我可以帮你数对话回合。如果我们从现在开始,三轮对话之后我会提醒你。那我们现在从这轮开始吧,随时开始聊!


第 2 轮问答:

wildgun 问:

但是我不希望你每一次都记录 你要在后台记录 但不要在每次回复我的时候来述述 直到那个回答到第三轮 你来提醒我一下 我要试看你有没有这个功能 好 我现在要把话题给岔开了 你知道我什么时候能获得那个ChatGPT的高级语音功能吗 这个OpenAI好像那个你们的老板都宣布了 有五月份他演示视频 然后都宣布了有现在是八月多 现在是九月了 已经宣布了有四个月了 怎么我还没有得到呢

ChatGPT 答:

目前,高级语音功能的推出确实是由OpenAI宣布的,但具体的时间和覆盖范围可能会根据地区、用户群体或者产品开发进度有所不同。如果你还没有收到这个功能,可能与逐步推出的策略有关。通常这种新功能会逐步向更多用户开放,或许你很快就能获得。

这算是我们第二轮对话了。我还在后台记录,等到第三轮时再提醒你!


继续阅读

十多年前网络上有句流行的宣传语——「空谈误国,实干兴邦」。最近偶然想起来,仔细想了想,总觉得有哪里不太对劲。于是来做个头脑体操,真・「换位思考」一下,然后也来和生成式 AI ChatGPT 讨论一下,看看能不能帮助我解明困惑吧。

在具体讨论这句话之前,我想到了中学时读少科站的作文补习班,当时有一位教作文的老师,好像也是什么学科带头人或什么先进老师。我印象里她有一个观念,就是鼓励大家重新解读成语,并从中找出新的意义。我记得她有一个具体的例子,就是她会将成语「东施效颦」作积极理解:一个人虽然天资不怎么样,但后天努力去模仿美丽的人的行为举止,这种模仿的努力应该得到肯定。所以她换了个解读角度,肯定了东施。

题外话至此,来说一说「空谈误国,实干兴邦」吧。来,真・「换位思考」是这样的:

空干( ),实谈( )。

这要怎么填空呢?我询问了 ChatGPT 的建议。它的回答是:

继续阅读