阅读视图

AI 在常见病上取代医生

AI 在常见病上取代医生

AI 应用的发展日新月异,看到一个数据说,AI 的基础诊疗水平超越初级医生。对于常见病症,AI 在常见病诊疗上取代医生的可能性有多大?

对症下药

常见病的诊疗模式一般是:向医生准确描述症状,医生开具检查单,医生根据检查结果和症状综合判断出属于哪种常见病症,医生提供诊疗方法,开药。总结起来就是,对症下药。

可以看出,此处将医生换做 AI Agent 是可行的。

眼疾的例子

病患:眼镜干涩发痒,几日不好,用什么药物?

AI:

  1. 干眼症(最常见,主要症状:干涩、异物感、偶尔痒)

首选药物:人工泪液滴眼液,如玻璃酸钠滴眼液、聚乙二醇滴眼液。 使用要点:选择无防腐剂的单剂量包装,避免长期使用含防腐剂的产品损伤眼表;每天 3-4 次,眼干明显时可增加次数。

  1. 过敏性结膜炎(症状:痒感强烈、眼白发红、可能伴随打喷嚏)

常用药物:抗组胺类滴眼液,如盐酸左卡巴斯汀滴眼液、奥洛他定滴眼液。 使用要点:痒时滴用,避免揉眼;若症状严重,可搭配口服抗组胺药(如氯雷他定),但需注意嗜睡等副作用。

  1. 轻度细菌性炎症(症状:眼痒、分泌物增多、眼睛发红)

推荐药物:抗生素类滴眼液,如左氧氟沙星滴眼液、妥布霉素滴眼液。 使用要点:需确认有细菌感染迹象(如黄色分泌物),避免滥用;按说明书使用,通常连续用 5-7 天,症状无改善需停药就医。

病患:过程简单,很方便判断,首先,看是否有分泌物增多,若有,则判断为 3,再看有无过敏史,若有,则判断为 2,若都没有,则判断为 1;然后换一个 专用医疗 AI 提问,以确定用药;网购药物,完成用药。

可以看出,有了 AI 之后,若患者具备一定医疗尝试,具备查阅医疗手册能力,则可以将 AI 当作医疗服务来用,大大简化诊疗过程。

AI 在多大程度上取代医生

这个问题的答案,我相信第一目标是 80 / 20,其次是 98 / 2。

若 AI 具备足够的诊疗数据情况下,例如大模型能将全国/全世界的医疗数据加入训练,则可以得出能力惊人的垂直领域大模型。

AI 医疗的终极服务形式

随身设备采集数据,根据数据诊断,随后自动诊断开药,经过患者同意后,无人机将药物投放到领取点。甚至在未生病时,提前预判,提前诊疗用药。

当然,上面都是瞎想,对医学须保持敬畏之心,相信在许多复杂病例和非常依赖手术经验的领域,AI 永远无法取代有经验的医生。这点同其它领域一样,似乎有了 AI 以后,有价值的只剩专家。但若长期依赖 AI,专家该如何产生的。若抛开给患者提供的“情绪价值”来说,专家也可看作一种用病例长期训练出的“诊断模型”。

  •  

上 NextCloud,一站搞定个人数据同步

个人数据同步需求

  1. 个人数据能完全个人控制;
  2. 个人数据能实现跨平台的多端同步。
  3. Obsidian 作为知识库,能实现同步。

解决方案

手动安装 NextCloud,实现个人数据同步。主要过程还是 LAMP 技术栈:

  1. 选择 Ubuntu 系统
  2. 在 Ubuntu 上安装 Apache 2
  3. 在 Ubuntu 上安装 MySQL/MariaDB
  4. 在 Ubuntu 上安装 PHP 8.3
  5. 使 LAMP 栈配合运行起来
  6. 在 Apache 配置文件中,增加该站点配置,重启 Apache
  7. 创建 数据库,并准备好数据库名、用户名和密码
  8. 输入站点 URL,输入刚才的数据库信息,进行安装。

WebDAV

由于 NextCloud 提供了 WebDAV 服务,因此基于 WebDAV 进行文件同步的常见服务都可以寄生于此。

  1. Obsidian:可利用 Remotely Save 插件,配置 WebDAV 的 URL、用户名、密码,实现同步;
  2. Joplin:如果希望自己掌握自己的数据,可以使用开源且注重安全的笔记软件。在前期的选型中,有 AnyType、Joplin、Logseq、Trilium Notes 等入我法眼,在目前的工作中,以金融为主,因此没有选择非常 Geek 的 Trilium Notes。

主要参考

官方文档

