包含关键字 typecho 的文章

原文链接: https://mp.weixin.qq.com/s/Pqa7A38kWEZM0-MNL-A5Gw

中美 AI 大战:当补贴遇上体验,我们真的在进步吗?

近日,一张“中美 AI 大战”的对比图在社交平台广泛传播。美国科技巨头在同一日推出重要更新:GPT 发布 CodeX5.3 模型,Claude 推出 Opus4.6 版本,两者均在响应速度、思维能力和上下文处理能力上取得显著进步。

与此同时,国内 AI 的动向则显得颇为“生活化”——元宝豪掷十亿红包,千问则推出 25 元外卖补贴,可用于点奶茶、咖啡、午餐。一顿饭加上午后的饮品,几乎能覆盖一天的饮食开销。有网友戏称这是“社会主义 AI 的普惠实践”。

一边是技术升级,一边是红包引流——这截然不同的路径背后,折射出的是两种截然不同的产品逻辑与市场策略。美国 AI 产品采用明码标价的订阅模式,Opus4.6 单次使用约 4.96 美元,折合人民币超过 34 元;而国内 AI 则试图通过补贴吸引用户,试图在用户体验与市场扩张间寻找平衡。

补贴狂欢下,产品体验的真实困境

笔者亲身体验了元宝与千问,发现这场普惠盛宴背后,产品体验却面临着多重挑战。

元宝:功能堆砌与定位模糊

元宝将自己定位为“全能型选手”,集提问、生图、生视频于一体。但在实际使用中,其回答往往过于简略,缺乏深度。例如,当询问“丽江古城攻略”时,它建议“不走回头路”的路线,却只从大水车提到狮子山便戛然而止——到了狮子山之后该怎么走?没有下文。

如果能在类似场景中提供闭环路线示意图或鸟瞰图,用户体验将显著提升。目前来看,元宝在回答深度上不如 DeepSeek ,在创意生成上不及可灵、即梦等垂直工具,所谓的“通用”定位,在体验上并未形成真正竞争力。

更值得玩味的是其生态策略。有观点认为,元宝可能希望借助微信构建生态,但微信近年来的产品迭代缓慢、客服缺失、生态封闭等问题已广受诟病。腾讯“律师函警告”式的护城河策略,使外部合作充满不确定性。连内部应用都曾遭封禁,更何况第三方产品。缺乏开放与协同,再庞大的流量入口也可能成为体验的牢笼。

千问:并发之痛与场景错配

千问此次推出的外卖红包活动,初衷虽好,却因并发承载不足引发用户普遍吐槽。大量网友反馈:领了红包却无法使用,部分订单配送延迟长达 3-5 小时,有的门店因订单过载直接暂停营业。

这不仅暴露了技术准备不足,更反映出对线下场景复杂性的低估。此类促销若设计不当,极易引发门店运营压力、用户体验崩塌,甚至演变为社会矛盾。此前“外卖大战”就曾因此被监管部门约谈,历史教训不应被遗忘。

技术产品走入现实生活,必须考虑社会承载力与用户体验的平衡,否则“普惠”只会变成“普扰”。

抄袭困境:创新环境与产品体验的双重挑战

国内互联网行业长期存在的抄袭现象,已成为影响产品体验与创新生态的重要因素。当某款创新产品获得市场认可,巨头企业往往迅速推出相似功能,凭借其庞大的用户基础和资源支持,迅速占领市场。

最近 Typeless 的火爆便是一例——这款专注于提升输入效率的产品,以其极致体验迅速赢得用户青睐。然而很快,微信便推出了相似功能,且完全免费开放。对于初创团队而言,这种“借鉴”几乎是致命的打击。大厂凭借资源优势进行的“海量资源打法”,往往能在短时间内压垮原创团队。

这种现象背后,反映的是一种“打不过就模仿,模仿不了就收购”的竞争逻辑。这不仅打击了创新者的积极性,也最终损害了用户的利益——当市场上充斥着同质化产品,真正的突破性创新将越来越少,用户体验的提升也将陷入停滞。

体验,不止于功能:从插座设计看产品哲学

笔者在亚朵酒店撰写此文时,被房间内的插座设计所困扰——多个插孔位置重叠,使用极为不便。这类“反人类设计”在日常生活中并不鲜见。

这引发了一个根本性问题:我们是否对“产品体验”过于宽容?产品不应仅仅停留在“能用”,而应追求“好用”。极致体验不是苛求,而是对用户时间与感受的基本尊重。

在这方面,NotionFigma 等国际产品值得借鉴——它们在细节打磨、交互逻辑上体现的“人性化设计”,正是国内许多产品所欠缺的。国内也有如 Manus 这 I go, Uncle Tim. 样追求极致体验的代表,证明体验完全可以成为产品的核心竞争力。

总结:AI 竞争的终极战场——体验与价值的回归

中美 AI 的发展路径,短期看是“技术升级”与“市场补贴”的策略差异,长期看则是产品哲学与用户体验的根本较量。技术可以追赶,补贴可以发放,但若缺乏对体验的敬畏、对场景的深耕、对细节的执着,再大的流量也可能流失,再好的初衷也会被消耗。

随着红包热潮退去,用户是选择留下还是离开,将取决于产品能否真正解决需求、提供稳定优质的体验。否则,补贴结束后,留下的只会是一地鸡毛。

AI 竞争不仅是技术战,更是一场关于人性洞察与价值创造的持久战。在这场竞争中,最终的胜者,一定是那个既懂技术、更懂人心的产品——它能够在创新与抄袭之间选择前者,在短期利益与长期价值之间选择后者,在功能堆砌与体验打磨之间选择用户。


本文完成于亚朵酒店,一个插座设计令人深思,抄袭与创新同样值得反思的地方。

现在搬瓦工很少放货,DMIT 基本一年也就几次,于是就开发一个用于 VPS 补货通知 telegram 机器人,可以订阅热门 VPS 库存情况,目前支持商家 DMIT ,搬瓦工,VMISS ,RFC ,绿云,BackWaves 。

可订阅的 VPS 列表:

使用方式:

Telegram 机器人地址: https://t.me/ip33vps_bot

如果有需要的添加的 VPS 型号,请留言。

IP地址查询工具广泛应用于网络安全、广告投放、用户行为分析等多个领域。随着技术的进步,市场上涌现出了多种IP查询工具,它们提供了不同的数据维度、精准度和更新频率。然而,不同工具的性能差异较大,用户在选择时常常感到困惑。本文将对五款主流IP查询工具进行详细测评,帮助用户根据自身需求做出最佳选择。

一、本次测评的五款工具分别为:

  1. IP数据云:提供精准的IP定位、IP风险分析、IP属性查询等功能,支持多维度的数据查询和API接口,更新频率较高。
  2. IPnews:一款专注于IP地址深度分析的全球工具,支持19种应用场景,拥有较高的精准度和数据维度。
  3. IPstack:提供IP定位、代理检测、VPN识别等功能,定位精度较高,适用于多个行业。
  4. ipdata:支持地理位置查询、ISP和ASN识别等功能,提供全面的IP数据查询服务,注重大数据支持。
  5. BigDataCloud:以大数据为基础,提供IP地址的精准分析和风险评估,支持快速查询和稳定的API服务。

如何选择合适的IP查询工具?精准度与更新频率全面分析

二、工具对比

下面的表格展示了这五款工具在精准度、数据维度、稳定性和更新频率方面的表现对比:

工具精准度表现数据维度表现稳定性表现更新频率表现
IP数据云高精准度毫秒级响应,尤其在国内定位精度表现优秀。多维度查询,包括地理位置、运营商、ASN、风险等20+数据维度。高稳定性,支持大流量并发,适合企业级应用。数据每日更新,保障用户获取最新的数据。
IPnews全球范围精准度较高,海外数据表现稳健。数据维度丰富,适用于高精度要求的场景。并发时响应速度良好。日更、周更、月更可选。
IPstack定位精度较高,但在一些偏远地区表现较差。提供IP定位、ISP、ASN查询,适用于广告投放和用户行为分析。稳定性表现良好,适合大部分常规应用场景。更新频率稳定,但某些数据更新稍显滞后。
ipdata定位精度中等,容易被网络环境影响。支持IP位置、ISP、ASN等查询,数据维度适中,适合大数据分析。在大流量情况下,稳定性稍显下降,但总体可接受。更新频率较高,在地理位置数据更新上较为及时。
BigDataCloud定位精准,表现还算不错。以大数据为基础,提供的维度较为多元,但功能集中于风险评估。稳定性较强,支持高并发查询时,仍能保持响应速度。更新频率适中,满足大部分业务需求,但实时性略有不足。

三、实际使用场景分析

以下是五款工具在实际场景中的表现对比,结合不同需求,帮助用户做出选择。

1.网络安全防护

在网络安全领域,IP查询工具主要用于检测IP地址的来源、识别代理和VPN用户、分析IP风险等。高精准度、实时更新和多维度的IP数据对于识别潜在威胁至关重要。
IP数据云:适用于大规模的企业级网络安全防护。其精准度和实时更新功能使得企业能够快速识别潜在的恶意IP,提升防护效果。
IPnews:适用于全球化的网络安全场景,尤其在高风险地区,能够提供详细的IP地址风险分析,帮助安全团队做出快速响应。
BigDataCloud:适用于需要大数据支持的安全防护场景,提供的风险评估功能能帮助识别潜在威胁,但实时性稍显不足。

2. 精准广告投放

广告投放需要精确的地理位置数据和用户行为分析,以确保广告投放的精确性和有效性。IP定位和用户IP属性查询是其中的关键。
IPstack:在广告投放中,IPstack能够提供准确的IP定位和运营商识别,有助于实现区域定向和用户画像构建,适用于广告平台。
ipdata:提供的IP数据维度较为全面,适合用于广告定向投放,尤其适用于大数据支持的广告分析。
IP数据云:凭借其多维度查询和高精度定位,适用于高精度广告定向,尤其在国内市场具有明显优势。

3. 用户行为分析

在用户行为分析中,IP查询工具可用于识别用户位置、设备信息、网络属性等,以帮助分析用户访问模式和行为偏好。
IPstack:通过对IP的精准定位和ISP识别,IPstack适合用于用户行为分析,尤其是在广告定向、内容推荐等场景中表现出色。
IPnews:提供19种应用场景,特别适合需要深度分析用户行为的场景,尤其是跨国公司或全球电商平台。
BigDataCloud:适合需要大数据支持的用户行为分析,尤其是在高并发数据分析时表现稳定。

4. 金融风控

在金融领域,IP查询工具主要用于识别用户的真实身份、监控交易行为、分析风险等。高精度的IP风险评分和定位对于反欺诈、反洗钱等场景至关重要。
IP数据云:提供的高精度IP定位和实时更新功能,使得金融机构能够快速识别风险用户,保护平台免受欺诈攻击。
IPnews:其IP风险分析功能非常适合高精度风控场景,能够帮助金融机构识别疑似欺诈行为,并提供详细的风险评分。
IPstack:提供的代理检测功能有助于识别虚假身份,适用于金融平台进行用户身份核查。

四、总结与推荐

通过对五款主流IP查询工具的全面对比,得出以下结论:

  • IP数据云:在精准度、数据维度和更新频率方面表现均衡,适合需要高精度、多维度分析和实时数据更新的场景,尤其适合网络安全防护和金融风控。
  • IPnews:适合高安全性要求的应用,提供深入的IP分析和多样化的应用场景支持,特别适用于金融、反欺诈等领域。
  • IPstack:定位精度较高,适合广告投放和用户行为分析
  • ipdata:适合大数据支持的广告投放和用户行为分析,但定位精度和稳定性稍逊色。
  • BigDataCloud:适合高负载、大数据支持的应用,尤其在金融风控和大规模用户分析中表现稳定。

根据具体需求,用户可以选择最适合的工具来满足自己的应用场景。

IP归属地数据从Web访问统计、内容合规,到风控反欺诈、IoT设备管理都需要的基础数据,用过的人都知道,趁不趁手,不同产品之间的差异性很大,本文基于实际使用和技术侧常见需求,从精准度、数据维度、稳定性、更新频率四个维度,对2026年仍然值得关注的9个IP归属地查询产品做一次横向总结,仅供技术选型时参考。

注:本次信息来源为官网、技术好友讨论、自己使用测试感受。

核心产品横向对比(2025数据,更新于2026.1.29)

产品对比表放在最前,简单直接,想实际了解使用的可以仔细翻阅全文。

产品定位精度数据维度更新频率稳定性典型定位
IP数据云高(街道/区县)行业领先高频/可定制极高个人开发者、企业级、离线/私有化
IPnews高(城市/街道)丰富实时/日更极高风控、安全分析
IPinfo高(城市级)丰富日更极高全球化SaaS
IPGeolocation中高偏安全维度实时威胁识别
IP2Location中高标准化字段定期离线库
DB-IP中高稳定实用定期/实时成本可控
IPlocation基础日更稳定免费/轻量
ip-api基础字段实时稳定开发测试
IPstack基础+衍生实时快速集成

2026年我会推荐哪些IP归属地查询网站?.png

几类代表产品的差异化

IP数据云

-定位粒度可以做到区县/街道

-数据字段多(运营商、行政区、邮编、经纬度等)

-支持离线库、私有化部署

适合场景:
-金融风控、合规审计;IoT设备区域管理;适合需要长期后台系统的企业

2️IPinfo

-城市级在全球范围内具有一致性

-ASN、公司、网络组织等字段非常实用

适合场景:主做国外业务的用户,对SLA要求高的用户

3️IPnews/IPGeolocation

-地理定位+风险判断整合数据

-V*N/Proxy/TOR/Abuse字段完整

适合场景:更适合实时决策系统

4️IP2Location/DB-IP

-数据结构清晰

-更新周期稳定

适合场景:有内网环境;不方便外部API调用;追求成本可控,不过精度和灵活性不如新一代API型产品

5️ip-api/IPstack

-接入成本低
-文档简单

适合场景:Demo;测试环境;对定位要求不高的前端逻辑,但不太建议直接用于核心业务判断。

如果让我按场景推荐(2026)

-高精度/企业级/私有化:IP数据云
-国外业务SaaS/稳定优先:IPinfo
-风控/安全/异常识别:IPnews、IPGeolocation
-离线库/成本敏感:IP2Location、DB-IP
-快速验证/非核心业务:ip-api、IPstack、IPlocate

vCenter Server 8.0U3h OVF - 在 Fusion 和 Workstation 中快速部署 vCSA

vCenter Server 8.0U3 系列更新

请访问原文链接:https://sysin.org/blog/vmware-vcenter-8-ovf/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


新的 IA/GA 模型

vSphere 8 版本发布转向了新的 IA/GA(初始可用性 / 通用可用性)模型。发布周期如下:

所有主要和更新的 vSphere 版本都将首先交付,并带有 IA 名称。IA 版本是符合所有 GA 质量标准的生产质量版本,并且完全通过了合作伙伴认证。IA 版本将在 IA 阶段提供给所有客户进行生产部署。

一旦确定每个版本都已获得足够广泛的采用,将跟进并宣布该版本过渡到 GA 指定 (sysin)。预计这通常会在 IA 后 4-6 周后发生。当前 IA 版本已经发布,预计年底将发布 vSphere 8.0 GA。

VMware

现在 vCenter Server 8.0U1 发布模型有了新的变化,发布即 GA

VCSA 8 OVF 的变化

在 VCSA 中提供了图形界面和命令行安装程序,可以在跨平台(macOS、Linux 和 Windows)运行,但是部署到的目标虚拟化主机只能是 ESXi 主机或者 vCenter Server。在实验环境中,我们需要将 VCSA 部署到桌面系统(macOS、Linux 和 Windows)中,可以通过直接部署 OVF 的方式实现。

与上一版本不同的是,vCSA 8 IA 所包含的 OVF 直接部署在 Fusion 或者 Workstation 中,第二阶段会报错,导致部署失败。

报错忘了截图了。

经查找 VMware 专家的相关文章,要将 guestinfo.cis.upgrade.import.directory 中的参数修改为 ovf:userConfigurable=“true” 可以解决该问题 (sysin)。本站修改了该 OVF 配置,如果是使用 DHCP 配置网络,那么仅需填写密码即可,部署变得相当简单。

现在创建三个修改的 OVA 文件:

  • -dhcp.ova 标识了 DHCP 环境的配置,仅需要输入密码,第二阶段填写 NTP 和 SSO 凭据即可。
  • -static.ova 标识了 IPv4 静态地址和 FQDN 的配置。
  • -fix.ova 原版风格,未做标识(最新版已弃用)。

DHCP 模板使用说明

双击 OVA 文件进行部署,仅仅填写密码,其他都默认值即可。

VMware

密码规则:长度 8-20 位,4 种字符全包含的复杂密码。