遇到的问题记录

  1. Config 文件,不能 Copy config.sample.php 文件,而只需要从其中复制需要修改的项。
  2. "Temporary directory /tmp/nextcloudtemp is not present or writable"

使用下面的命令,增加临时目录权限:

sudo mkdir -p /tmp/nextcloudtemp
sudo chown -R www-data:www-data /tmp/nextcloudtemp
sudo chmod 755 /tmp/nextcloudtemp
  1. "Call to undefined function Sabre\\HTTP\\mb_check_encoding()"

安装 php-mbstring 扩展,类似的还有 GD 库:

sudo apt-get install php8.3-mbstring
  1. 看起来您正在尝试重新安装您的 Nextcloud。但您的 config 文件夹中没有 CAN_INSTALL 文件。请在您的 config 文件夹中创建 CAN_INSTALL 文件以继续。

这个问题似乎是在重新修改了 config.php 文件,加入了 index.php 的省略造成的,解决方式为,重新安装一次全新包,另一个可能的原因可能是下载插件时产生的。

  •  

在 Windows 上 Bose SoundLink 音箱声音自动停止问题的解决

问题现象

在 Windows 上,通过音频线连接 Bose SoundLink,但声音会自动停止出声,此时,需要重新插拔音频线才能激活声音的输出。

解决方法

将 Windows 的声音设置到足够大,比如 70 以上,通过调节 Bose SoundLink 上的 +/- 键来调节音量。

参考

https://www.reddit.com/r/bose/comments/ywx08b/comment/iwmj22i/?tl=zh-hans&translated=1

krakos: 3年前:笔记本电脑/音频接口的音量太低了。在那边调高音量,这样扬声器就不会因为信号太低而关闭。用扬声器的音量控制来控制扬声器的音量。

  •  

交易的实质——浪随风向

2013 年 6 月 28 日,我在为 EverEdit 创建的 todo 插件中埋了一枚彩蛋,当输入 "Who has seen the wind?" 时,会出现彩虹高亮。

彼时提到 Wind,是风向星座的我自我暗示适合风向职业(传播投资资讯),直到十年后,我才逐渐理解,对交易来说风是什么。风不是技术分析的历史重演,也不是基本面的财务数据,直到在市场中呆的足够长,并用量化的方式演算和回测。客观的结论是:技术分析、基本面、技术分析结合基本面三者都是错的。

只用技术分析交易,终会亏本离场;只用基本面交易,那些年线 A 杀的走势会嘲笑你的青春;用技术分析结合基本面也许某几年对了,但几年你看到了黑天鹅。我身边最聪明的朋友说,交易是玄学,广泛的市场中,不存在确定性,很难依靠长年得出的经验胜过市场,因为市场之海浪,一部分由风吹动,一部分是潮汐,潮汐就是自然周期的周期——斐波拉契,在自然周期之上的风,是ZZ。

依靠周期假设,并观察风的动向,看着风浪,再去航海。

  •  

机器人简史

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

原以为是本历史书,但翻开后发现是本文化书,就内容来说,读读也受启发,机器人不是机器人,是受奴役的人。

  •  

数学的惊奇

评分

⭐⭐⭐⭐⭐ ⭐⭐ 7 / 10

有趣的数学书,着谜数字的人可以翻翻,有细节。

  •  

ALaunch v1.0 发布

ALaunch 升级到 v1.0 版本,增加了标签的自由管理。

ALaunch v1.0 版本

新特性:

  1. 能创建和删除标签页;
  2. 能对标签页重命名。
ALaunch Snapshot

ALaunch 下载,欢迎反馈和留言。

预告

ALaunch v1.0 是友情软件:与此网站友情链接的朋友,可免费获赠授权码。

正在使用的朋友,建议下载新版本,欢迎反馈。

  • 1.5 将增加窗口控制
  • 2.0 实现启动布局
  •  

Windows 音频设备控制之旅

我的需求

笔记本通过 TypeC-DP 1.4 口连接了显示器,听音乐时,我使用笔记本连接的音频输出设备,看视频时,我使用显示器的音频输出口,因此,我有了需要在笔记本和显示器之间快速切换音频设备的需求。

解决过程

我拥有 Windows 编程能力,在 AI 时代想到的第一解决途径就是Prompt,AI 帮我编写一段小功能:你是 Windows 编程的高级程序员,我需要实现一个最简的功能,我需要界面上提供系统音频设备列表供选择,计划用 Python Tkinter 实现,可以用一组单选框,竖直排列,选中设备后设置为 Windows 默认音频设备。请得到代码后复查一遍可能的问题,提供最终可运行的代码。