该密码必须符合以下要求:

  • 至少 8 个字符。
  • 不超过 20 个字符。
  • 包含大写字符。
  • 包含小写字符。
  • 包含数字。
  • 包含特殊字符(例如 !(@ 等)。
  • 仅限可见的 A-Z、a-z、0-9 和标点符号。
  • 不允许使用空格。

观察 VM 控制台画面的变化,如下画面,则可以登录 https://[VC-DHCP-IP]:5480 进行第二阶段配置。

VMware

安装程序:配置新的 vCenter Server

VMware

配置 NTP

VMware

SSO 配置

VMware

最后,登录 vSphere Client 如图

VMware

注意事项:建议将上述动态获取的 IP 与虚拟机 MAC 地址绑定或者保留。

STATIC 模板使用说明

是否支持静态 IP 地址?

当然!将 net.mode 修改为 static,配置两组 Networking 参数即可。

下面是 static 版本的截图,在配置上做了提示和标识。

VMware

标注 required 是必填项,标注 default 使用默认值即可。

下载地址

vCenter Server 8.0U3h OVF for Fusion & Workstation

更多:VMware 产品下载汇总

新年快乐!

感谢你在过去一年对 VideoAny 的关注与支持。为庆祝新年,也想在 V2EX 和大家分享我们在做的项目:VideoAny 一个以“视频优先”为核心的一站式 AI 创作工作台( AI 视频 + AI 图片 + AI 音频),在遵守内容政策的前提下尽量少过滤,让创作更自由。

为方便大家无门槛体验,我们也准备了一点小福利:在本帖下方回复并留下你的邮箱(建议与 VideoAny 注册邮箱一致),我们将按留言时间顺序,为前 100 位用户赠送 100 Credits(先到先得)。

如何参与

  1. 访问并注册 VideoAny
  2. 在本帖回复你的邮箱(可使用专门用于活动的邮箱)
  3. 等待 Credits 发放通知

简单介绍:VideoAny 是什么?

VideoAny 是一个 Video-First Studio:把 AI 视频生成AI 图片生成AI 音频生成 集中在同一个工作流里,尽量减少来回切换工具的成本。

你可以用它做:

  • AI 视频:文字转视频、图片转视频、视频转视频、视频扩展( Video Extend )等(支持/整合多模型,如 Runway 、Pika 、Luma 、Kling 、Vidu 等)
  • AI 特效:60+ 一键视频特效,让照片跳舞/拥抱/亲吻等
  • AI 工具:换脸( Face Swap )、视频配音/翻译( Video Dubbing )、口型同步( Lip Sync )、AI Avatar 、视频转场( Video Transition )等
  • AI 音频:视频提取音频( Video to Audio )、文字转音乐/音效( Text to Music / Text to Audio )、声音克隆( Voice Cloning )等
  • 免费小工具:视频/图片/音频压缩( Compressor )等

快速入口(直接点)

产品截图

VideoAny - Video-First Studio

说明

  • Credits 用于各类生成任务;不同模型/时长/分辨率消耗不同 Credits (免费档可用核心功能;付费档通常提供更快队列、更高分辨率等)
  • 邮箱仅用于 Credits 发放与账号绑定
  • Credits 数量有限,达到 100 人后活动自动结束
  • 我们尽量支持更大的创作自由度,但仍会遵守内容政策:禁止违法内容;你需要确保上传/生成内容的权利归属

如果你已经在使用 VideoAny ,欢迎用这 100 Credits 继续体验更多工具;如果你还没试过,也欢迎现在开始。

也欢迎大家在楼里拍砖/提需求/反馈 Bug ,我们会持续优化体验。

VideoAny 团队

macOS Tahoe 26.2 (25C56) Boot ISO 原版可引导映像下载

Liquid Glass 惊艳新设计亮相,电话 app 和实时活动丰富连续互通体验,聚焦搜索迎来最大更新

请访问原文链接:https://sysin.org/blog/macos-tahoe-boot-iso/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


2025 年 12 月 13 日凌晨,Apple 发布 iOS/iPadOS/macOS/watchOS/tvOS/visonOS 全平台 26.2 版本更新。

macOS Tahoe 26.2 引入了 Edge Light 功能:当你在光线不足的环境中进行视频通话时,它会用柔和的光线照亮你的面部。此次更新还为 提醒事项 App 新增了闹钟功能,并带来了 播客 新特性、AirDrop 设置更新等内容。以下是 Apple 的发布说明。

💡 Edge Light

  • Edge Light 视频效果:在低光环境的视频通话中,利用 Mac 显示屏像虚拟环形补光灯一样为你的面部补光
  • 可自定义光线宽度与色温 (sysin),让你自由控制补光效果
  • 鼠标感知功能可确保当你需要操作下方内容时,补光会自动退让
  • 支持在低光环境下自动开启(适用于 2024 年及以后推出的 Mac 电脑)

🎧 播客

  • 自动生成章节,让你更轻松地在更多节目中导航
  • 提供播客链接,可直接在播放器和文字稿中查看并关注节目里提到的其他播客

🎮 游戏

  • 游戏库筛选器可按类别、大小等条件查找游戏
  • 游戏内挑战得分横幅会在有人取得领先时提供实时更新
  • 支持连接的控制器

其他改进与问题修复

  • AirDrop 验证码:与未知联系人使用 AirDrop 时,接收设备会显示验证码,发送方需输入验证码才能完成传输,提供额外的安全验证
  • Apple 新闻侧边栏链接 (sysin):在“新闻”App 中可快速导航至体育、政治、商业、美食等热门主题
  • Freeform 表格:表格可容纳文本、图片、文档和绘图,单元格会智能调整大小,为无限画布带来更清晰的结构
  • Apple Music:最爱歌曲播放列表会显示在“精选推荐”中
  • 修复了资料库中的预发布专辑在正式发布时无法立即播放的问题

macOS Tahoe 26 让 Mac 更强大、更高效、更智能

惊艳新设计亮相,电话 app 和实时活动丰富连续互通体验,聚焦搜索迎来最大更新

16 英寸 MacBook Pro、iMac 和 13 英寸 MacBook Air。

macOS Tahoe 26 推出精美新设计、丰富的连续互通体验及更多功能,强势助推生产力。

加利福尼亚州,库比提诺 Tim Cook 领导的 Apple 今日预览了新一代 macOS——macOS Tahoe 26,推出惊艳新设计和诸多强大功能,赋能用户完成更多任务。macOS 的新设计让桌面、程序坞、app 内导览和工具栏等经典元素更加灵动活泼、赏心悦目且契合用户个性需求,同时延续了原有的熟悉感。用户可使用更新版控制中心和文件夹、app 图标与小组件的新色彩选项,进一步打造个性化体验。随着 Mac 版电话 app 的推出,连续互通功能进一步提升,用户可轻松使用最近通话、通讯录和语音留言等 iPhone 版电话 app 的全部功能,以及通话筛选和通话保留助理等新功能 (sysin)。依托 iPhone 实时活动,用户可直接在 Mac 上实时掌握正在进行的活动,如航班信息等。聚焦搜索迎来迄今最大更新,用户现可直接执行数百项操作,如发送电子邮件或创建备忘录等,并利用全新浏览体验更快捷地访问内容。

“macOS 是 Mac 的核心与灵魂,Tahoe 则将深受用户喜爱的功能发扬光大。无论资深用户还是 Mac 新手,都能借助更多功能提高效率,更顺畅地利用 Mac 和 iPhone 协同工作。”Apple 软件工程高级副总裁 Craig Federighi 表示,“令人惊艳的新设计、奇妙的连续互通体验、聚焦搜索的强大提升、更多智能快捷指令和 Apple 智能的更新让 Mac 体验更胜以往。”

一台 iMac 上显示着设计一新的主屏幕。

图:新设计解锁了个性化设置 Mac 的更多方式。

ISO 映像的优势

相对于官方发布 PKG 映像(另有 IPSW 映像,但仅适用于 Apple 芯片),以及第三方制作的 DMG 映像,ISO 格式具有以下优势:

  • 可以直接拖拽到 Applications(应用程序)目录下(无需管理员权限),进行升级安装
  • 可以直接双击挂载,执行命令写入 USB 存储设备或者其他卷,然后启动全新安装(无需拖拽到“应用程序”目录下)
  • 可以直接启动虚拟机安装,介质本身为可引导映像
  • 可以在 Windows 和 Linux 下写入 USB 存储设备,创建 USB 引导安装介质
  • 跨平台支持,可以在任意操作系统中使用,其他格式仅限 macOS 专用

macOS Tahoe in VMware

图:macOS Tahoe 运行在 Fusion 25H2 中,并开启了 Metal GPU 加速。

下载 macOS Tahoe ISO

💡 如何校验本站下载的文件的完整性

macOS Tahoe

本站原创可引导映像,可以在当前系统中安装或者升级,可以通过 USB 存储引导安装,也可以用于虚拟机安装。

参看:如何在 Mac 和虚拟机上安装 macOS Sequoia、macOS Sonoma 和 macOS Ventura

这里列出 ISO 启动映像下载链接,更多格式请访问以下地址:

macOS Tahoe 硬件兼容性列表

笔者提示:“Apple Intelligence” 及相关功能要求 搭载 Apple 芯片的 Mac 电脑

看看你的 Mac 是否能用 macOS Tahoe

进一步了解 Mac>

如果你的 Mac 不在兼容性列表,参看:在不受支持的 Mac 上安装 macOS Tahoe 26

适用的 VMware 软件下载链接

建议在以下版本的 VMware 软件中运行(Linux OVF 无需本站定制版可以正常运行,macOS 虚拟化如果不是 Mac 必须使用定制版才能运行,Windows OVF 需要定制版才能启用完整功能):

macOS Tahoe 虚拟化解决方案,请参看:macOS 26 Blank OVF - macOS Tahoe 虚拟化解决方案

如何创建可引导的 macOS 安装器

请访问:如何创建可引导的 macOS 安装介质

更多:macOS 下载汇总 (系统、应用和教程)

pastepop

做了个 Mac 小剪切板工具PastePop, 适合先复制一批文本、图片等再来选择粘贴场景

https://apps.apple.com/cn/app/pastepop-%E9%AB%98%E6%95%88%E5%A4%9A%E9%A1%B9%E5%89%AA%E8%B4%B4%E6%9D%BF%E5%B7%A5%E5%85%B7/id6758597353?mt=12

  • ⌥ + V 快捷键随时唤起,用完即走
  • 支持数字键进行快速粘贴
  • 支持方向键或者,.选择
  • shift + < / > 或左右方向键翻页

Promo codes:

9TPHEHKMP3NN

YFE3NETRKN69

7N4AJXMW9HH4

R96A44PF4W9X

HPT6TXJN9N4L

9MEJXNX7KX46

RRF767NP97M7

XH63FY7XYY6N

L4K6MRXM9KAF

RWXRKW4MLEMT

为什么做这个

每天写代码要切好几个 AI 用——Claude 问架构、ChatGPT 查 API、Gemini 翻译文档。每次都是:切浏览器 → 找标签页 → 复制问题 → 粘贴 → 等待。一天下来这些碎片操作加起来挺烦的。

就想着能不能把这个流程缩到最短,于是做了 GroAsk

它是什么

一个常驻 macOS 菜单栏的原生应用。按 ⌥Space 弹出输入框,打字,Tab 切换 AI 通道,回车,问题就自动发送到对应 AI 网站了。整个流程不到 2 秒。

GroAsk 工作流程

几个实用功能

选中即问 — 在 VSCode 里选中一段报错,按快捷键直接发到 Claude,省掉复制粘贴。

Claude Code GUI — 不用开终端输 cd ~/project && claude,一键启动 Claude Code 并自动定位到项目目录。对于用 Claude Code 写代码的同学来说挺方便的。

图片提问Cmd+V 粘贴截图直接问 AI,比如贴个 UI 设计稿问"这个布局怎么实现"。

静默模式 — 按住 Option 提交,问题发出去但不切换焦点,继续写代码等 AI 回复就行。

技术实现

  • Swift + SwiftUI 原生开发,内存占用 ~30MB
  • 通过 Chrome AppleScript 实现自动填入和发送
  • AI 网站改版后服务端远程更新注入脚本,不需要升级 App
  • 主方式失效时自动降级到剪贴板模式(问题复制到剪贴板,手动粘贴)

免费版 vs Pro

免费版就够日常用了,包含 4 个通道:ChatGPT、Gemini、DeepSeek、Kimi。

Pro 解锁 Claude、Claude Code 等高级通道,还有选中即问、图片上传、静默模式这些效率功能。

链接

macOS 13.0+,Apple Silicon 和 Intel 都支持。


有什么建议或者遇到问题,欢迎评论区交流。

还在为查询依赖版本去浏览器重复粘贴配置查找?

Nexus仓库搜索不太会用?学习成本高?

低版本Nexus仓库无法直接查看依赖的更新时间?

这款IDEA插件轻松帮你搞定以上问题!

打开搜索界面后,可直接访问pom.xml进行复制。粘贴坐标在搜索条件(快速)即可直接查询,也可使用groupId、artifactId进行查询,也可使用搜索条件(关键字)进行更多条件查询。

支持一键复制坐标

支持一键查看目录(查看当前依赖版本目录下都有哪些文件)

支持加载详细(低版本Nexus加载时间)

支持访问远程仓库(打开浏览器访问Nexus仓库当前依赖)

支持查询选中(查询当前行对应的groupId+artifactId下的版本)

image.png

image.png

快来在 IDEA 的插件市场中,搜索关键字 MPVP 找到Maven With Me插件进行安装,让 Maven 搜索依赖不在繁琐和困扰!

做采购管理的朋友应该都有体会:一套好用的SRM系统,不只是“把表格搬到线上”,而是能在供应商准入、寻源比价、采购协同、对账结算、绩效评估、风险预警等环节形成闭环,真正帮企业降本增效、降低供应链风险。

但现实是,市面上的SRM产品非常多——功能侧重点不同、行业适配差异大、实施交付能力也参差不齐,选型时很容易踩坑。为此,我整理了一份更偏“实战派”的SRM推荐清单:排名优先结合功能完整性、市场口碑、行业适配度与落地能力,适合正在推进采购数字化转型的企业直接拿去做参考

一、优质SRM软件推荐清单

1、正远科技

https://www.zhengyuantech.cn/

正远科技是国内较早深耕采购数字化的厂商之一,旗下的正远SRM数字化采购管理平台主打“采购全周期协同 + 流程可配置”,在制造、能源、化工等行业具备一定落地基础,适合希望把采购管理从“分散管控”升级成“体系化平台”的企业。

核心优势主要体现在三点:

(1)覆盖采购全流程,形成闭环管理

从供应商注册准入、资质审核、认证评估,到询比价、招投标、订单协同,再到收货、对账、开票、付款等环节,都能做到平台化管理,帮助企业减少线下沟通与数据错漏。

(2)供应商管理更细:准入+认证+绩效一体化

它支持供应商信息模板化录入、准入审核、资质到期提醒,并可结合送样/批样/现场考察等认证方式,建立供应商分级管理与绩效评价机制,适合供应商数量多、质量管控要求高的企业。

(3)集成能力强,便于打通业务系统

正远SRM可与ERP等业务系统对接,并支持按企业流程做配置化适配,更符合中大型企业“多系统、多组织、多场景”的现实需求。

2、金蝶

金蝶在企业云服务领域影响力很强,SRM相关能力通常以“采购云/供应商协同”形式提供,强调轻量化、云部署、快速落地,比较适合预算有限、又希望尽快上线的中小企业。

(1)云化订阅,降低IT投入门槛

不需要复杂的本地部署,按订阅模式使用,企业的初期投入和维护成本会更可控。

(2)供应商全生命周期管理更标准化

金蝶采购/供应商管理强调从供应商注册准入、合作、评估分级、淘汰退出的全生命周期机制,并配套供应商门户,适合建立“统一供应商池”。

(3)采购协同线上化,改善沟通效率

订单、交付、对账等信息线上同步,减少采购与供应商之间的反复确认;在不少企业实践里,SRM确实能显著缩短准入与协同周期。

3、用友

用友的优势在于企业管理软件底盘强,SRM通常以用友BIP采购云/供应商关系管理形态呈现,适合采购组织复杂、强调“财务-采购-供应链一体化”的企业,尤其是原本就在用用友体系的集团型客户。

(1)模块覆盖更全:从战略寻源到P2P闭环

官方页面明确提到其覆盖供应商绩效管理、支出分析、战略寻源、订单到付款、供应链协同等方向,适合做“体系化采购管理”。

(2)更适合集团化、多组织权限管理

对多组织、多角色权限、跨业务协同更友好,适用于多事业部、多工厂的采购管控场景。

(3)与ERP集成更顺滑,减少数据孤岛

对于已有用友ERP的企业而言,可明显降低对接成本,让订单、库存、财务数据形成闭环。

4、甄云科技

甄云科技是汉得信息孵化的采购数字化平台厂商。更准确的表述是:其团队/业务从2005年起积累采购数字化产品研发与实施经验,并逐步形成如今的采购云平台能力。

(1)供应商协同是它的强项

甄云强调供应商门户与链路协同能力,适合供应商数量多、协同频繁的行业,尤其对“计划—订单—物流—结算”的协同要求较高的企业更友好。

(2)平台化、可配置能力较强

支持按企业采购管理习惯做流程配置,兼顾标准化与灵活性,适合管理跨度大、流程分支多的企业。

(3)更偏中大型企业市场

5、鼎捷软件

鼎捷在制造业数字化领域积累深,SRM通常更突出“供应商—生产—库存”的协同链条,适合电子制造、汽车零部件等生产节奏快、物料管理复杂的行业。

(1)贴合制造业场景:生产协同能力更强

如果企业存在强MES需求、追求生产执行与采购联动,鼎捷的制造业基因更容易落地。

(2)绩效评估能结合质量与交付数据

更强调把供应商绩效与生产过程数据结合,避免“只做采购侧评分”的片面性。

(3)行业实施团队经验更集中

制造业客户实施经验相对丰富,适合有明确行业属性的生产型企业。

二、选型建议与避坑要点

为了让这份清单更“可执行”,这里给你一个更直观的选型思路:

1、先按企业规模快速筛选

(1)中小企业:优先“云订阅+轻量上线”——金蝶更匹配

(2)中大型企业:优先“全流程闭环+集成能力”——正远、用友更匹配

(3)集团化/多组织:优先“一体化+权限体系”——用友更匹配

2、再按行业属性做二次确认

(1)制造业(尤其需要ERP/MES联动):鼎捷优先

(2)供应链协同链条长、供应商层级多:甄云更适配

(3)多行业通用、流程较复杂:正远更稳妥

3、最后别忽略两个“隐性关键点”

(1)实施交付能力:比功能更重要

SRM成败往往不是“功能有没有”,而是“流程能不能跑通、数据能不能闭环、供应商愿不愿意用”。

(2)供应商端体验:决定系统使用率

供应商登录麻烦、填报复杂、移动端不好用,最终会导致协同效率下降,平台变成“企业自己用的内部系统”,价值会大打折扣。

总体来说:

不同SRM厂商定位不同,没有绝对的“最好”,只有“最适合”。如果你追求全流程覆盖、灵活配置与系统集成,优先考虑正远;中小企业更看重性价比与快速上线,金蝶是更稳的选择;集团化企业希望采购与财务、供应链高度一体化,用友会更合适;供应链复杂、强调协同深度的企业,可以重点关注甄云;制造业尤其是电子、汽车零部件等行业,鼎捷的制造场景适配度更高。

最后提醒一句:选SRM不是只选产品,更是选厂商的实施能力与长期服务能力。建议优先选择有行业案例、交付体系成熟、服务网络完善的品牌,避免后期“系统能用但跑不起来”。

Nexpose 8.35.0 for Linux & Windows - 漏洞扫描

Rapid7 on-prem Vulnerability Management, released February 2026

请访问原文链接:https://sysin.org/blog/nexpose/ 查看最新版。原创作品,转载请保留出处。

作者主页:sysin.org


Nexpose Vulnerability Scanner

本地部署的漏洞扫描器

一款强大的漏洞管理解决方案,可在整个环境中提供全面的资产可见性,同时协助风险的优先级排序与修复。

Nexpose

工作原理

Collect

收集

通过对整个网络的实时覆盖,随时掌握风险情况。

Prioritize

优先级排序

借助更具意义的风险评分,了解应优先关注哪些漏洞。

Remediate

修复

为 IT 提供快速高效修复问题所需的信息。

Quote Icon

评语:对于大型企业来说 —— 无论多大规模 —— 这款产品都非常值得考虑。它功能强大,具有可靠的历史表现与优秀的支持选项。

—— SC Magazine

核心功能

助你在关键时刻采取行动的漏洞扫描软件

实际风险评分

传统的 1-10 CVSS 分数往往会标记成千上万个“高危”漏洞。我们的漏洞扫描器采用实际风险评分(Real Risk Score),提供更具可操作性的洞见 (sysin)。该评分不仅考虑漏洞的存在时间,还包括公开利用代码或恶意软件工具包等因素,1-1000 的评分范围可突显最有可能被攻击者利用的漏洞,助你优先处理真正关键的问题。

结合强大的标签系统,还可自动优先处理对你的业务最关键的系统。

Real risk score

自适应安全

“被动扫描”常伴随大量误报和陈旧数据,源自不频繁的数据导出。而借助 Nexpose 的自适应安全功能,一旦新设备或新漏洞访问你的网络,即可实现自动检测与评估。

结合与 VMware 和 AWS 的动态连接,以及与 Sonar 研究项目的集成,Nexpose 为你提供真正的实时环境监控。

Adaptive security

策略评估

加强系统防护与发现并修复漏洞同样重要。

Nexpose 提供内置的策略扫描,帮助你依据 CIS 和 NIST 等主流标准对系统进行基准评估 (sysin)。直观的修复报告提供逐步指导,说明哪些操作将最显著提升合规性。

Policy assessment

修复报告

修复报告列出可降低最大风险的前 25 项行动,并附有清晰的操作指南。

还可为管理层创建趋势报告,展示安全项目的投资回报与进展情况。

Remediation reporting

新增功能

Nexpose 最新发布

Nexpose Version 8.35.0

软件发布日期:2026 年 2 月 2 日 | 发布说明发布时间:2026 年 1 月 29 日

新增:

  • 新增对使用 Nexpose Scan Assistant 扫描 macOS 资产的支持。本次发布引入了对 macOS Sonoma、Sequoia 和 Tahoe 的 Scan Assistant 支持 (sysin),并提供适用于 Intel 架构和 Apple Silicon 架构的安装程序。
  • 新的策略内容:已新增对以下版本的 CIS 和 DISA STIG 基准的支持,帮助组织遵循最新的安全最佳实践:

    • Linux:

      • CIS Debian Linux 11 STIG Benchmark v1.0.0
      • CIS Ubuntu Linux 22.04 LTS Benchmark v3.0.0
      • CIS Oracle Linux 8 Benchmark v4.0.0
      • CIS AlmaLinux OS 10 Benchmark v1.0.0
    • Microsoft Windows Server:

      • DISA STIG Microsoft Windows 11 Benchmark Version 2, Release 6
      • DISA STIG Microsoft Windows Server 2019 Benchmark Version 3, Release 6
    • Apple macOS:

      • CIS Apple macOS 15.0 Sequoia Benchmark v2.0.0
    • Web 浏览器:

      • CIS Google Chrome Group Policy Benchmark v1.0.0

改进:

  • 改进了 Oracle Linux 内核指纹识别,减少误报。
  • 提升了 PCI 漏洞报告中 CVSS 评分的一致性 (sysin)。自定义 PCI 报告模板现在会与 Security Console 保持一致地显示 CVSS v2 和 v3 评分,确保严重性评级能够准确反映底层漏洞数据。
  • 策略内容更新:修复了 CIS Rocky Linux 9 Benchmark v2.0.0 中的策略评估问题。

下载地址

Rapid7 Vulnerability Management - Nexpose v8.35.0 for Linux x64, February 2026

Rapid7 Vulnerability Management - Nexpose v8.35.0 for Windows x64, February 2026

相关产品:

更多:HTTP 协议与安全

精简持有品种 ing...

卖出的钱暂时买了短融 ETF ,看见腾讯跌的比较多,565 加了一手,现在成本还 620 ,最早三季报前 655 建的仓,之后因为港币升值,成本涨到了 670 ,真的难顶。

还想买茅台来着,突然一根大阳线让我尾灯都看不到了,打算先攒白酒 LOF 基金,之后有机会跟五粮液一块换成茅台。

当下制造业竞争日趋白热化,除了生产线效率与产品质量这两大核心抓手,供应链管理能力早已成为决定企业核心竞争力的关键变量。SRM系统作为提升供应链协同、实现降本增效的重要数字化工具,正被越来越多制造企业纳入数字化转型的重点布局中。

但问题也很现实:市面上的SRM系统五花八门,功能侧重与行业适配差异不小。对制造企业来说,选对一款真正贴合生产采购场景、口碑经得起验证的SRM系统,往往直接决定供应链数字化转型的成败。

本次盘点结合制造企业实际使用反馈与行业公开信息,重点围绕以下三大维度展开:

(1)对制造业采购场景的适配深度;

(2)功能落地后的实际效果;

(3)售后服务能力与客户续约表现。

一、正远科技:制造业定制化SRM的代表型厂商

https://www.zhengyuantech.cn/

在制造业SRM赛道里,正远科技在中小与成长型制造企业群体中口碑表现突出。其核心优势在于:对制造业采购全流程理解深、交付节奏快、系统适配灵活,尤其适合“采购流程复杂但IT团队有限”的企业。

1、低代码架构,解决制造业“流程各不相同”的硬痛点

制造业采购远比其他行业复杂:原材料、零部件、辅料、外协加工等品类采购,往往对应不同的准入规则、审批链路与交付验收方式。很多标准化SRM系统上线后最大的问题就是——“水土不服”。

正远SRM采用低代码方式构建,企业可通过拖拽配置快速调整:

(1)表单字段与校验规则;

(2)审批与寻源流程;

(3)数据报表与指标看板。

业务一变,系统也能快速同步调整,避免动辄二次开发,显著降低落地周期和适配成本。

2、全生命周期闭环,供应商管理更“可控、可追责”

正远SRM围绕制造业典型供应商管理需求,形成从准入到淘汰的闭环:

(1)准入审核:资质文件、质量体系、产能能力等集中归档;

(2)过程管理:交付、质量、响应效率指标可量化;

(3)绩效评价:支持定量+定性结合,推动分级管理更公正;

(4)风险预警:对供应不稳定因素做到提前干预。

这套逻辑的价值在制造业尤其明显:把供应商从“靠经验管”变成“靠数据管”。

3、集成能力强,打通ERP/MES/WMS消除数据孤岛

采购与生产脱节,是很多制造企业的老问题——要么采购慢导致停工待料,要么采购多造成库存积压。

正远SRM强调与ERP、MES、WMS等系统集成,实现:需求提报—采购执行—交付验收—对账结算全链路贯通,让采购决策更精准、响应更及时。

二、甄云科技:中大型制造企业采购数字化的一体化选择

甄云科技是国内采购数字化领域的头部厂商之一,源自汉得信息孵化,并长期服务中大型企业采购场景。其官方介绍提到:自2005年开始涉猎第一代产品研发、具备多年采购数字化实施经验,客户覆盖多个国家和地区。

1、一体化覆盖广,适合复杂采购体系

甄云SRM的典型优势在于“套件化、一体化”,覆盖:

(1)供应商管理

(2)寻源与询报价

(3)采购协同执行

(4)采购商城与目录管理

对采购组织层级多、品类复杂的大型制造企业而言,这种“平台型整合”更能减少系统割裂。

2、全球化能力强,多语言多币种更稳妥

(1)支持多语言、多币种与跨区域协同;

(2)服务网络覆盖多个国家和地区。

3、适配提醒:中小制造企业可能“用不满、用不起”

甄云更适合采购复杂、流程要求高、预算更充足的企业。对中小制造企业来说,可能出现:功能冗余、部署成本更高、实施周期更长的情况,选型时需要谨慎匹配。

三、商越:制造业非生产性采购口碑上升很快

商越属于SRM赛道后起之秀,公开信息显示其在2018年11月创立(商越科技)。其优势集中在“采购中台+采购商城”模式,对制造企业非生产性采购尤其友好。

1、采购商城体验好,员工自助下单显著提效

非生产采购常见痛点是:品类杂、频次高、金额小但流程长。商越通过商城化方式让员工直接自助选购,系统自动完成:比价—下单—审批—结算,大幅降低采购团队事务性工作量。

2、定位提醒:生产性采购能力偏基础

商越更适合作为非生产采购平台,或作为生产采购系统的补充。若企业以生产物料采购为主,并且对寻源、绩效、风险预警要求高,则不建议把它作为唯一核心SRM系统。

四、企企通:中小制造企业“够用+成本友好”的备选方案

企企通在业内被认为是“从供应商协同切入”的SRM厂商之一。有公开研究报道提到其在2015年底推出第一款SRM产品(爱分析),在制造、新能源、电子等行业也有客户覆盖。

1、基础采购能力完善,满足“从0到1”数字化

企企通覆盖供应商档案、订单协同、对账结算等核心能力,能满足许多中小企业对“采购线上化、信息规范化”的第一阶段需求。

2、局限性:高级寻源与深度分析能力相对弱

如果企业增长很快、采购寻源复杂(多轮竞价、专家评分、价格策略库等),则未来可能仍需升级到更强的平台型SRM。

五、制造业SRM选型建议

制造业选SRM,最重要的是一句话:适配为王。不要盲目追求“大而全”,而要优先匹配企业阶段与采购结构。

1、中小及成长型制造企业

(1)优先:正远科技

低代码灵活、制造业适配深、实施节奏快,适合作为主SRM平台。

2、大型制造企业(流程复杂/集团化/跨区域)

(1)优先:甄云科技

平台型能力强,适合构建统一采购体系与跨区域协同(官方口径覆盖10多个国家和地区)。

3、非生产性采购占比高(办公/MRO)

(1)重点考察:商越

商城体验强,适合提升“高频低值”采购效率。

4、预算有限,仅需基础采购数字化

(1)备选:企企通

够用、成本友好,更适合采购数字化起步阶段。

最后提醒:SRM系统能不能用好,不只看功能表,更取决于厂商是否真正懂制造业、是否有成熟实施体系与响应机制。建议制造企业在选型中至少做三件事:
(1)要求提供同行业真实案例与交付路径;
(2)现场体验业务流程配置能力;
(3)明确售后响应SLA与实施里程碑,避免“上线即停摆”。

昨日 V 友努力,Opus4.6 消耗了近 10 亿 token

image.png

我也紧盯报错日志,修复了不少问题(其中包括一些其他收费中转站也报错的问题。得益于自研的负载均衡报错转移逻辑,目前暂无太明显的中转站问题)

image.png

当前比较显著的问题是:V 友反馈网站连接慢

已听劝。

为了让 V 友在周末休闲时间 vibe coding 用得爽,暂时关闭 CF 小黄云,上线临时日本 IP 将延迟降低至 100ms 以下。

image.png


请允许我打个小广告:各位用得爽的 V 友可以给同事推荐一下,网站需要流量。谢谢🙏


一个免费不限量 Claude API 公益服务,请作为兜底使用。支持 OpenAI 和 Anthropic 格式。

不用注册 免费 不限量 真模型 自己服务不能用了再用这个作为兜底,别做主力使用,不保证稳定性,只保用到的模型是真的模型。

网址自行解码:aHR0cHM6Ly9vbmVkYXlhaS5hdXRvY29kZS5zcGFjZS8=

🙏赛博活佛🙏

开发者朋友们大家好:

这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的技术」、「有亮点的产品」、「有思考的文章」、「有态度的观点」、「有看点的活动」,但内容仅代表编辑的个人观点,欢迎大家留言、跟帖、讨论。

本期编辑:@瓒an、@鲍勃

01 有话题的技术

1、Mistral AI 发布 Voxtral Transcribe 2 系列语音转文字模型:延迟降至 200ms 以下,Realtime 模型权重开源

法国 AI 初创公司 Mistral AI 发布新一代语音转文字系列模型「Voxtral Transcribe 2」,包含实时流式模型「Voxtral Realtime」与离线批处理模型「Voxtral Mini Transcribe V2」。该系列在大幅降低推理延迟的同时,通过 $0.003/分钟的定价策略挑战现有的语音 API 市场,并对实时模型实行 Apache 2.0 协议开源。

  • Realtime 模型流式架构与低延迟:不同于传统的音频切片处理,该模型采用原生流式架构,延迟可配置至 200ms 以下。模型参数量为 4B,支持在边缘设备部署,支持包括中文、英语、法语在内的 13 种语言。
  • 高性价比与推理能效:Mini Transcribe V2 离线转录成本为 $0.003/分钟。官方数据显示,其推理速度比 ElevenLabs 「Scribe v2」快约 3 倍,且在 FLEURS 基准测试中的词错误率低于 GPT-4o mini Transcribe 和 Deepgram Nova。
  • 企业级功能集成:新增「上下文偏置」功能,允许用户提供最多 100 个专有名词或行业术语以提升识别准确率;支持精准到词级的时间戳以及多角色区分。
  • 开源与隐私部署:Realtime 模型遵循 Apache 2.0 协议开源权重。全系模型支持符合 GDPR 和 HIPAA 标准的本地化或私有云部署,支持单次处理长达 3 小时的音频文件。

「Voxtral Mini Transcribe V2」已通过 API 上线,定价 $0.003/min;「Voxtral Realtime」API 定价 $0.006/min,其模型权重已在 Hugging Face 开放下载。

HuggingFace:
https://huggingface.co/mistralai/Voxtral-Mini-4B-Realtime-2602

( @Mistral AI Blog)

2、Sarvam AI 发布「Sarvam Vision」视觉语言模型:基于 3B 参数 SSM 架构,主打 22 种印度语种文档解析

印度 AI 初创公司 Sarvam AI 推出 3B 参数的视觉语言模型「Sarvam Vision」。该模型采用 State-space 架构,旨在解决印度 22 种官方语言在文档智能领域的精度瓶颈,实现从扫描件、历史档案及复杂图表中进行端到端的知识提取。

  • 高效 SSM 架构与模块化设计:该模型基于 3B 参数的状态空间模型,集成「语义布局解析器」与「阅读顺序网络」,在保持轻量化参数规模的同时优化推理效率。
  • 覆盖 22 种印度官方语言:针对印度语种长尾效应,模型在自建的「Sarvam Indic OCR Bench」(包含 20,267 个样本)中表现优异。在 Hindi、Bengali、Tamil 等核心语种的单词准确率显著超过 Gemini 3 Pro 与 GPT 5.2。
  • 多维度文档解析能力:支持复杂表格解析、趋势线数据提取、手写体识别及多语言视觉推理。在 olmOCR-Bench 的英语表格解析及科研数学项中,其得分优于多个主流闭源模型。
  • 强化学习与可验证奖励训练:在基础模型「Sarvam Sovereign 3B」之上进行持续预训练,随后通过监督微调和基于「可验证奖励」的强化学习提升逻辑稳定性。

API 已正式上线。2026 年 2 月全月,「Sarvam AI」 平台提供免费无限量使用。

相关链接:
https://dashboard.sarvam.ai/

( @Sarvam AI Blog)

02 有亮点的产品

1、库克官宣苹果进军 AI 硬件,首款 AI 眼镜有望今年发布

科技媒体 Cult of Mac 今天发布博文,报道称在苹果本周召开的全员会议上,公司首席执行官蒂姆 · 库克首次确认,正积极筹备一系列由 AI 驱动的全新产品类别。

库克并未在会议上展示具体原型机,但向员工强调了 AI 为苹果带来的全新机遇。该媒体认为这一表态证实了业界长期的猜测:苹果正试图通过人工智能技术,重新定义用户与设备的交互方式,逐步摆脱对传统触摸屏的依赖。

在 AI 设备方面,基于目前相关爆料,目前至少有 AI 眼镜和 AI 胸针两款产品。

该媒体报道称苹果内部正加速研发 AI 智能眼镜,被视为接替 iPhone 的关键设备之一。首代产品预计不配备显示屏,而是通过集成摄像头、麦克风和扬声器,实现电话接听、音乐播放、实时翻译及逐向导航等功能。

消息称苹果会在 2026 年年底前展示该产品的初版概念,然后在 2027 年发售。至于带有显示屏的第二代版本,则可能要等到 2028 年才会问世。

在 AI 胸针方面,其尺寸类似 AirTag,混合铝合金与玻璃外壳材质,计划最早于 2027 年发布。设备正面集成了两颗摄像头(标准镜头与广角镜头),不仅能拍摄照片,还能实时捕捉用户周边的视频信息。

(@IT 之家)

2、金融科技初创公司 Veritus 获 1010 万美元种子轮融资,深耕贷款领域语音 AI 智能体

据 FinTech Futures 独家报道,美国金融科技初创公司 Veritus 已成功完成 1010 万美元的种子轮融资。本轮融资由 Crosslink 和 Threshold 领投,Emergence Capital、Surge Point、Cedar Capital 及 Rebel Fund 等机构参投。

Veritus 由 Joshua March 与前 Divvy Homes 工程师 David Schlesinger、Joey Stein 于去年共同创立,并入选了 Y Combinator 2025 年夏季批次。该公司总部位于旧金山,专门为消费贷款行业提供 AI 智能体平台。其核心技术是语音优先的智能体,能够与借款人进行符合监管要求的对话,同时支持短信、电子邮件和实时聊天。

该平台通过与贷款管理系统及记录系统集成来访问客户数据,运行全渠道的入站和出站业务。目前的部署重点集中在两个领域:

  • 申请漏斗外联: 通过电话和短信联系预选借款人,以提高转化率。
  • 早期逾期互动: 处理早期违约行为,并直接在电话中完成还款操作。

Veritus 采用双智能体架构处理复杂对话,如困境计划、费用减免及结算。在此模式下,一名 AI 智能体负责与客户沟通,另一名则在后台监测对话并向主智能体提供评估建议。

在安全性方面,Veritus 在创立之初即确立了银行级控制标准。平台具备实时个人敏感信息脱敏和令牌化功能,目前已获得 PCI、HIPAA、ISO 及 SOC Type II 等相关合规认证。

公司已上线运营五个月,客户涵盖金融科技公司、大型服务商及一家英国银行。随着种子轮融资完成,Veritus 计划通过扩充团队来加速市场扩张。其核心成员包括来自 Best Egg、高盛 Marcus 及 Robinhood 等知名机构的资深专家。CEO Joshua March 表示,市场正意识到智能体 AI 带来的运营效益,公司目标是迅速满足增长的需求,并将在业务起飞后适时启动 A 轮融资。

( @FinTech Futures)

3、AI 视频数字人平台 Synthesia 融资 2 亿美元,将打造员工技能培训 AI

总部位于伦敦的 AI 视频数字人平台 Synthesia Ltd。 宣布完成 2 亿美元的 E 轮融资,公司估值因此达到 40 亿美元。本轮融资由现有投资者 Google Ventures 领投,Evantic 和 Hedosophia 参投。包括 NVentures、Accel、Kleiner Perkins、New Enterprise Associates 等在内的多位现有投资者也参与了本轮跟投。该消息证实了去年 10 月关于由 Google Ventures 领投该轮融资的报道。

Synthesia 成立于 2017 年,主要提供利用生成式 AI 制作逼真、栩栩如生的人物视频虚拟形象的平台。公司计划利用新资金,通过其专业的视频 AI 产品重新定义员工的学习方式。其核心工具具备以下特点:

  • 个性化定制:允许用户通过网络摄像头或智能手机捕捉图像,创建个性化头像并匹配克隆声音。
  • 多语言与全身交互:生成的头像能代表用户用 30 多种语言发言,并支持全身模式,即说话时可配合手臂和手部的肢体动作。
  • 素材库资源:提供包含 230 多个预制头像的素材库,支持超过 140 种语言,适用于营销和沟通场景。

公司联合创始人兼首席执行官 Victor Riparbelli 表示,本轮融资将用于扩展公司的愿景,即利用 AI 将内容创作成本降至零,并为组织提供更具吸引力的沟通与学习方式。Synthesia 认为,未来十年内容形式将从静态的单向内容转变为由 AI 代理驱动的交互式体验,例如在自助服务终端或移动设备上实现类似视频通话的互动。

针对企业面临的员工技能提升挑战,Synthesia 将重点放在设计用于教育和技能提升的对话代理上。早期客户反馈显示,基于代理的新产品比传统格式带来了更高的参与度。鉴于此,Synthesia 表示将把教育代理作为核心战略重点,同时继续投资现有平台的功能开发。

相关链接:

https://www.synthesia.io/

( @SiliconANGLE)

4、一句指令安排全家日程:Nori 登顶生产力榜,探索家庭语音交互新形态

Domus Next 旗下的 AI 产品 Nori 近期在美国市场表现抢眼,仅凭为期一个月的内测便渗透进超 10 万家庭,发布首日更在 App 生产力榜单上一度超越 Google Calendar。该团队核心成员来自字节跳动和三星,试图将 AI 的关注点从专业工具回归大众生活,解决家庭场景中信息分散、协作低效的痛点

Nori 将共享日历、任务管理、菜谱规划等功能整合,并提供了显著的 AI 入口。用户可通过文字、语音或拍照等多种方式与 AI 交互。在实际体验中,语音成为了高效处理琐事的利器:

  • 指令执行:早期用户 Jamie 仅通过一句语音指令:「周六下午提醒爸爸送大女儿参加同学派对」,Nori 便自动创建了日程并同步至相关成员的日历,甚至自动添加了礼物购买事项。
  • 场景互动:用户在厨房随口询问晚餐建议时,系统能结合冰箱食材照片与家庭饮食限制,通过对话给出方案并生成购物清单。

尽管「简单好用」是其核心标签,但用户反馈也暴露了纯软件形态在语音交互上的局限。许多用户抱怨手机锁屏状态下无法唤醒 AI,导致厨房里随口一句「牛奶快没了」或客厅关于周末计划的闲聊无法被即时捕捉。这种对手机硬件的依赖,使得 Nori 难以获取散落在环境中的非正式信息,也阻碍了部分不习惯使用 App 的家庭成员参与协作。

针对这一瓶颈,Domus Next 正探索软硬件协同的路线。未来的硬件设备被视为一个始终在线的物理载体,它能像「耳朵」一样常驻家庭公共空间,解决手机交互的割裂问题。通过捕捉持续的、环境化的语音上下文,AI 有望从单一工具进化为真正理解家庭真实运作机制的智能体。

( @Z Potentials)

03 有态度的观点

1、ElevenLabs CEO:语音是人工智能的下一个交互界面

ElevenLabs 联合创始人兼 CEO Mati Staniszewski 在多哈 Web Summit 峰会上指出,语音正演变为人工智能的下一代主流交互界面。随着模型突破文本与屏幕的限制,语音将成为人类操控机器的核心方式。

Staniszewski 表示,ElevenLabs 开发的语音模型已不仅限于模拟情感与语调,而是开始与大语言模型的推理能力深度结合。他预见在未来几年,手机将回归口袋,人们得以便捷地沉浸于现实世界,通过语音机制直接掌控各项技术。

这一愿景已获得行业资本与巨头的广泛认可。本周,ElevenLabs 完成 5 亿美元融资,估值攀升至 110 亿美元。目前,语音交互已成为 AI 竞争的关键战场:

  • 巨头布局: OpenAI 与 Google 均将语音视为下一代模型的核心;苹果公司则通过收购 Q.ai 等动作,秘密研发常驻型语音技术。
  • 硬件演进: AI 正在向可穿戴设备、汽车等新硬件渗透,控制方式从触屏转向语音。
  • 输入变革: Iconiq Capital 合伙人 Seth Pierrepont 认为,尽管屏幕在娱乐领域仍具价值,但键盘等传统输入方式已显过时。

针对技术演进,Staniszewski 强调了「智能体化」的趋势。未来的语音系统将不再依赖逐条指令,而是通过积累持久记忆与上下文,使交互过程更趋自然。

为支持耳机等可穿戴硬件,ElevenLabs 正开发云端与本地处理相结合的混合架构,使语音成为持久伴随的工具。目前,该公司已与 Meta 展开合作,将其技术应用于 Instagram 及 Horizon Worlds,并有意探讨在 Ray-Ban 智能眼镜上的合作可能。

然而,随着语音系统更深入地嵌入日常生活,关于隐私、监控及个人数据存储的风险也随之增加,这成为该领域必须面对的严峻挑战。

( @TechCrunch)

阅读更多 Voice Agent 学习笔记:了解最懂 AI 语音的头脑都在思考什么

写在最后:

我们欢迎更多的小伙伴参与 「RTE 开发者日报」 内容的共创,感兴趣的朋友请通过开发者社区或公众号留言联系,记得报暗号「共创」。

对于任何反馈(包括但不限于内容上、形式上)我们不胜感激、并有小惊喜回馈,例如你希望从日报中看到哪些内容;自己推荐的信源、项目、话题、活动等;或者列举几个你喜欢看、平时常看的内容渠道;内容排版或呈现形式上有哪些可以改进的地方等。

作者提示: 个人观点,仅供参考​

用 Claude Code 写代码时最大的痛点:离开电脑就失联了。各种手机终端软件交互也不友好

所以做了 CCBot , 一个 Telegram Bot ,让你用手机无缝接管终端里的 Claude Code 会话。

它不封装 SDK ,只是通过 tmux 启动 Claude 进程,然后服务和 tmux 进行交互:读 tmux 的输出、发按键给 tmux 等等。使用 tmux attach 又可以继续在电脑操作了,完整的上下文都在。

Imgur

https://github.com/six-ddc/ccbot

其实我们不必回避看完书就忘的问题,因为大多数人看书都是会忘的。其实人类的大脑就是这么设计的,它会过滤掉大部分不重要的信息,只保留下重要的信息。如果真的想要记住一本书重要的知识,需要反复阅读,反复思考,反复练习。

在前 AI 时代,做读书笔记是一件非常耗费精力的事情,但是有大模型之后,我们可以在做笔记这件事上偷偷懒。

注意:做笔记可以偷懒,但是思考和反复回看是绝对不能偷懒的。

那么有什么好用的工具呢?朋友们,有的!欢迎使用 ebook-to-mindmap!简单来说,你可以通过 ebook-to-mindmap 把 pdf 或 epub 格式的电子书转换为分章节的思维导图或者文字总结。

思维导图模式

点击这里即可立即体验。整个网页应用功能比较简洁,大家可以直接上手,当然,下面我也会比较详细地介绍一下这个应用的使用方法🤗

模型配置

使用 ebook-to-mindmap 的第一步是配置模型。它和很多 AI 应用一样,都是选择 byok( Bring Your Own Key )的模式,你可以在这里配置你自己的大模型。

这里还是要强调一下,在 ebook-to-mindmap 填写 Key 时不必担心 Key 泄露,因为 Key 只是保存在你自己的浏览器里,请求也是直接从你的浏览器发送到大模型提供商的服务器的。你可以在浏览器的开发者工具里查看网络请求,确认这一点。同时,ebook-to-mindmap 作为一个开源项目你可以随时检视它的代码,还可以自己部署一个属于你的 ebook-to-mindmap 。

说回模型的选择,可能很多人会担心使用 ebook-to-mindmap 的花费太高,其实倒也不必,毕竟现阶段还是能找到很多免费或者低价的大模型。我的首推还是 openrouter,你只需要充值 10 刀,就能获得一个较大的免费模型(其中包括一些 deepseek 变体、最近小米的新模型、之前一段时间还有 grok )使用额度,基本上一天让它处理好几本书都没问题了。其他详细推荐可以参考免费和付费 AI API 选择指南

model list

在获取到 Key 后如上图填写信息即可。

你还可以配置多个模型,点击左侧的星星后会成为默认模型,后续处理时默认使用星标的模型:

model list

生成笔记

配置模型后,在主页选择电子书即可。之后 ebook-to-mindmap 会自动识别电子书的格式,然后开始识别章节:

AI 总结页面

提示:如果 epub 无法获取到章节,可以在设置里勾选使用 Spine 获取章节

章节识别成功后,选择你需要总结的章节,或者使用分组功能(可以使用快捷键 Ctrl + G )把零碎的章节组合成分组一起发送给 AI 处理。

一切准备好后,点击开始解释按钮即可开始生成笔记。

默认情况下,ebook-to-mindmap 会生成思维导图,你也可以点击小齿轮切换到文字总结模式:

模式切换

虽然有整书思维导图生成功能,但是如果书的内容比较长,AI 可能吃不下这么长的上下文,所以建议还是分章节生成,最后系统会自动拼接

生成笔记如果想要中途取消,放心点取消就好,之前处于完成状态的章节会被缓存,不用担心之后需要再浪费 Token 重新生成。

提示词

举个例子吧,你在提示词列表里添加一个“小·红书风格”提示词,在生成环节选择这个提示词,就能直接生成小红书风格的笔记。

小红书风格

不止小红书风格,你也可以让 AI 只简单地提取该章节最重要的 5 个观点,帮助你对整本书的主要内容有一个简要的了解。

你还可以使用“反论法”提示词:

选取本章的核心论点或思想,并探索它的对立面。如果作者要为相反的观点辩护,他们需要证明什么?文本中是否有无意间支持反面观点的蛛丝马迹?

参考分享几条有意思的 NotebookLM 提示词这篇文章,里面有几个有趣的提示词,或许能让你眼前一亮。

内容管理

ebook-to-mindmap 充满了下载按钮,是的,你生成的数据必须还是属于你的!你可以很轻易地把数据拿出来!

导出的文字内容可能是 markdown 文件或是思维导图 json 文件。

markdown 文件可以直接阅读,或者导入到 Obsidian 、Notion 等笔记软件再细化修改。

思维导图 json 文件可以使用 mind-elixir-core 等前端库渲染,当然,如果你是技术人员,理解 json 数据的结构你也可以随意修改和渲染。

思维导图亦可导出为图片,点击思维导图页面右上角的下载按钮即可。

格式选择

最后谈谈电子书格式的问题,ebook-to-mindmap 支持 pdf 和 epub 格式的电子书,但是这两种格式如何选择呢?

或许大家都会比较喜欢看 pdf ,因为看起来比较工整,但是使用 ebook-to-mindmap ,我还是比较推荐 epub 格式的电子书。

稍微讲一下 pdf 和 epub 的原理吧。

pdf 的特点是在任何设备上看起来都一样,这就很容易想到,其实 pdf 的排版是非常固定的,而且更重要的是,pdf 的排版是没有语义的。也就是说,人类能看到一个标题是加粗黑字,但是 pdf 本身并不知道这是一个标题,它只是知道这一块区域的文字是加粗黑字的。

更严重的问题是 pdf 如果有一些复杂的排版,例如在角落嵌入一段文字,在解释的时候就很难理解那段文字的意义。所以,大模型理解 pdf 的难度会比较大。

而 epub 格式就不一样,它更像是一张网页,有语义,有结构,有层次,就跟 HTML 差不多。但缺点就是人类看来这样的排版有点粗糙,在不同的阅读器上显示效果也不同。在某些落后的 epub 阅读器上阅读时可能会觉得排版很有年代感。但是大模型不在乎排版,有清晰的结构就能得到好的输出结果。

写在最后

总的来说,ebook-to-mindmap 是一个能帮你快速复习或者把书本变薄的工具。在这个信息爆炸的时代,高效地获取和整理知识变得越来越重要。希望这个小工具能成为你阅读路上的得力助手,让你把更多的时间花在深度思考和理解上,而不是机械地摘抄。

如果你觉得这个项目对你有帮助,欢迎在 GitHub 上点个 Star ⭐️ 支持一下!如果你有任何建议或发现了 bug ,也欢迎提 Issue 或者加入讨论。

Happy Reading!

其实我们不必回避看完书就忘的问题,因为大多数人看书都是会忘的。其实人类的大脑就是这么设计的,它会过滤掉大部分不重要的信息,只保留下重要的信息。如果真的想要记住一本书重要的知识,需要反复阅读,反复思考,反复练习。

在前 AI 时代,做读书笔记是一件非常耗费精力的事情,但是有大模型之后,我们可以在做笔记这件事上偷偷懒。

注意:做笔记可以偷懒,但是思考和反复回看是绝对不能偷懒的。

那么有什么好用的工具呢?朋友们,有的!欢迎使用 ebook-to-mindmap!简单来说,你可以通过 ebook-to-mindmap 把 pdf 或 epub 格式的电子书转换为分章节的思维导图或者文字总结。

思维导图模式

点击这里即可立即体验。整个网页应用功能比较简洁,大家可以直接上手,当然,下面我也会比较详细地介绍一下这个应用的使用方法🤗

模型配置

使用 ebook-to-mindmap 的第一步是配置模型。它和很多 AI 应用一样,都是选择 byok( Bring Your Own Key )的模式,你可以在这里配置你自己的大模型。

这里还是要强调一下,在 ebook-to-mindmap 填写 Key 时不必担心 Key 泄露,因为 Key 只是保存在你自己的浏览器里,请求也是直接从你的浏览器发送到大模型提供商的服务器的。你可以在浏览器的开发者工具里查看网络请求,确认这一点。同时,ebook-to-mindmap 作为一个开源项目你可以随时检视它的代码,还可以自己部署一个属于你的 ebook-to-mindmap 。

说回模型的选择,可能很多人会担心使用 ebook-to-mindmap 的花费太高,其实倒也不必,毕竟现阶段还是能找到很多免费或者低价的大模型。我的首推还是 openrouter,你只需要充值 10 刀,就能获得一个较大的免费模型(其中包括一些 deepseek 变体、最近小米的新模型、之前一段时间还有 grok )使用额度,基本上一天让它处理好几本书都没问题了。其他详细推荐可以参考免费和付费 AI API 选择指南

model list

在获取到 Key 后如上图填写信息即可。

你还可以配置多个模型,点击左侧的星星后会成为默认模型,后续处理时默认使用星标的模型:

model list

生成笔记

配置模型后,在主页选择电子书即可。之后 ebook-to-mindmap 会自动识别电子书的格式,然后开始识别章节:

AI 总结页面

提示:如果 epub 无法获取到章节,可以在设置里勾选使用 Spine 获取章节

章节识别成功后,选择你需要总结的章节,或者使用分组功能(可以使用快捷键 Ctrl + G )把零碎的章节组合成分组一起发送给 AI 处理。

一切准备好后,点击开始解释按钮即可开始生成笔记。

默认情况下,ebook-to-mindmap 会生成思维导图,你也可以点击小齿轮切换到文字总结模式:

模式切换

虽然有整书思维导图生成功能,但是如果书的内容比较长,AI 可能吃不下这么长的上下文,所以建议还是分章节生成,最后系统会自动拼接

生成笔记如果想要中途取消,放心点取消就好,之前处于完成状态的章节会被缓存,不用担心之后需要再浪费 Token 重新生成。

提示词

举个例子吧,你在提示词列表里添加一个“小·红书风格”提示词,在生成环节选择这个提示词,就能直接生成小红书风格的笔记。

小红书风格

不止小红书风格,你也可以让 AI 只简单地提取该章节最重要的 5 个观点,帮助你对整本书的主要内容有一个简要的了解。

你还可以使用“反论法”提示词:

选取本章的核心论点或思想,并探索它的对立面。如果作者要为相反的观点辩护,他们需要证明什么?文本中是否有无意间支持反面观点的蛛丝马迹?

参考分享几条有意思的 NotebookLM 提示词这篇文章,里面有几个有趣的提示词,或许能让你眼前一亮。

内容管理

ebook-to-mindmap 充满了下载按钮,是的,你生成的数据必须还是属于你的!你可以很轻易地把数据拿出来!

导出的文字内容可能是 markdown 文件或是思维导图 json 文件。

markdown 文件可以直接阅读,或者导入到 Obsidian 、Notion 等笔记软件再细化修改。

思维导图 json 文件可以使用 mind-elixir-core 等前端库渲染,当然,如果你是技术人员,理解 json 数据的结构你也可以随意修改和渲染。

思维导图亦可导出为图片,点击思维导图页面右上角的下载按钮即可。

格式选择

最后谈谈电子书格式的问题,ebook-to-mindmap 支持 pdf 和 epub 格式的电子书,但是这两种格式如何选择呢?

或许大家都会比较喜欢看 pdf ,因为看起来比较工整,但是使用 ebook-to-mindmap ,我还是比较推荐 epub 格式的电子书。

稍微讲一下 pdf 和 epub 的原理吧。

pdf 的特点是在任何设备上看起来都一样,这就很容易想到,其实 pdf 的排版是非常固定的,而且更重要的是,pdf 的排版是没有语义的。也就是说,人类能看到一个标题是加粗黑字,但是 pdf 本身并不知道这是一个标题,它只是知道这一块区域的文字是加粗黑字的。

更严重的问题是 pdf 如果有一些复杂的排版,例如在角落嵌入一段文字,在解释的时候就很难理解那段文字的意义。所以,大模型理解 pdf 的难度会比较大。

而 epub 格式就不一样,它更像是一张网页,有语义,有结构,有层次,就跟 HTML 差不多。但缺点就是人类看来这样的排版有点粗糙,在不同的阅读器上显示效果也不同。在某些落后的 epub 阅读器上阅读时可能会觉得排版很有年代感。但是大模型不在乎排版,有清晰的结构就能得到好的输出结果。

写在最后

总的来说,ebook-to-mindmap 是一个能帮你快速复习或者把书本变薄的工具。在这个信息爆炸的时代,高效地获取和整理知识变得越来越重要。希望这个小工具能成为你阅读路上的得力助手,让你把更多的时间花在深度思考和理解上,而不是机械地摘抄。

如果你觉得这个项目对你有帮助,欢迎在 GitHub 上点个 Star ⭐️ 支持一下!如果你有任何建议或发现了 bug ,也欢迎提 Issue 或者加入讨论。

Happy Reading!

编码是机器学习流程里最容易被低估的环节之一,模型没办法直接处理文本形式的分类数据,尺寸(Small/Medium/Large)、颜色(Red/Blue/Green)、城市、支付方式等都是典型的分类特征,必须转成数值才能输入到模型中。

那么问题来了:为什么不直接把 Red 编成 1,Blue 编成 2?这个做法看起来简单粗暴,但其实藏着大坑。下面用一个小数据集来说明。

数据集概述

 Feature            | Description  
-------------------|----------------------------------------------------------  
customer_id        | Unique customer identifier  
gender             | Male or Female  
education_level    | High School → Associate → Bachelor's → Master's → PhD  
employment_status  | Full-time, Part-time, Self-employed, Unemployed  
city               | Customer's city (50+ US cities)  
product_category   | Electronics, Clothing, Books, Sports, Home & Garden, Beauty, Food & Beverage  
payment_method     | Credit Card, Debit Card, PayPal, Cash  
customer_tier      | Bronze → Silver → Gold → Platinum  
satisfaction_level | Dissatisfied → Neutral → Satisfied → Very Satisfied  
credit_score_range | Poor → Fair → Good → Very Good → Excellent  
purchase_amount    | Purchase amount in USD  
 will_return        | Yes or No (target variable)

Ordinal Encoding

Ordinal Encoding 思路很简单:给每个类别分配一个数字,但是模型会把这些数字当作有序的。

假设对

payment_method

做编码:Cash = 1,PayPal = 2。模型会认为 Cash < PayPal,仿佛 PayPal 比 Cash "更好" 或 "更大"。但支付方式之间根本没有这种大小关系因为它们只是不同的选项而已。

什么时候 Ordinal Encoding 才合适?当数据本身就存在真实的顺序关系时。比如

education_level

:High School < Associate < Bachelor's < Master's < PhD。这是客观存在的递进关系,用数字表示完全没问题,模型的理解也是对的。

所以 Ordinal Encoding 的使用场景很明确:只用于那些排名确实有意义的特征。

 from sklearn.preprocessing import OrdinalEncoder  
ordEnc = OrdinalEncoder()  
print(ordEnc.fit_transform(data[["education_level"]])[:5])  

# Output  
"""  
[[1.]  
 [2.]  
 [3.]  
 [4.]  
 [2.]]  
 """

One-Hot Encoding

One-Hot Encoding 换了个思路:不用数字而是给每个类别创建一列。

payment_method

有 4 个值,就变成 4 列,每行只有一个位置是 1,其余全是 0。

 | payment_cash | payment_credit_card | payment_debit_card | payment_paypal |  
 |--------------|---------------------|--------------------|----------------|  
 | 1            | 0                   | 0                  | 0              |  
 | 0            | 1                   | 0                  | 0              |  
 | 0            | 0                   | 1                  | 0              |  
 | 0            | 0                   | 0                  | 1              |

这样做的好处是消除了虚假的顺序关系,所有类别被平等对待和线性模型配合得也很好。

那么代价是什么?维度会膨胀。

customer_tier

payment_method

各 4 个值,合起来就是 8 列。如果遇到城市这种特征,50 多个类别直接炸成 50 多列,维度灾难就来了。

 from sklearn.preprocessing import OneHotEncoder  
oneEnc = OneHotEncoder()  
print(oneEnc.fit_transform(data[["customer_tier", "payment_method"]]).toarray()[:5])  

[#output](#output)   
"""  
[[0. 1. 0. 0. 0. 1. 0. 0.]  
 [0. 0. 0. 1. 0. 0. 1. 0.]  
 [0. 0. 1. 0. 0. 0. 0. 1.]  
 [0. 1. 0. 0. 0. 1. 0. 0.]  
 [1. 0. 0. 0. 1. 0. 0. 0.]]  
 """

Target Encoding

面对高基数特征(比如 City 有 50 多个值)One-Hot Encoding 会把特征空间撑得太大,Target Encoding 的做法是:用每个类别对应的目标变量均值来替换。也叫 Mean Encoding。

举个例子,目标变量是

will_return

(Yes = 1,No = 0):

 | City      | will_return |  
|-----------|-------------|  
| Austin    | 1           |  
| Austin    | 1           |  
| New York  | 1           |  
| New York  | 0           |  
| New York  | 0           |  
| New York  | 0           |  
 | New York  | 1           |

计算每个城市的目标均值:Austin → (1 + 1) / 2 = 1.0,New York → (1 + 0 + 0 + 0 + 1) / 5 = 0.4,这样得到的编码结果就是:

 | City     | Encoded Value |  
 |----------|----------------|  
 | Austin   | 1.0            |  
 | New York | 0.4            |

这里有一个坑,Austin 只出现了 2 次而且刚好都是正例,编码值直接变成 1.0。模型可能会 "学到" 一个规律:看到 Austin 就预测 will_return = Yes。

但这个 "规律" 完全是数据量不足造成的假象。样本太少均值就很不可靠。

Smoothing 的思路是把类别均值往全局均值方向 "拉" 一拉。公式:

 Encoded Value = (w * Category Mean) + ((1 - w) * Global Mean)

其中 Category Mean 是该类别的目标均值Global Mean 是整个数据集的目标均值,w 是一个和样本量相关的权重。样本越少w 越小,编码值就越接近全局均值;样本越多类别自己的均值就越占主导。这能有效抑制小样本带来的过拟合。

另一个问题就是 Data Leakage。如果用全量数据计算编码值再把这个编码喂给模型,模型等于直接 "看到了" 答案的统计信息。比如模型发现 City = 0.34 对应的样本大概率是 will_return = Yes,那它干脆走捷径,不从其他特征里学东西了。

所以就要引入交叉验证,以 5 折为例:把数据分成 5 份,对第 1 份的数据,用第 2 到第 5 份来计算编码;对第 2 份的数据,用第 1、3、4、5 份来计算编码;以此类推。每个样本的编码值都来自于它 "没见过" 的数据,泄露就切断了。

但是副作用是同一个城市在不同折里的编码值会略有差异:New York 在 Fold 1 里可能是 0.50,在 Fold 2 里是 0.45。但这反而是好事,这样可以让模型被迫学习更一般化的模式而不是死记某个精确数值。

Target Encoding 的优点:避免维度爆炸,适合高基数特征,还能把目标变量的统计信息编进去。

但用的时候得小心:必须加 Smoothing 防止小样本过拟合,必须用交叉验证防止数据泄露。

 from sklearn.preprocessing import TargetEncoder  

data["will_return_int"] = data["will_return"].map({"Yes": 1, "No": 0})  
tarEnc = TargetEncoder(smooth="auto", cv=5)  # Those are the default value  
print(data[["city"]][:5])  
print(tarEnc.fit_transform(data[["city"]], data["will_return_int"])[:5])  

"""  
  city  
0  Houston  
1  Phoenix  
2  Chicago  
3  Phoenix  
4  Phoenix  

[[0.85364466]  
 [0.69074308]  
 [0.65024828]  
 [0.74928653]  
 [0.81359495]]  
 """

总结

三种编码方法各有适用场景,选择取决于特征本身的性质。

实际操作中可以这样判断:特征有天然顺序就用 Ordinal Encoding;没有顺序、类别数量也不多就用 One-Hot Encoding;类别太多就上 Target Encoding,记得配合 Smoothing 和交叉验证。

真实项目里,一个数据集往往会同时用到这三种方法。

https://avoid.overfit.cn/post/eeabb03fba684a88a6ccce132f4852b0

作者: adham ayman

本文主要是基于windows平台,基于claude desktop ,让他(自己给自己)写了一个pyhon实现的可获取到本地pc电脑配置的信息,细节之处包括python多环境管理配置、claude config的添加。

mcp的本质是协议层的约定。统一各大ai厂商的底层协议。这篇文章是ai写出了整体的代码,我这里记录下。

相关核心代码

1.test_hardware_info.py

#!/usr/bin/env python3
"""
硬件信息 MCP Server
提供读取电脑硬件配置信息的工具
"""

from mcp.server import Server
from mcp.types import Tool, TextContent
import mcp.server.stdio
import platform
import psutil
import socket
from datetime import datetime
import json


# 创建 MCP server 实例
server = Server("hardware-info-server")


def get_cpu_info() -> dict:
    """获取CPU信息"""
    cpu_freq = psutil.cpu_freq()
    
    return {
        "处理器": platform.processor(),
        "架构": platform.machine(),
        "物理核心数": psutil.cpu_count(logical=False),
        "逻辑核心数": psutil.cpu_count(logical=True),
        "当前频率_MHz": round(cpu_freq.current, 2) if cpu_freq else "N/A",
        "最大频率_MHz": round(cpu_freq.max, 2) if cpu_freq else "N/A",
        "最小频率_MHz": round(cpu_freq.min, 2) if cpu_freq else "N/A",
        "CPU使用率_%": psutil.cpu_percent(interval=1, percpu=False)
    }


def get_memory_info() -> dict:
    """获取内存信息"""
    mem = psutil.virtual_memory()
    swap = psutil.swap_memory()
    
    def bytes_to_gb(bytes_value):
        return round(bytes_value / (1024**3), 2)
    
    return {
        "物理内存": {
            "总量_GB": bytes_to_gb(mem.total),
            "已用_GB": bytes_to_gb(mem.used),
            "可用_GB": bytes_to_gb(mem.available),
            "使用率_%": mem.percent
        },
        "交换内存": {
            "总量_GB": bytes_to_gb(swap.total),
            "已用_GB": bytes_to_gb(swap.used),
            "空闲_GB": bytes_to_gb(swap.free),
            "使用率_%": swap.percent
        }
    }


def get_disk_info() -> dict:
    """获取磁盘信息"""
    partitions = psutil.disk_partitions()
    disk_info = {}
    
    def bytes_to_gb(bytes_value):
        return round(bytes_value / (1024**3), 2)
    
    for partition in partitions:
        try:
            usage = psutil.disk_usage(partition.mountpoint)
            disk_info[partition.device] = {
                "挂载点": partition.mountpoint,
                "文件系统": partition.fstype,
                "总容量_GB": bytes_to_gb(usage.total),
                "已用_GB": bytes_to_gb(usage.used),
                "空闲_GB": bytes_to_gb(usage.free),
                "使用率_%": usage.percent
            }
        except PermissionError:
            disk_info[partition.device] = {
                "挂载点": partition.mountpoint,
                "状态": "无访问权限"
            }
    
    return disk_info


def get_network_info() -> dict:
    """获取网络接口信息"""
    net_if_addrs = psutil.net_if_addrs()
    net_if_stats = psutil.net_if_stats()
    
    network_info = {}
    
    for interface_name, addresses in net_if_addrs.items():
        interface_info = {
            "地址列表": [],
            "状态": "未知"
        }
        
        if interface_name in net_if_stats:
            stats = net_if_stats[interface_name]
            interface_info["状态"] = "启用" if stats.isup else "禁用"
            interface_info["速度_Mbps"] = stats.speed
        
        for addr in addresses:
            addr_info = {
                "地址族": str(addr.family),
                "地址": addr.address
            }
            if addr.netmask:
                addr_info["子网掩码"] = addr.netmask
            if addr.broadcast:
                addr_info["广播地址"] = addr.broadcast
            
            interface_info["地址列表"].append(addr_info)
        
        network_info[interface_name] = interface_info
    
    return network_info


def get_system_info() -> dict:
    """获取系统基本信息"""
    boot_time = datetime.fromtimestamp(psutil.boot_time())
    
    return {
        "系统": platform.system(),
        "系统版本": platform.version(),
        "系统发行版": platform.release(),
        "主机名": socket.gethostname(),
        "Python版本": platform.python_version(),
        "开机时间": boot_time.strftime("%Y-%m-%d %H:%M:%S"),
        "运行时长_小时": round((datetime.now() - boot_time).total_seconds() / 3600, 2)
    }


def get_gpu_info() -> dict:
    """获取GPU信息"""
    try:
        import GPUtil
        gpus = GPUtil.getGPUs()
        
        if not gpus:
            return {"消息": "未检测到GPU或无法访问GPU信息"}
        
        gpu_info = {}
        for i, gpu in enumerate(gpus):
            gpu_info[f"GPU_{i}"] = {
                "名称": gpu.name,
                "显存总量_MB": gpu.memoryTotal,
                "显存已用_MB": gpu.memoryUsed,
                "显存空闲_MB": gpu.memoryFree,
                "GPU负载_%": gpu.load * 100,
                "温度_C": gpu.temperature
            }
        return gpu_info
    except ImportError:
        return {
            "消息": "未安装GPUtil库",
            "提示": "运行 'pip install gputil' 来获取GPU信息"
        }
    except Exception as e:
        return {
            "消息": "无法获取GPU信息",
            "错误": str(e)
        }


def get_battery_info() -> dict:
    """获取电池信息"""
    if not hasattr(psutil, "sensors_battery"):
        return {"消息": "当前平台不支持电池信息查询"}
    
    battery = psutil.sensors_battery()
    
    if battery is None:
        return {"消息": "未检测到电池(可能是台式机)"}
    
    return {
        "电量_%": battery.percent,
        "充电中": battery.power_plugged,
        "剩余时间_分钟": round(battery.secsleft / 60, 2) if battery.secsleft != psutil.POWER_TIME_UNLIMITED else "充电中或无限"
    }


def get_all_hardware_info() -> dict:
    """获取所有硬件信息的汇总"""
    return {
        "系统信息": get_system_info(),
        "CPU信息": get_cpu_info(),
        "内存信息": get_memory_info(),
        "磁盘信息": get_disk_info(),
        "网络信息": get_network_info(),
        "GPU信息": get_gpu_info(),
        "电池信息": get_battery_info()
    }


@server.list_tools()
async def list_tools() -> list[Tool]:
    """列出所有可用工具"""
    return [
        Tool(
            name="get_cpu_info",
            description="获取CPU信息,包括核心数、频率、使用率等",
            inputSchema={
                "type": "object",
                "properties": {},
                "required": []
            }
        ),
        Tool(
            name="get_memory_info",
            description="获取内存信息,包括物理内存和交换内存的使用情况",
            inputSchema={
                "type": "object",
                "properties": {},
                "required": []
            }
        ),
        Tool(
            name="get_disk_info",
            description="获取磁盘信息,包括所有分区的容量和使用情况",
            inputSchema={
                "type": "object",
                "properties": {},
                "required": []
            }
        ),
        Tool(
            name="get_network_info",
            description="获取网络接口信息,包括IP地址、MAC地址等",
            inputSchema={
                "type": "object",
                "properties": {},
                "required": []
            }
        ),
        Tool(
            name="get_system_info",
            description="获取系统基本信息,包括操作系统、主机名、运行时长等",
            inputSchema={
                "type": "object",
                "properties": {},
                "required": []
            }
        ),
        Tool(
            name="get_gpu_info",
            description="获取GPU信息,包括显存、负载、温度等(需要NVIDIA GPU)",
            inputSchema={
                "type": "object",
                "properties": {},
                "required": []
            }
        ),
        Tool(
            name="get_battery_info",
            description="获取电池信息,包括电量、充电状态等(仅笔记本)",
            inputSchema={
                "type": "object",
                "properties": {},
                "required": []
            }
        ),
        Tool(
            name="get_all_hardware_info",
            description="获取所有硬件信息的完整汇总",
            inputSchema={
                "type": "object",
                "properties": {},
                "required": []
            }
        ),
    ]


@server.call_tool()
async def call_tool(name: str, arguments: dict) -> list[TextContent]:
    """执行工具调用"""
    
    # 工具函数映射
    tool_functions = {
        "get_cpu_info": get_cpu_info,
        "get_memory_info": get_memory_info,
        "get_disk_info": get_disk_info,
        "get_network_info": get_network_info,
        "get_system_info": get_system_info,
        "get_gpu_info": get_gpu_info,
        "get_battery_info": get_battery_info,
        "get_all_hardware_info": get_all_hardware_info,
    }
    
    if name not in tool_functions:
        raise ValueError(f"未知工具: {name}")
    
    try:
        result = tool_functions[name]()
        return [
            TextContent(
                type="text",
                text=json.dumps(result, ensure_ascii=False, indent=2)
            )
        ]
    except Exception as e:
        return [
            TextContent(
                type="text",
                text=json.dumps({"错误": str(e)}, ensure_ascii=False)
            )
        ]


async def main():
    """运行服务器"""
    async with mcp.server.stdio.stdio_server() as (read_stream, write_stream):
        await server.run(
            read_stream,
            write_stream,
            server.create_initialization_options()
        )


if __name__ == "__main__":
    import asyncio
    asyncio.run(main())
"@ | Out-File -FilePath hardware_info_server.py -Encoding utf8

2.依赖配置requirements.txt

mcp>=1.0.0
psutil>=5.9.0
gputil>=1.4.0

安装步骤

1.创建虚拟环境

python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

# 安装依赖
pip install -r requirements.txt

2. 配置文件更改

注意我以上的文件目录位置为 C:\Users\volvo\Downloads

claude descktop配置文件位置
windows为 C:\Users\volvo\AppData\Roaming\Claude,通用配置文件:%APPDATA%\Claude\claude_desktop_config.json

注意是增加 mcpServers 字段配置

{
  "mcpServers": {
    "hardware-info": {
      "command": "C:\\Users\\volvo\\Downloads\\venv\\Scripts\\python.exe",
      "args": [
        "C:\\Users\\volvo\\Downloads\\hardware_info_server.py"
      ]
    }
  },
  "preferences": {
    "coworkScheduledTasksEnabled": false,
    "sidebarMode": "chat"
  }
}

注意事项

node版本不能太低

(venv) PS C:\Users\volvo\Downloads> nvm list

    22.12.0
    18.18.2
    16.20.2
    16.18.0
  * 14.15.0 (Currently using 64-bit executable)
(venv) PS C:\Users\volvo\Downloads> nvm use 22.12.0
Now using node v22.12.0 (64-bit)
(venv) PS C:\Users\volvo\Downloads> npx @modelcontextprotocol/inspector python hardware_info_server.py
Need to install the following packages:
@modelcontextprotocol/inspector@0.19.0
Ok to proceed? (y) y

npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead
Starting MCP inspector...
⚙️ Proxy server listening on localhost:6277
🔑 Session token: 6f5e50390c183e0382b034b144bf806ffe2a33caf18e44bcbb0167c3bb6b1ade
   Use this token to authenticate requests or set DANGEROUSLY_OMIT_AUTH=true to disable auth

🚀 MCP Inspector is up and running at:
   http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=6f5e50390c183e0382b034b144bf806ffe2a33caf18e44bcbb0167c3bb6b1ade

🌐 Opening browser...
New STDIO connection request
Query parameters: {"command":"python","args":"hardware_info_server.py","env":"{\"APPDATA\":\"C:\\\\Users\\\\volvo\\\\AppData\\\\Roaming\",\"HOMEDRIVE\":\"C:\",\"HOMEPATH\":\"\\\\Users\\\\volvo\",\"LOCALAPPDATA\":\"C:\\\\Users\\\\volvo\\\\AppData\\\\Local\",\"PATH\":\"C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\npm-cache\\\\_npx\\\\5a9d879542beca3a\\\\node_modules\\\\.bin;C:\\\\Users\\\\volvo\\\\Downloads\\\\node_modules\\\\.bin;C:\\\\Users\\\\volvo\\\\node_modules\\\\.bin;C:\\\\Users\\\\node_modules\\\\.bin;C:\\\\node_modules\\\\.bin;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\nvm\\\\v22.12.0\\\\node_modules\\\\npm\\\\node_modules\\\\@npmcli\\\\run-script\\\\lib\\\\node-gyp-bin;C:\\\\Users\\\\volvo\\\\Downloads\\\\venv\\\\Scripts;D:\\\\go\\\\bin;C:\\\\Python313\\\\Scripts\\\\;C:\\\\Python313\\\\;C:\\\\Program Files\\\\Eclipse Adoptium\\\\jdk-8.0.442.6-hotspot\\\\bin;C:\\\\Program Files\\\\Python310\\\\Scripts\\\\;C:\\\\Program Files\\\\Python310\\\\;C:\\\\Program Files (x86)\\\\Intel\\\\iCLS Client\\\\;C:\\\\Program Files\\\\Intel\\\\iCLS Client\\\\;C:\\\\Windows\\\\system32;C:\\\\Windows;C:\\\\Windows\\\\System32\\\\Wbem;C:\\\\Windows\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\;C:\\\\Program Files (x86)\\\\Intel\\\\Intel(R) Management Engine Components\\\\DAL;C:\\\\Program Files\\\\Intel\\\\Intel(R) Management Engine Components\\\\DAL;C:\\\\Program Files (x86)\\\\Intel\\\\Intel(R) Management Engine Components\\\\IPT;C:\\\\Program Files\\\\Intel\\\\Intel(R) Management Engine Components\\\\IPT;C:\\\\Program Files (x86)\\\\NVIDIA Corporation\\\\PhysX\\\\Common;C:\\\\Program Files\\\\Intel\\\\WiFi\\\\bin\\\\;C:\\\\Program Files\\\\Common Files\\\\Intel\\\\WirelessCommon\\\\;C:\\\\WINDOWS\\\\system32;C:\\\\WINDOWS;C:\\\\WINDOWS\\\\System32\\\\Wbem;C:\\\\WINDOWS\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\;C:\\\\WINDOWS\\\\System32\\\\OpenSSH\\\\;C:\\\\Program Files\\\\Git\\\\cmd;C:\\\\Program Files\\\\NVIDIA Corporation\\\\NVIDIA NvDLISR;C:\\\\phpstudy_pro\\\\Extensions\\\\php\\\\php7.3.4nts;C:\\\\Program Files;C:\\\\Program Files (x86)\\\\NetSarang\\\\Xshell 8\\\\;C:\\\\ProgramData\\\\ComposerSetup\\\\bin;D:\\\\softInstall\\\\mcpuvx;c:\\\\Program Files\\\\TraeInternational\\\\bin;C:\\\\Program Files\\\\platform-tools;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\pnpm;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\Microsoft\\\\WindowsApps;C:\\\\Program Files\\\\Go\\\\bin;C:\\\\Users\\\\volvo\\\\AppData\\\\Roaming\\\\nvm;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\Microsoft\\\\WinGet\\\\Links;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\Microsoft\\\\WinGet\\\\Packages\\\\Schniz.fnm_Microsoft.Winget.Source_8wekyb3d8bbwe;C:\\\\Users\\\\volvo\\\\AppData\\\\Roaming\\\\Composer\\\\vendor\\\\bin;C:\\\\Users\\\\volvo\\\\.dotnet\\\\tools;C:\\\\Program Files (x86)\\\\GnuWin32\\\\bin;C:\\\\Users\\\\volvo\\\\Desktop\\\\infoSetUp\\\\soft\\\\1011\\\\platformTool;C:\\\\devENV\\\\apache-maven-3.9.9-bin\\\\apache-maven-3.9.9\\\\bin;C:\\\\Users\\\\volvo\\\\.dotnet\\\\tools;C:\\\\Users\\\\volvo\\\\AppData\\\\Roaming\\\\npm;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\nvm;C:\\\\nvm4w\\\\nodejs;D:\\\\softpath\\\\adbtools\\\\1011\\\\platformTool;C:\\\\Users\\\\volvo\\\\Desktop\\\\beetercall\\\\v1\\\\infoSetUp\\\\adb\\\\1011\\\\platformTool;D:\\\\softInstall\\\\networkCatch\\\\Fiddler\",\"PROCESSOR_ARCHITECTURE\":\"AMD64\",\"SYSTEMDRIVE\":\"C:\",\"SYSTEMROOT\":\"C:\\\\WINDOWS\",\"TEMP\":\"C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\Temp\",\"USERNAME\":\"volvo\",\"USERPROFILE\":\"C:\\\\Users\\\\volvo\",\"PROGRAMFILES\":\"C:\\\\Program Files\"}","transportType":"stdio"}
STDIO transport: command=C:\Users\volvo\Downloads\venv\Scripts\python.exe, args=hardware_info_server.py
Created client transport
Created server transport
Received POST message for sessionId 55ac8b56-f912-4243-81d6-ae2c56e5a92d
New STDIO connection request
Query parameters: {"command":"python","args":"hardware_info_server.py","env":"{\"APPDATA\":\"C:\\\\Users\\\\volvo\\\\AppData\\\\Roaming\",\"HOMEDRIVE\":\"C:\",\"HOMEPATH\":\"\\\\Users\\\\volvo\",\"LOCALAPPDATA\":\"C:\\\\Users\\\\volvo\\\\AppData\\\\Local\",\"PATH\":\"C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\npm-cache\\\\_npx\\\\5a9d879542beca3a\\\\node_modules\\\\.bin;C:\\\\Users\\\\volvo\\\\Downloads\\\\node_modules\\\\.bin;C:\\\\Users\\\\volvo\\\\node_modules\\\\.bin;C:\\\\Users\\\\node_modules\\\\.bin;C:\\\\node_modules\\\\.bin;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\nvm\\\\v22.12.0\\\\node_modules\\\\npm\\\\node_modules\\\\@npmcli\\\\run-script\\\\lib\\\\node-gyp-bin;C:\\\\Users\\\\volvo\\\\Downloads\\\\venv\\\\Scripts;D:\\\\go\\\\bin;C:\\\\Python313\\\\Scripts\\\\;C:\\\\Python313\\\\;C:\\\\Program Files\\\\Eclipse Adoptium\\\\jdk-8.0.442.6-hotspot\\\\bin;C:\\\\Program Files\\\\Python310\\\\Scripts\\\\;C:\\\\Program Files\\\\Python310\\\\;C:\\\\Program Files (x86)\\\\Intel\\\\iCLS Client\\\\;C:\\\\Program Files\\\\Intel\\\\iCLS Client\\\\;C:\\\\Windows\\\\system32;C:\\\\Windows;C:\\\\Windows\\\\System32\\\\Wbem;C:\\\\Windows\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\;C:\\\\Program Files (x86)\\\\Intel\\\\Intel(R) Management Engine Components\\\\DAL;C:\\\\Program Files\\\\Intel\\\\Intel(R) Management Engine Components\\\\DAL;C:\\\\Program Files (x86)\\\\Intel\\\\Intel(R) Management Engine Components\\\\IPT;C:\\\\Program Files\\\\Intel\\\\Intel(R) Management Engine Components\\\\IPT;C:\\\\Program Files (x86)\\\\NVIDIA Corporation\\\\PhysX\\\\Common;C:\\\\Program Files\\\\Intel\\\\WiFi\\\\bin\\\\;C:\\\\Program Files\\\\Common Files\\\\Intel\\\\WirelessCommon\\\\;C:\\\\WINDOWS\\\\system32;C:\\\\WINDOWS;C:\\\\WINDOWS\\\\System32\\\\Wbem;C:\\\\WINDOWS\\\\System32\\\\WindowsPowerShell\\\\v1.0\\\\;C:\\\\WINDOWS\\\\System32\\\\OpenSSH\\\\;C:\\\\Program Files\\\\Git\\\\cmd;C:\\\\Program Files\\\\NVIDIA Corporation\\\\NVIDIA NvDLISR;C:\\\\phpstudy_pro\\\\Extensions\\\\php\\\\php7.3.4nts;C:\\\\Program Files;C:\\\\Program Files (x86)\\\\NetSarang\\\\Xshell 8\\\\;C:\\\\ProgramData\\\\ComposerSetup\\\\bin;D:\\\\softInstall\\\\mcpuvx;c:\\\\Program Files\\\\TraeInternational\\\\bin;C:\\\\Program Files\\\\platform-tools;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\pnpm;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\Microsoft\\\\WindowsApps;C:\\\\Program Files\\\\Go\\\\bin;C:\\\\Users\\\\volvo\\\\AppData\\\\Roaming\\\\nvm;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\Microsoft\\\\WinGet\\\\Links;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\Microsoft\\\\WinGet\\\\Packages\\\\Schniz.fnm_Microsoft.Winget.Source_8wekyb3d8bbwe;C:\\\\Users\\\\volvo\\\\AppData\\\\Roaming\\\\Composer\\\\vendor\\\\bin;C:\\\\Users\\\\volvo\\\\.dotnet\\\\tools;C:\\\\Program Files (x86)\\\\GnuWin32\\\\bin;C:\\\\Users\\\\volvo\\\\Desktop\\\\infoSetUp\\\\soft\\\\1011\\\\platformTool;C:\\\\devENV\\\\apache-maven-3.9.9-bin\\\\apache-maven-3.9.9\\\\bin;C:\\\\Users\\\\volvo\\\\.dotnet\\\\tools;C:\\\\Users\\\\volvo\\\\AppData\\\\Roaming\\\\npm;C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\nvm;C:\\\\nvm4w\\\\nodejs;D:\\\\softpath\\\\adbtools\\\\1011\\\\platformTool;C:\\\\Users\\\\volvo\\\\Desktop\\\\beetercall\\\\v1\\\\infoSetUp\\\\adb\\\\1011\\\\platformTool;D:\\\\softInstall\\\\networkCatch\\\\Fiddler\",\"PROCESSOR_ARCHITECTURE\":\"AMD64\",\"SYSTEMDRIVE\":\"C:\",\"SYSTEMROOT\":\"C:\\\\WINDOWS\",\"TEMP\":\"C:\\\\Users\\\\volvo\\\\AppData\\\\Local\\\\Temp\",\"USERNAME\":\"volvo\",\"USERPROFILE\":\"C:\\\\Users\\\\volvo\",\"PROGRAMFILES\":\"C:\\\\Program Files\"}","transportType":"stdio"}
STDIO transport: command=C:\Users\volvo\Downloads\venv\Scripts\python.exe, args=hardware_info_server.py
Created client transport
Created server transport
Received POST message for sessionId 6e8c342f-e65d-4c83-bf7f-e1da6c8afc76
Received POST message for sessionId 55ac8b56-f912-4243-81d6-ae2c56e5a92d
Received POST message for sessionId 6e8c342f-e65d-4c83-bf7f-e1da6c8afc76
Received POST message for sessionId 6e8c342f-e65d-4c83-bf7f-e1da6c8afc76
Received POST message for sessionId 6e8c342f-e65d-4c83-bf7f-e1da6c8afc76
Received POST message for sessionId 6e8c342f-e65d-4c83-bf7f-e1da6c8afc76
Starting MCP inspector...
⚙️ Proxy server listening on localhost:6277
🔑 Session token: 72a7e06967c2e25056a4e58a3743d6eee509eacbbb6754744a74142f999c0d90
   Use this token to authenticate requests or set DANGEROUSLY_OMIT_AUTH=true to disable auth

🚀 MCP Inspector is up and running at:
   http://localhost:6274/?MCP_PROXY_AUTH_TOKEN=72a7e06967c2e25056a4e58a3743d6eee509eacbbb6754744a74142f999c0d90

🌐 Opening browser...

本地会有一个mcp inspector

image.png

相关文档

相关配置图片

配置好claude的config.json后就可以看到这个mcp

image.png

然后就可以让agent调用ai,让ai发命令去读取基于mcp 实现的tool,需要授权

image.png

可以看到调用成功了

image.png