得到代码后,我表示没看出 API 是什么,于是问 Windows 中切换音频设备的 API 什么,我想着实现 Python 后,可转化为一个简单的 C 程序一键在多个音频设备之间切换,我的基本思路是:先列出设备,再在设备间循环激活为默认。

后续过程就不列举了,AI 提供的代码,都是无法运行的,以下列举 AI 的关键代码。

实现方式一:

import comtypes
from comtypes import GUID, COMObject, POINTER
from comtypes.client import CreateObject
from comtypes.gen import PolicyConfigClient

def set_default_audio_endpoint(device_id):
   # 使用comtypes创建PolicyConfigClient对象
   pPolicyConfig = CreateObject(PolicyConfigClient.CLSID_PolicyConfigClient,
                                interface = PolicyConfigClient.IPolicyConfig)
   # 调用SetDefaultEndpoint方法设置默认音频端点
   hr = pPolicyConfig.SetDefaultEndpoint(device_id, 0)
   if hr == 0:
       print("默认音频端点设置成功")
   else:
       print("默认音频端点设置失败")


if __name__ == '__main__':
   # 这里需要替换为实际的设备ID
   device_id = "{0.0.0.0}"
   set_default_audio_endpoint(device_id)

实现方式二::

from pycaw.pycaw import AudioUtilities, IMMDeviceEnumerator

def get_speaker_device_id():
   device_enumerator = IMMDeviceEnumerator()
   speakers = AudioUtilities.GetSpeakers()
   device_id = speakers.GetId()
   return device_id

if __name__ == '__main__':
   device_id = get_speaker_device_id()
   set_default_audio_endpoint(device_id)

我后来使用一段复杂的 Python 代码调用了一个本地 dll 文件作为桥梁实现了切换。然后,为去掉这个不明就里的 dll,把问题弄得更明白一点,我查阅了 Microsoft 的文档,文档中居然没有提!

最后我发现实现切换的是 Microsoft Windows Undocumented API,列举和操纵此设置,居然分属在不同的 COM 接口中,未有文档的是 PolicyConfigClient 接口,它是一个特殊的 COM 接口,脚本无法创建和使用它的属性和方法,需要 Native 代码通过最基本的结构去调用。

然后,我浏览了交友网站 GitHub,发现世界上还有几个和我有一样需求的人,并且有几个 Geek 动手实现了 AudioSwitch 软件,以及还有几个 C# 和 vbs 的实现,经过比较,我还是喜欢 C++ 实现的版本。

AudioSwitch 软件运行后,按 F12 就能自动切换系统默认的音频设备。我于是下载源码,发现它使用一个叫做 SCons-win32 的编译工具进行了编译,我又查阅了 SCons-win32 帮助,成功编译出了 AudioSwitch.exe

当我完成编译,微软的安全软件居然报 Trojan:Win32/Bearfoos.A!ml,我去微软官方查询了 Bearfoos.A!ml 解释带 !ml 的是机器学习判断的木马。

我查看了它的源代码,然后 SCons-win32 作为可能引入病毒的第二个可能,风险也不高,我的编译器也是本地,安全软件扫描过的,所以我认为它大概率是误报,于是向微软提交了该二进制软件,几天后,我发现微软排除了它的威胁。

随后的几天中,我感觉都非常方便。

新的发现

突然有一天,我发现 Windows 托盘区的小喇叭似乎自带切换功能,只是这个功能,我才发现。相比开机自动运行一个小软件然后按 F12,和点击托盘区的小图标再点展开再点设备的三次操作来说,我觉得已经差不多了。

按一次键盘和点击三次鼠标,我感觉还是键盘轻松点,但弊端是 F12 是容易和其它热键冲突的。比如 MadEdit 中 F12 就是进入一个 PostIt 模式,如果从菜单进入了,再 F12 时,就无法生效了。

结论

  1. 虽然 AI 编程已经很厉害,你讲清楚了需求,它也无法写出切换音频设备的小功能。
  2. AI 无法完成的原因是它使用了 Windows 未公开的技术。
  3. 新问题很少,这个问题 Windows 的发展过程的几十年间,已经被很多人用不同方式解决。
  4. 如果要解决电脑问题,通过编程解决只是一种直接的方式,你去问 AI 怎么编程,这时有两个结果,一个是 AI 实现了,二是 AI 未能实现,但无论是搜索还是 AI,最后都可以解决。
  5. 解决问题本来还有更简单的办法,也许是对问题解空间的搜索方向错误了。

但无论如何,现有的 AI 都不算能直接解决此问题,最后还得依靠专家的知识和一个灵感和一个机会。

  •